<?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>152679</bug_id>
          
          <creation_ts>2016-01-03 18:13:58 -0800</creation_ts>
          <short_desc>Update benchmark test suite</short_desc>
          <delta_ts>2016-01-07 20:30:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</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 name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>rniwa</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1152217</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-03 18:13:58 -0800</bug_when>
    <thetext>Update tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152218</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-01-03 18:14:11 -0800</bug_when>
    <thetext>&lt;rdar://problem/24034507&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152510</commentid>
    <comment_count>2</comment_count>
      <attachid>268232</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-04 14:31:17 -0800</bug_when>
    <thetext>Created attachment 268232
1. Fix tests for other browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152511</commentid>
    <comment_count>3</comment_count>
      <attachid>268233</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-04 14:31:36 -0800</bug_when>
    <thetext>Created attachment 268233
2. Move algorithm.js and sampler.js to tests/ and benchmark-runner.js to runner/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152512</commentid>
    <comment_count>4</comment_count>
      <attachid>268234</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-04 14:31:56 -0800</bug_when>
    <thetext>Created attachment 268234
3. Add a new test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152516</commentid>
    <comment_count>5</comment_count>
      <attachid>268233</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-01-04 14:43:45 -0800</bug_when>
    <thetext>Comment on attachment 268233
2. Move algorithm.js and sampler.js to tests/ and benchmark-runner.js to runner/.

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

&gt; PerformanceTests/ChangeLog:16
&gt; +        into utilities.js.

Did you mean &quot;into extensions.js&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152540</commentid>
    <comment_count>6</comment_count>
      <attachid>268234</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-01-04 15:20:13 -0800</bug_when>
    <thetext>Comment on attachment 268234
3. Add a new test.

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

&gt; PerformanceTests/Animometer/resources/extensions.js:96
&gt; +            return new Point(this.x + other, this.y + other);

I am not sure if adding a scalar value to a point/size is something meaningful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152541</commentid>
    <comment_count>7</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-01-04 15:20:46 -0800</bug_when>
    <thetext>All looks good to me. Unofficial r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152546</commentid>
    <comment_count>8</comment_count>
      <attachid>268233</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-04 15:26:19 -0800</bug_when>
    <thetext>Comment on attachment 268233
2. Move algorithm.js and sampler.js to tests/ and benchmark-runner.js to runner/.

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

&gt;&gt; PerformanceTests/ChangeLog:16
&gt;&gt; +        into utilities.js.
&gt; 
&gt; Did you mean &quot;into extensions.js&quot;?

Yes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152548</commentid>
    <comment_count>9</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-04 15:26:52 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created attachment 268234 [details]
&gt; 3. Add a new test.

I will check in a version with the corrected ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153738</commentid>
    <comment_count>10</comment_count>
      <attachid>268524</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-07 19:00:12 -0800</bug_when>
    <thetext>Created attachment 268524
3. Add new test (Take 2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153741</commentid>
    <comment_count>11</comment_count>
      <attachid>268526</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-07 19:02:58 -0800</bug_when>
    <thetext>Created attachment 268526
1. Fix tests for other browsers (Take 2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153742</commentid>
    <comment_count>12</comment_count>
      <attachid>268527</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-07 19:03:49 -0800</bug_when>
    <thetext>Created attachment 268527
2. Move algorithm.js and sampler.js (Take 2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153743</commentid>
    <comment_count>13</comment_count>
      <attachid>268526</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-01-07 19:06:15 -0800</bug_when>
    <thetext>Comment on attachment 268526
1. Fix tests for other browsers (Take 2)

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

&gt; PerformanceTests/ChangeLog:14
&gt; +        (CanvasElectron.prototype._draw): Some browsers don&apos;t support ellipse.

Which ones?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153744</commentid>
    <comment_count>14</comment_count>
      <attachid>268526</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-01-07 19:06:40 -0800</bug_when>
    <thetext>Comment on attachment 268526
1. Fix tests for other browsers (Take 2)

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

&gt; PerformanceTests/Animometer/resources/extensions.js:70
&gt; +    var rect = element.getBoundingClientRect();
&gt; +    return new Point(rect.width, rect.height);

Are you sure this doesn&apos;t cause layout thrashing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153745</commentid>
    <comment_count>15</comment_count>
      <attachid>268524</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-01-07 19:16:33 -0800</bug_when>
    <thetext>Comment on attachment 268524
3. Add new test (Take 2)

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

&gt; PerformanceTests/Animometer/resources/extensions.js:96
&gt; +        if(isNaN(other.x))
&gt; +            return new Point(this.x + other, this.y + other);

Weird but ok!

&gt; PerformanceTests/Animometer/tests/master/resources/dom-particles.js:25
&gt; +        this.element.style.backgroundColor = &quot;hsl(&quot; + (((Date.now()/2000)%1)*360) + &quot;, 70%, 45%)&quot;;

Are the outer parens around Date.now()... necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153747</commentid>
    <comment_count>16</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-07 19:18:21 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 268526 [details]
&gt; 1. Fix tests for other browsers (Take 2)
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=268526&amp;action=review
&gt; 
&gt; &gt; PerformanceTests/ChangeLog:14
&gt; &gt; +        (CanvasElectron.prototype._draw): Some browsers don&apos;t support ellipse.
&gt; 
&gt; Which ones?

Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153748</commentid>
    <comment_count>17</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-07 19:22:49 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Comment on attachment 268526 [details]
&gt; 1. Fix tests for other browsers (Take 2)
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=268526&amp;action=review
&gt; 
&gt; &gt; PerformanceTests/Animometer/resources/extensions.js:70
&gt; &gt; +    var rect = element.getBoundingClientRect();
&gt; &gt; +    return new Point(rect.width, rect.height);
&gt; 
&gt; Are you sure this doesn&apos;t cause layout thrashing?

This function is only called when the stage is initialized, and for graphing. It is not called during the benchmark run.

I wouldn&apos;t expect any benchmark to make a call to this because it should be caching its size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153749</commentid>
    <comment_count>18</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-07 19:25:01 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Comment on attachment 268524 [details]
&gt; 3. Add new test (Take 2)
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=268524&amp;action=review
&gt; 
&gt; &gt; PerformanceTests/Animometer/resources/extensions.js:96
&gt; &gt; +        if(isNaN(other.x))
&gt; &gt; +            return new Point(this.x + other, this.y + other);
&gt; 
&gt; Weird but ok!
&gt; 
&gt; &gt; PerformanceTests/Animometer/tests/master/resources/dom-particles.js:25
&gt; &gt; +        this.element.style.backgroundColor = &quot;hsl(&quot; + (((Date.now()/2000)%1)*360) + &quot;, 70%, 45%)&quot;;
&gt; 
&gt; Are the outer parens around Date.now()... necessary?

No. This calculation is done enough that I&apos;ll probably factor it out anyway in a future patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153758</commentid>
    <comment_count>19</comment_count>
      <attachid>268526</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-07 19:54:54 -0800</bug_when>
    <thetext>Comment on attachment 268526
1. Fix tests for other browsers (Take 2)

Clearing flags on attachment: 268526

Committed r194752: &lt;http://trac.webkit.org/changeset/194752&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153760</commentid>
    <comment_count>20</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-07 19:59:02 -0800</bug_when>
    <thetext>Committed r194753: &lt;http://trac.webkit.org/changeset/194753&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153761</commentid>
    <comment_count>21</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-07 19:59:16 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Committed r194753: &lt;http://trac.webkit.org/changeset/194753&gt;

This is patch #2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153764</commentid>
    <comment_count>22</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-07 20:28:44 -0800</bug_when>
    <thetext>Committed r194755: &lt;http://trac.webkit.org/changeset/194755&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153765</commentid>
    <comment_count>23</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-01-07 20:30:17 -0800</bug_when>
    <thetext>fix in r194756</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268232</attachid>
            <date>2016-01-04 14:31:17 -0800</date>
            <delta_ts>2016-01-07 19:02:58 -0800</delta_ts>
            <desc>1. Fix tests for other browsers.</desc>
            <filename>0001-Update-benchmark-test-suite.patch</filename>
            <type>text/plain</type>
            <size>3426</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBjZWMwYTNhYmNmMTQ1MTUzZmEzNjY3ZmI0ZTE0MTJiYWEyMWEwYmViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBTdW4s
IDMgSmFuIDIwMTYgMTg6NDE6MjggLTA4MDAKU3ViamVjdDogW1BBVENIIDEvM10gVXBkYXRlIGJl
bmNobWFyayB0ZXN0IHN1aXRlCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUyNjc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkZpeCB0ZXN0cyBmb3Igb3Ro
ZXIgYnJvd3NlcnMuCgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanM6CihQb2lu
dC5lbGVtZW50Q2xpZW50U2l6ZSk6IFNvbWUgYnJvd3NlcnMgcmV0dXJuIDAgZm9yIFNWRyBjbGll
bnRXaWR0aCBhbmQgY2xpZW50SGVpZ2h0LgpVc2UgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgaW5z
dGVhZC4KKiBBbmltb21ldGVyL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMu
anM6CihDYW52YXNFbGVjdHJvbi5wcm90b3R5cGUuX2RyYXcpOiBTb21lIGJyb3dzZXJzIGRvbid0
IHN1cHBvcnQgZWxsaXBzZS4KLS0tCiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL2V4dGVuc2lvbnMuanMgICAgICAgfCAgMyArKy0KIC4uLi9Bbmltb21ldGVyL3Rlc3RzL21p
c2MvcmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMuanMgICB8ICA4ICsrKysrLS0tCiBQZXJmb3Jt
YW5jZVRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNSAr
KysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgNCBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL2V4dGVuc2lvbnMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2Vz
L2V4dGVuc2lvbnMuanMKaW5kZXggZjM5YmNhZi4uZjMxYjgwZSAxMDA2NDQKLS0tIGEvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcwpAQCAtNjYsNyAr
NjYsOCBAQCBQb2ludC5wb2ludE9uRWxsaXBzZSA9IGZ1bmN0aW9uKGFuZ2xlLCByYWRpdXNlcykK
IAogUG9pbnQuZWxlbWVudENsaWVudFNpemUgPSBmdW5jdGlvbihlbGVtZW50KQogewotICAgIHJl
dHVybiBuZXcgUG9pbnQoZWxlbWVudC5jbGllbnRXaWR0aCwgZWxlbWVudC5jbGllbnRIZWlnaHQp
OworICAgIHZhciByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBy
ZXR1cm4gbmV3IFBvaW50KHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0KTsKIH0KIAogUG9pbnQucHJv
dG90eXBlID0KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9t
aXNjL3Jlc291cmNlcy9jYW52YXMtZWxlY3Ryb25zLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmlt
b21ldGVyL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMuanMKaW5kZXggZjdi
MGE2NS4uZWQ4NGZhMCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rl
c3RzL21pc2MvcmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMuanMKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMuanMK
QEAgLTM0LDkgKzM0LDExIEBAIENhbnZhc0VsZWN0cm9uLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIHRoaXMuX2NvbnRleHQuZmlsbFN0eWxlID0gdGhpcy5fY29sb3I7CiAKICAgICAgICAgICAg
IC8vIERyYXcgdGhlIG9yYml0IG9mIHRoZSBvYmplY3QuCi0gICAgICAgICAgICB0aGlzLl9jb250
ZXh0LmJlZ2luUGF0aCgpOwotICAgICAgICAgICAgdGhpcy5fY29udGV4dC5lbGxpcHNlKHRoaXMu
X3N0YWdlU2l6ZS5jZW50ZXIueCwgdGhpcy5fc3RhZ2VTaXplLmNlbnRlci55LCB0aGlzLl9vcmJp
dFJhZGl1c2VzLngsIHRoaXMuX29yYml0UmFkaXVzZXMueSwgMCwgMCwgMiAqIE1hdGguUEkpOwot
ICAgICAgICAgICAgdGhpcy5fY29udGV4dC5zdHJva2UoKTsKKyAgICAgICAgICAgIGlmICh0aGlz
Ll9jb250ZXh0LmVsbGlwc2UpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9jb250ZXh0LmJlZ2lu
UGF0aCgpOworICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRleHQuZWxsaXBzZSh0aGlzLl9zdGFn
ZVNpemUuY2VudGVyLngsIHRoaXMuX3N0YWdlU2l6ZS5jZW50ZXIueSwgdGhpcy5fb3JiaXRSYWRp
dXNlcy54LCB0aGlzLl9vcmJpdFJhZGl1c2VzLnksIDAsIDAsIDIgKiBNYXRoLlBJKTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9jb250ZXh0LnN0cm9rZSgpOworICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAvLyBEcmF3IHRoZSBvYmplY3QuCiAgICAgICAgICAgICB0aGlzLl9jb250ZXh0LmJl
Z2luUGF0aCgpOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cgYi9QZXJm
b3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCA5NTY4Y2JlLi43MDJkMjZkIDEwMDY0NAotLS0g
YS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSw1ICsxLDIwIEBACiAyMDE2LTAxLTAzICBKb24gTGVlICA8am9ubGVlQGFwcGxl
LmNvbT4KIAorICAgICAgICBVcGRhdGUgYmVuY2htYXJrIHRlc3Qgc3VpdGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjY3OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0ZXN0cyBmb3Igb3RoZXIg
YnJvd3NlcnMuCisKKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpz
OgorICAgICAgICAoUG9pbnQuZWxlbWVudENsaWVudFNpemUpOiBTb21lIGJyb3dzZXJzIHJldHVy
biAwIGZvciBTVkcgY2xpZW50V2lkdGggYW5kIGNsaWVudEhlaWdodC4KKyAgICAgICAgVXNlIGdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpIGluc3RlYWQuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0
cy9taXNjL3Jlc291cmNlcy9jYW52YXMtZWxlY3Ryb25zLmpzOgorICAgICAgICAoQ2FudmFzRWxl
Y3Ryb24ucHJvdG90eXBlLl9kcmF3KTogU29tZSBicm93c2VycyBkb24ndCBzdXBwb3J0IGVsbGlw
c2UuCisKKzIwMTYtMDEtMDMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCiAgICAgICAg
IFVwZGF0ZSBkYXRhIHJlcG9ydGluZyBhbmQgYW5hbHlzaXMKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjY3MAogCi0tIAoyLjUuNCAoQXBwbGUgR2l0
LTYxKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268233</attachid>
            <date>2016-01-04 14:31:36 -0800</date>
            <delta_ts>2016-01-07 19:03:49 -0800</delta_ts>
            <desc>2. Move algorithm.js and sampler.js to tests/ and benchmark-runner.js to runner/.</desc>
            <filename>0002-Update-benchmark-test-suite.patch</filename>
            <type>text/plain</type>
            <size>49993</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBmNDU4MWM0MGE3NGNkYWU3MzU5Y2E2Mzk4NjRkZGE4YTgzNzM1ZDkzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBTdW4s
IDMgSmFuIDIwMTYgMjM6MDc6NDIgLTA4MDAKU3ViamVjdDogW1BBVENIIDIvM10gVXBkYXRlIGJl
bmNobWFyayB0ZXN0IHN1aXRlCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUyNjc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCk1vdmUgYWxnb3JpdGhtLmpz
IGFuZCBzYW1wbGVyLmpzIHRvIHRlc3RzLyBhbmQgYmVuY2htYXJrLXJ1bm5lci5qcyB0byBydW5u
ZXIvLgoKTmVlZGVkIGJ5IGJvdGggaGFybmVzc2VzLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1
bm5lci9iZW5jaG1hcmstcnVubmVyLmpzOiBSZW5hbWVkIGZyb20gUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYmVuY2htYXJrLXJ1bm5lci5qcy4KKiBB
bmltb21ldGVyL2RldmVsb3Blci5odG1sOgoqIEFuaW1vbWV0ZXIvaW5kZXguaHRtbDoKCk5lZWRl
ZCBvbmx5IGJ5IHRoZSB0ZXN0cy4gTW92ZSB0byB0ZXN0cy8uIFN0YXRpc3RpY3MsIGluIHNhbXBs
ZXIuanMsIGlzIHVzZWQgYnkgUmVzdWx0c0Rhc2hib2FyZCwgc28gbW92ZSB0aGF0CmludG8gdXRp
bGl0aWVzLmpzLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanM6CiogQW5pbW9t
ZXRlci90ZXN0cy9yZXNvdXJjZXMvYWxnb3JpdGhtLmpzOiBSZW5hbWVkIGZyb20gUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9hbGdvcml0aG0uanMuCiogQW5pbW9tZXRlci90
ZXN0cy9yZXNvdXJjZXMvc2FtcGxlci5qczogUmVuYW1lZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMv
QW5pbW9tZXRlci9yZXNvdXJjZXMvc2FtcGxlci5qcy4KKiBBbmltb21ldGVyL3Rlc3RzL2JvdW5j
aW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jYW52YXMtaW1hZ2VzLmh0bWw6CiogQW5pbW9tZXRlci90
ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNpbmctY2FudmFzLXNoYXBlcy5odG1sOgoqIEFu
aW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNzcy1pbWFnZXMuaHRt
bDoKKiBBbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jc3Mtc2hh
cGVzLmh0bWw6CiogQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNpbmct
c3ZnLWltYWdlcy5odG1sOgoqIEFuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2Jv
dW5jaW5nLXN2Zy1zaGFwZXMuaHRtbDoKKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9jYW52YXMt
c3RhZ2UuaHRtbDoKKiBBbmltb21ldGVyL3Rlc3RzL21pc2MvY2FudmFzLWVsZWN0cm9ucy5odG1s
OgoqIEFuaW1vbWV0ZXIvdGVzdHMvbWlzYy9jYW52YXMtc3RhcnMuaHRtbDoKKiBBbmltb21ldGVy
L3Rlc3RzL21pc2MvY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5odG1sOgoqIEFuaW1vbWV0ZXIvdGVz
dHMvc2ltcGxlL3NpbXBsZS1jYW52YXMtcGF0aHMuaHRtbDoKKiBBbmltb21ldGVyL3Rlc3RzL3Rl
bXBsYXRlL3RlbXBsYXRlLWNhbnZhcy5odG1sOgoqIEFuaW1vbWV0ZXIvdGVzdHMvdGVtcGxhdGUv
dGVtcGxhdGUtY3NzLmh0bWw6CiogQW5pbW9tZXRlci90ZXN0cy90ZW1wbGF0ZS90ZW1wbGF0ZS1z
dmcuaHRtbDoKKiBBbmltb21ldGVyL3Rlc3RzL3RleHQvbGF5ZXJpbmctdGV4dC5odG1sOgoqIEFu
aW1vbWV0ZXIvdGVzdHMvdGV4dC90ZXh0LWJveGVzLmh0bWw6Ci0tLQogUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL2RldmVsb3Blci5odG1sICAgICAgICAgfCAgIDMgKy0KIFBlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci9pbmRleC5odG1sICAgICAgICAgICAgIHwgICAzICstCiBQZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2FsZ29yaXRobS5qcyB8IDEzNCAtLS0tLS0t
LS0tLS0tLS0tCiAuLi4vcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9iZW5jaG1hcmstcnVubmVyLmpz
ICAgICB8IDE3NiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9Bbmltb21ldGVyL3Jlc291cmNl
cy9leHRlbnNpb25zLmpzICAgICAgICAgICAgIHwgIDI3ICsrKysKIC4uLi9yZXNvdXJjZXMvcnVu
bmVyL2JlbmNobWFyay1ydW5uZXIuanMgICAgICAgICAgIHwgMTc2ICsrKysrKysrKysrKysrKysr
KysrKwogUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zYW1wbGVyLmpzICAg
fCAxMjkgLS0tLS0tLS0tLS0tLS0tCiAuLi4vYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNh
bnZhcy1pbWFnZXMuaHRtbCB8ICAgNCArLQogLi4uL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2lu
Zy1jYW52YXMtc2hhcGVzLmh0bWwgfCAgIDQgKy0KIC4uLi9ib3VuY2luZy1wYXJ0aWNsZXMvYm91
bmNpbmctY3NzLWltYWdlcy5odG1sICAgIHwgICA0ICstCiAuLi4vYm91bmNpbmctcGFydGljbGVz
L2JvdW5jaW5nLWNzcy1zaGFwZXMuaHRtbCAgICB8ICAgNCArLQogLi4uL2JvdW5jaW5nLXBhcnRp
Y2xlcy9ib3VuY2luZy1zdmctaW1hZ2VzLmh0bWwgICAgfCAgIDQgKy0KIC4uLi9ib3VuY2luZy1w
YXJ0aWNsZXMvYm91bmNpbmctc3ZnLXNoYXBlcy5odG1sICAgIHwgICA0ICstCiAuLi4vQW5pbW9t
ZXRlci90ZXN0cy9tYXN0ZXIvY2FudmFzLXN0YWdlLmh0bWwgICAgICB8ICAgNCArLQogLi4uL0Fu
aW1vbWV0ZXIvdGVzdHMvbWlzYy9jYW52YXMtZWxlY3Ryb25zLmh0bWwgICAgfCAgIDQgKy0KIC4u
Li9Bbmltb21ldGVyL3Rlc3RzL21pc2MvY2FudmFzLXN0YXJzLmh0bWwgICAgICAgIHwgICA0ICst
CiAuLi4vdGVzdHMvbWlzYy9jb21wb3NpdGluZy10cmFuc2Zvcm1zLmh0bWwgICAgICAgICB8ICAg
NCArLQogLi4uL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL2FsZ29yaXRobS5qcyAgICAgICAg
fCAxMzQgKysrKysrKysrKysrKysrKwogLi4uL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3Nh
bXBsZXIuanMgICAgICAgICAgfCAxMDIgKysrKysrKysrKysrCiAuLi4vdGVzdHMvc2ltcGxlL3Np
bXBsZS1jYW52YXMtcGF0aHMuaHRtbCAgICAgICAgICB8ICAgNCArLQogLi4uL0FuaW1vbWV0ZXIv
dGVzdHMvdGVtcGxhdGUvdGVtcGxhdGUtY2FudmFzLmh0bWwgfCAgIDQgKy0KIC4uLi9Bbmltb21l
dGVyL3Rlc3RzL3RlbXBsYXRlL3RlbXBsYXRlLWNzcy5odG1sICAgIHwgICA0ICstCiAuLi4vQW5p
bW9tZXRlci90ZXN0cy90ZW1wbGF0ZS90ZW1wbGF0ZS1zdmcuaHRtbCAgICB8ICAgNCArLQogLi4u
L0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC9sYXllcmluZy10ZXh0Lmh0bWwgICAgICAgfCAgIDQgKy0K
IC4uLi9Bbmltb21ldGVyL3Rlc3RzL3RleHQvdGV4dC1ib3hlcy5odG1sICAgICAgICAgIHwgICA0
ICstCiBQZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAzNiArKysrKwogMjYgZmlsZXMgY2hhbmdlZCwgNTA5IGluc2VydGlvbnMoKyksIDQ3NSBkZWxl
dGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIv
cmVzb3VyY2VzL2FsZ29yaXRobS5qcwogZGVsZXRlIG1vZGUgMTAwNjQ0IFBlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2JlbmNobWFyay1ydW5uZXIuanMK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2Vz
L3J1bm5lci9iZW5jaG1hcmstcnVubmVyLmpzCiBkZWxldGUgbW9kZSAxMDA2NDQgUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zYW1wbGVyLmpzCiBjcmVhdGUgbW9kZSAxMDA2
NDQgUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9hbGdvcml0aG0u
anMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMv
cmVzb3VyY2VzL3NhbXBsZXIuanMKCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvZGV2ZWxvcGVyLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvZGV2ZWxv
cGVyLmh0bWwKaW5kZXggMjAwMTZmYS4uZDFiNDU4MSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL2RldmVsb3Blci5odG1sCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci9kZXZlbG9wZXIuaHRtbApAQCAtNSw3ICs1LDYgQEAKICAgICA8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5jc3MiPgogICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21l
dGVyLmNzcyI+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdHJpbmdzLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyIgY2hhcnNldD0idXRmLTgiPjwv
c2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ydW5uZXIvdGVzdHMuanMiIGNo
YXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4KQEAgLTEzLDcgKzEyLDcgQEAKICAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3J1bm5lci9hbmltb21ldGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9hbmltb21ldGVyLmpzIj48L3NjcmlwdD4KIAot
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVidWctcnVubmVyL2JlbmNobWFyay1ydW5uZXIu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyL2JlbmNobWFy
ay1ydW5uZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVidWct
cnVubmVyL2QzLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9k
ZWJ1Zy1ydW5uZXIvZ3JhcGguanMiPjwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2luZGV4Lmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvaW5kZXguaHRtbAppbmRleCAwYzMwMWUzLi5lMTY0ZGI1IDEwMDY0NAotLS0gYS9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvaW5kZXguaHRtbAorKysgYi9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvaW5kZXguaHRtbApAQCAtNSwxMyArNSwxMiBAQAogICAgIDxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIHVzZXItc2NhbGFibGU9
bm8iPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL3J1bm5lci9h
bmltb21ldGVyLmNzcyI+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdHJpbmdzLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyIgY2hhcnNldD0idXRm
LTgiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ydW5uZXIvdGVzdHMu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0
ZXIuanMiPjwvc2NyaXB0PgogCi0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9kZWJ1Zy1ydW5u
ZXIvYmVuY2htYXJrLXJ1bm5lci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy9ydW5uZXIvYmVuY2htYXJrLXJ1bm5lci5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eT4KICAgICA8bWFpbj4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9y
ZXNvdXJjZXMvYWxnb3JpdGhtLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291
cmNlcy9hbGdvcml0aG0uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlZjIxYTku
LjAwMDAwMDAKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9hbGdv
cml0aG0uanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzQgKzAsMCBAQAotZnVuY3Rpb24gSGVhcCht
YXhTaXplLCBjb21wYXJlKQotewotICAgIHRoaXMuX21heFNpemUgPSBtYXhTaXplOwotICAgIHRo
aXMuX2NvbXBhcmUgPSBjb21wYXJlOwotICAgIHRoaXMuX3NpemUgPSAwOwotICAgIHRoaXMuX3Zh
bHVlcyA9IG5ldyBBcnJheSh0aGlzLl9tYXhTaXplKTsKLX0KLQotSGVhcC5wcm90b3R5cGUgPQot
ewotICAgIC8vIFRoaXMgaXMgYSBiaW5hcnkgaGVhcCByZXByZXNlbnRlZCBpbiBhbiBhcnJheS4g
VGhlIHJvb3QgZWxlbWVudCBpcyBzdG9yZWQKLSAgICAvLyBpbiB0aGUgZmlyc3QgZWxlbWVudCBp
biB0aGUgYXJyYXkuIFRoZSByb290IGlzIGZvbGxvd2VkIGJ5IGl0cyB0d28gY2hpbGRyZW4uCi0g
ICAgLy8gVGhlbiBpdHMgZm91ciBncmFuZGNoaWxkcmVuIGFuZCBzbyBvbi4gU28gZXZlcnkgbGV2
ZWwgaW4gdGhlIGJpbmFyeSBoZWFwIGlzCi0gICAgLy8gZG91YmxlZCBpbiB0aGUgZm9sbG93aW5n
IGxldmVsLiBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgdGhlIG5vZGUgaW5kaWNlcyBhbmQKLSAgICAv
LyBob3cgdGhleSBhcmUgcmVsYXRlZCB0byB0aGVpciBwYXJlbnRzIGFuZCBjaGlsZHJlbi4KLSAg
ICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICAvLyAgICAgICAgICAgICAgMCAgICAgICAxICAg
ICAgIDIgICAgICAgMyAgICAgICA0ICAgICAgIDUgICAgICAgNgotICAgIC8vIFBBUkVOVCAgICAg
ICAtMSAgICAgIDAgICAgICAgMCAgICAgICAxICAgICAgIDEgICAgICAgMiAgICAgICAyCi0gICAg
Ly8gTEVGVCAgICAgICAgIDEgICAgICAgMyAgICAgICA1ICAgICAgIDcgICAgICAgOSAgICAgICAx
MSAgICAgIDEzCi0gICAgLy8gUklHSFQgICAgICAgIDIgICAgICAgNCAgICAgICA2ICAgICAgIDgg
ICAgICAgMTAgICAgICAxMiAgICAgIDE0Ci0gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAg
X3BhcmVudEluZGV4OiBmdW5jdGlvbihpKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGkgPiAwID8g
TWF0aC5mbG9vcigoaSAtIDEpIC8gMikgOiAtMTsKLSAgICB9LAotICAgIAotICAgIF9sZWZ0SW5k
ZXg6IGZ1bmN0aW9uKGkpCi0gICAgewotICAgICAgICB2YXIgbGVmdEluZGV4ID0gaSAqIDIgKyAx
OwotICAgICAgICByZXR1cm4gbGVmdEluZGV4IDwgdGhpcy5fc2l6ZSA/IGxlZnRJbmRleCA6IC0x
OwotICAgIH0sCi0gICAgCi0gICAgX3JpZ2h0SW5kZXg6IGZ1bmN0aW9uKGkpCi0gICAgewotICAg
ICAgICB2YXIgcmlnaHRJbmRleCA9IGkgKiAyICsgMjsKLSAgICAgICAgcmV0dXJuIHJpZ2h0SW5k
ZXggPCB0aGlzLl9zaXplID8gcmlnaHRJbmRleCA6IC0xOwotICAgIH0sCi0gICAgCi0gICAgLy8g
UmV0dXJuIHRoZSBjaGlsZCBpbmRleCB0aGF0IG1heSB2aW9sYXRlIHRoZSBoZWFwIHByb3BlcnR5
IGF0IGluZGV4IGkuCi0gICAgX2NoaWxkSW5kZXg6IGZ1bmN0aW9uKGkpCi0gICAgewotICAgICAg
ICB2YXIgbGVmdCA9IHRoaXMuX2xlZnRJbmRleChpKTsKLSAgICAgICAgdmFyIHJpZ2h0ID0gdGhp
cy5fcmlnaHRJbmRleChpKTsKLQotICAgICAgICBpZiAobGVmdCAhPSAtMSAmJiByaWdodCAhPSAt
MSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb21wYXJlKHRoaXMuX3ZhbHVlc1tsZWZ0XSwg
dGhpcy5fdmFsdWVzW3JpZ2h0XSkgPiAwID8gbGVmdCA6IHJpZ2h0OwotICAgICAgICAKLSAgICAg
ICAgcmV0dXJuIGxlZnQgIT0gLTEgPyBsZWZ0IDogcmlnaHQ7Ci0gICAgfSwKLSAgICAKLSAgICBp
bml0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl9zaXplID0gMDsKLSAgICB9LAot
ICAgIAotICAgIHRvcDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Np
emUgPyB0aGlzLl92YWx1ZXNbMF0gOiBOYU47Ci0gICAgfSwKLSAgICAKLSAgICBwdXNoOiBmdW5j
dGlvbih2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9zaXplID09IHRoaXMuX21heFNp
emUpIHsKLSAgICAgICAgICAgIC8vIElmIHNpemUgaXMgYm91bmRlZCBhbmQgdGhlIG5ldyB2YWx1
ZSBjYW4gYmUgYSBwYXJlbnQgb2YgdGhlIHRvcCgpCi0gICAgICAgICAgICAvLyBpZiB0aGUgc2l6
ZSB3ZXJlIHVuYm91bmRlZCwganVzdCBpZ25vcmUgdGhlIG5ldyB2YWx1ZS4KLSAgICAgICAgICAg
IGlmICh0aGlzLl9jb21wYXJlKHZhbHVlLCB0aGlzLnRvcCgpKSA+IDApCi0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgdGhpcy5wb3AoKTsKLSAgICAgICAgfQotICAgICAgICB0
aGlzLl92YWx1ZXNbdGhpcy5fc2l6ZSsrXSA9IHZhbHVlOwotICAgICAgICB0aGlzLl9idWJibGUo
dGhpcy5fc2l6ZSAtIDEpOwotICAgIH0sCi0KLSAgICBwb3A6IGZ1bmN0aW9uKCkKLSAgICB7Ci0g
ICAgICAgIGlmICghdGhpcy5fc2l6ZSkKLSAgICAgICAgICAgIHJldHVybiBOYU47Ci0gICAgICAg
IAotICAgICAgICB0aGlzLl92YWx1ZXNbMF0gPSB0aGlzLl92YWx1ZXNbLS10aGlzLl9zaXplXTsK
LSAgICAgICAgdGhpcy5fc2luaygwKTsKLSAgICB9LAotICAgIAotICAgIF9idWJibGU6IGZ1bmN0
aW9uKGkpCi0gICAgewotICAgICAgICAvLyBGaXggdGhlIGhlYXAgcHJvcGVydHkgYXQgaW5kZXgg
aSBnaXZlbiB0aGF0IHBhcmVudCBpcyB0aGUgb25seSBub2RlIHRoYXQKLSAgICAgICAgLy8gbWF5
IHZpb2xhdGUgdGhlIGhlYXAgcHJvcGVydHkuCi0gICAgICAgIGZvciAodmFyIHBpID0gdGhpcy5f
cGFyZW50SW5kZXgoaSk7IHBpICE9IC0xOyBpID0gcGksIHBpID0gdGhpcy5fcGFyZW50SW5kZXgo
cGkpKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5fY29tcGFyZSh0aGlzLl92YWx1ZXNbcGldLCB0
aGlzLl92YWx1ZXNbaV0pID4gMCkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIHRoaXMuX3ZhbHVlcy5zd2FwKHBpLCBpKTsKLSAgICAgICAgfQot
ICAgIH0sCi0gICAgCi0gICAgX3Npbms6IGZ1bmN0aW9uKGkpCi0gICAgewotICAgICAgICAvLyBG
aXggdGhlIGhlYXAgcHJvcGVydHkgYXQgaW5kZXggaSBnaXZlbiB0aGF0IGVhY2ggb2YgdGhlIGxl
ZnQgYW5kIHRoZSByaWdodAotICAgICAgICAvLyBzdWItdHJlZXMgc2F0aXNmaWVzIHRoZSBoZWFw
IHByb3BlcnR5LgotICAgICAgICBmb3IgKHZhciBjaSA9IHRoaXMuX2NoaWxkSW5kZXgoaSk7IGNp
ICE9IC0xOyBpID0gY2ksIGNpID0gdGhpcy5fY2hpbGRJbmRleChjaSkpIHsKLSAgICAgICAgICAg
IGlmICh0aGlzLl9jb21wYXJlKHRoaXMuX3ZhbHVlc1tpXSwgdGhpcy5fdmFsdWVzW2NpXSkgPiAw
KQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAgICAgICAgICB0aGlz
Ll92YWx1ZXMuc3dhcChjaSwgaSk7Ci0gICAgICAgIH0KLSAgICB9LAotICAgIAotICAgIHN0cjog
ZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIG91dCA9ICJIZWFwWyIgKyB0aGlzLl9zaXpl
ICsgIl0gPSBbIjsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zaXplOyArK2kp
IHsKLSAgICAgICAgICAgIG91dCArPSB0aGlzLl92YWx1ZXNbaV07Ci0gICAgICAgICAgICBpZiAo
aSA8IHRoaXMuX3NpemUgLSAxKQotICAgICAgICAgICAgICAgIG91dCArPSAiLCAiOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBvdXQgKyAiXSI7Ci0gICAgfSwKLSAgICAKLSAgICB2YWx1ZXM6
IGZ1bmN0aW9uKHNpemUpIHsKLSAgICAgICAgLy8gUmV0dXJuIHRoZSBsYXN0ICJzaXplIiBoZWFw
IGVsZW1lbnRzIHZhbHVlcy4KLSAgICAgICAgdmFyIHZhbHVlcyA9IHRoaXMuX3ZhbHVlcy5zbGlj
ZSgwLCB0aGlzLl9zaXplKTsKLSAgICAgICAgcmV0dXJuIHZhbHVlcy5zb3J0KHRoaXMuX2NvbXBh
cmUpLnNsaWNlKDAsIE1hdGgubWluKHNpemUsIHRoaXMuX3NpemUpKTsKLSAgICB9Ci19Ci0KLXZh
ciBBbGdvcml0aG0gPSB7Ci0gICAgY3JlYXRlTWluSGVhcDogZnVuY3Rpb24obWF4U2l6ZSkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBuZXcgSGVhcChtYXhTaXplLCBmdW5jdGlvbihhLCBiKSB7IHJl
dHVybiBiIC0gYTsgfSk7Ci0gICAgfSwKLSAgICAKLSAgICBjcmVhdGVNYXhIZWFwOiBmdW5jdGlv
bihtYXhTaXplKSB7Ci0gICAgICAgIHJldHVybiBuZXcgSGVhcChtYXhTaXplLCBmdW5jdGlvbihh
LCBiKSB7IHJldHVybiBhIC0gYjsgfSk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYmVuY2htYXJrLXJ1bm5l
ci5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVy
L2JlbmNobWFyay1ydW5uZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmZDE2
ZjUuLjAwMDAwMDAKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9k
ZWJ1Zy1ydW5uZXIvYmVuY2htYXJrLXJ1bm5lci5qcworKysgL2Rldi9udWxsCkBAIC0xLDE3NiAr
MCwwIEBACi1mdW5jdGlvbiBCZW5jaG1hcmtSdW5uZXJTdGF0ZShzdWl0ZXMpCi17Ci0gICAgdGhp
cy5fc3VpdGVzID0gc3VpdGVzOwotICAgIHRoaXMuX3N1aXRlSW5kZXggPSAtMTsKLSAgICB0aGlz
Ll90ZXN0SW5kZXggPSAwOwotICAgIHRoaXMubmV4dCgpOwotfQotCi1CZW5jaG1hcmtSdW5uZXJT
dGF0ZS5wcm90b3R5cGUgPSB7Ci0gICAgY3VycmVudFN1aXRlOiBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICByZXR1cm4gdGhpcy5fc3VpdGVzW3RoaXMuX3N1aXRlSW5kZXhdOwotICAgIH0sCi0K
LSAgICBjdXJyZW50VGVzdDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHN1aXRlID0g
dGhpcy5jdXJyZW50U3VpdGUoKTsKLSAgICAgICAgcmV0dXJuIHN1aXRlID8gc3VpdGUudGVzdHNb
dGhpcy5fdGVzdEluZGV4XSA6IG51bGw7Ci0gICAgfSwKLQotICAgIGlzRmlyc3RUZXN0OiBmdW5j
dGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gIXRoaXMuX3Rlc3RJbmRleDsKLSAgICB9LAot
Ci0gICAgbmV4dDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5fdGVzdEluZGV4Kys7
Ci0KLSAgICAgICAgdmFyIHN1aXRlID0gdGhpcy5fc3VpdGVzW3RoaXMuX3N1aXRlSW5kZXhdOwot
ICAgICAgICBpZiAoc3VpdGUgJiYgdGhpcy5fdGVzdEluZGV4IDwgc3VpdGUudGVzdHMubGVuZ3Ro
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3Rlc3RJbmRleCA9IDA7Ci0g
ICAgICAgIGRvIHsKLSAgICAgICAgICAgIHRoaXMuX3N1aXRlSW5kZXgrKzsKLSAgICAgICAgfSB3
aGlsZSAodGhpcy5fc3VpdGVJbmRleCA8IHRoaXMuX3N1aXRlcy5sZW5ndGggJiYgdGhpcy5fc3Vp
dGVzW3RoaXMuX3N1aXRlSW5kZXhdLmRpc2FibGVkKTsKLSAgICB9LAotCi0gICAgcHJlcGFyZUN1
cnJlbnRUZXN0OiBmdW5jdGlvbihydW5uZXIsIGZyYW1lKQotICAgIHsKLSAgICAgICAgdmFyIHRl
c3QgPSB0aGlzLmN1cnJlbnRUZXN0KCk7Ci0gICAgICAgIHZhciBwcm9taXNlID0gbmV3IFNpbXBs
ZVByb21pc2U7Ci0KLSAgICAgICAgZnJhbWUub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICBwcm9taXNlLnJlc29sdmUoKTsKLSAgICAgICAgfTsKLQotICAgICAgICBmcmFtZS5zcmMg
PSAidGVzdHMvIiArIHRlc3QudXJsOwotICAgICAgICByZXR1cm4gcHJvbWlzZTsKLSAgICB9Ci19
OwotCi1mdW5jdGlvbiBCZW5jaG1hcmtSdW5uZXIoc3VpdGVzLCBmcmFtZUNvbnRhaW5lciwgY2xp
ZW50KQotewotICAgIHRoaXMuX3N1aXRlcyA9IHN1aXRlczsKLSAgICB0aGlzLl9jbGllbnQgPSBj
bGllbnQ7Ci0gICAgdGhpcy5fZnJhbWVDb250YWluZXIgPSBmcmFtZUNvbnRhaW5lcjsKLX0KLQot
QmVuY2htYXJrUnVubmVyLnByb3RvdHlwZSA9IHsKLSAgICBfYXBwZW5kRnJhbWU6IGZ1bmN0aW9u
KCkKLSAgICB7Ci0gICAgICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOwotICAgICAgICBmcmFtZS5zZXRBdHRyaWJ1dGUoInNjcm9sbGluZyIsICJubyIpOwot
Ci0gICAgICAgIHRoaXMuX2ZyYW1lQ29udGFpbmVyLmluc2VydEJlZm9yZShmcmFtZSwgdGhpcy5f
ZnJhbWVDb250YWluZXIuZmlyc3RDaGlsZCk7Ci0gICAgICAgIHRoaXMuX2ZyYW1lID0gZnJhbWU7
Ci0gICAgICAgIHJldHVybiBmcmFtZTsKLSAgICB9LAotCi0gICAgX3JlbW92ZUZyYW1lOiBmdW5j
dGlvbigpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fZnJhbWUpIHsKLSAgICAgICAgICAgIHRo
aXMuX2ZyYW1lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fZnJhbWUpOwotICAgICAgICAg
ICAgdGhpcy5fZnJhbWUgPSBudWxsOwotICAgICAgICB9Ci0gICAgfSwKLQotICAgIF9ydW5CZW5j
aG1hcmtBbmRSZWNvcmRSZXN1bHRzOiBmdW5jdGlvbihzdGF0ZSkKLSAgICB7Ci0gICAgICAgIHZh
ciBwcm9taXNlID0gbmV3IFNpbXBsZVByb21pc2U7Ci0gICAgICAgIHZhciBzdWl0ZSA9IHN0YXRl
LmN1cnJlbnRTdWl0ZSgpOwotICAgICAgICB2YXIgdGVzdCA9IHN0YXRlLmN1cnJlbnRUZXN0KCk7
Ci0KLSAgICAgICAgaWYgKHRoaXMuX2NsaWVudCAmJiB0aGlzLl9jbGllbnQud2lsbFJ1blRlc3Qp
Ci0gICAgICAgICAgICB0aGlzLl9jbGllbnQud2lsbFJ1blRlc3Qoc3VpdGUsIHRlc3QpOwotCi0g
ICAgICAgIHZhciBjb250ZW50V2luZG93ID0gdGhpcy5fZnJhbWUuY29udGVudFdpbmRvdzsKLSAg
ICAgICAgdmFyIHNlbGYgPSB0aGlzOwotCi0gICAgICAgIHZhciBvcHRpb25zID0geyBjb21wbGV4
aXR5OiB0ZXN0LmNvbXBsZXhpdHkgfTsKLSAgICAgICAgVXRpbGl0aWVzLmV4dGVuZE9iamVjdChv
cHRpb25zLCB0aGlzLl9jbGllbnQub3B0aW9ucyk7Ci0gICAgICAgIFV0aWxpdGllcy5leHRlbmRP
YmplY3Qob3B0aW9ucywgY29udGVudFdpbmRvdy5VdGlsaXRpZXMucGFyc2VQYXJhbWV0ZXJzKCkp
OwotCi0gICAgICAgIHZhciBiZW5jaG1hcmsgPSBuZXcgY29udGVudFdpbmRvdy5iZW5jaG1hcmtD
bGFzcyhvcHRpb25zKTsKLSAgICAgICAgYmVuY2htYXJrLnJ1bigpLnRoZW4oZnVuY3Rpb24oc2Ft
cGxlcikgewotICAgICAgICAgICAgdmFyIHNhbXBsZXJzID0gc2VsZi5fc3VpdGVzU2FtcGxlcnNb
c3VpdGUubmFtZV0gfHwge307Ci0gICAgICAgICAgICBzYW1wbGVyc1t0ZXN0Lm5hbWVdID0gc2Ft
cGxlci5wcm9jZXNzKG9wdGlvbnMpOwotICAgICAgICAgICAgc2VsZi5fc3VpdGVzU2FtcGxlcnNb
c3VpdGUubmFtZV0gPSBzYW1wbGVyczsKLQotICAgICAgICAgICAgaWYgKHNlbGYuX2NsaWVudCAm
JiBzZWxmLl9jbGllbnQuZGlkUnVuVGVzdCkKLSAgICAgICAgICAgICAgICBzZWxmLl9jbGllbnQu
ZGlkUnVuVGVzdChzdWl0ZSwgdGVzdCk7Ci0KLSAgICAgICAgICAgIHN0YXRlLm5leHQoKTsKLSAg
ICAgICAgICAgIGlmIChzdGF0ZS5jdXJyZW50U3VpdGUoKSAhPSBzdWl0ZSkKLSAgICAgICAgICAg
ICAgICBzZWxmLl9yZW1vdmVGcmFtZSgpOwotICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKHN0
YXRlKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgcmV0dXJuIHByb21pc2U7Ci0gICAgfSwKLQot
ICAgIHN0ZXA6IGZ1bmN0aW9uKHN0YXRlKQotICAgIHsKLSAgICAgICAgaWYgKCFzdGF0ZSkgewot
ICAgICAgICAgICAgc3RhdGUgPSBuZXcgQmVuY2htYXJrUnVubmVyU3RhdGUodGhpcy5fc3VpdGVz
KTsKLSAgICAgICAgICAgIHRoaXMuX3N1aXRlc1NhbXBsZXJzID0ge307Ci0gICAgICAgIH0KLQot
ICAgICAgICB2YXIgc3VpdGUgPSBzdGF0ZS5jdXJyZW50U3VpdGUoKTsKLSAgICAgICAgaWYgKCFz
dWl0ZSkgewotICAgICAgICAgICAgdGhpcy5fZmluYWxpemUoKTsKLSAgICAgICAgICAgIHZhciBw
cm9taXNlID0gbmV3IFNpbXBsZVByb21pc2U7Ci0gICAgICAgICAgICBwcm9taXNlLnJlc29sdmUo
KTsKLSAgICAgICAgICAgIHJldHVybiBwcm9taXNlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYg
KHN0YXRlLmlzRmlyc3RUZXN0KCkpIHsKLSAgICAgICAgICAgIHRoaXMuX2FwcGVuZEZyYW1lKCk7
Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gc3RhdGUucHJlcGFyZUN1cnJlbnRUZXN0KHRo
aXMsIHRoaXMuX2ZyYW1lKS50aGVuKGZ1bmN0aW9uKHByZXBhcmVSZXR1cm5WYWx1ZSkgewotICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX3J1bkJlbmNobWFya0FuZFJlY29yZFJlc3VsdHMoc3RhdGUp
OwotICAgICAgICB9LmJpbmQodGhpcykpOwotICAgIH0sCi0KLSAgICBydW5BbGxTdGVwczogZnVu
Y3Rpb24oc3RhcnRpbmdTdGF0ZSkKLSAgICB7Ci0gICAgICAgIHZhciBuZXh0Q2FsbGVlID0gdGhp
cy5ydW5BbGxTdGVwcy5iaW5kKHRoaXMpOwotICAgICAgICB0aGlzLnN0ZXAoc3RhcnRpbmdTdGF0
ZSkudGhlbihmdW5jdGlvbihuZXh0U3RhdGUpIHsKLSAgICAgICAgICAgIGlmIChuZXh0U3RhdGUp
Ci0gICAgICAgICAgICAgICAgbmV4dENhbGxlZShuZXh0U3RhdGUpOwotICAgICAgICB9KTsKLSAg
ICB9LAotCi0gICAgcnVuTXVsdGlwbGVJdGVyYXRpb25zOiBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICAgIHZhciBjdXJyZW50SXRlcmF0aW9uID0gMDsK
LQotICAgICAgICB0aGlzLl9ydW5OZXh0SXRlcmF0aW9uID0gZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICBjdXJyZW50SXRlcmF0aW9uKys7Ci0gICAgICAgICAgICBpZiAoY3VycmVudEl0ZXJhdGlv
biA8IHNlbGYuX2NsaWVudC5pdGVyYXRpb25Db3VudCkKLSAgICAgICAgICAgICAgICBzZWxmLnJ1
bkFsbFN0ZXBzKCk7Ci0gICAgICAgICAgICBlbHNlIGlmICh0aGlzLl9jbGllbnQgJiYgdGhpcy5f
Y2xpZW50LmRpZEZpbmlzaExhc3RJdGVyYXRpb24pCi0gICAgICAgICAgICAgICAgc2VsZi5fY2xp
ZW50LmRpZEZpbmlzaExhc3RJdGVyYXRpb24oKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0
aGlzLl9jbGllbnQgJiYgdGhpcy5fY2xpZW50LndpbGxTdGFydEZpcnN0SXRlcmF0aW9uKQotICAg
ICAgICAgICAgdGhpcy5fY2xpZW50LndpbGxTdGFydEZpcnN0SXRlcmF0aW9uKCk7Ci0KLSAgICAg
ICAgdGhpcy5ydW5BbGxTdGVwcygpOwotICAgIH0sCi0KLSAgICBfZmluYWxpemU6IGZ1bmN0aW9u
KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3JlbW92ZUZyYW1lKCk7Ci0KLSAgICAgICAgaWYgKHRo
aXMuX2NsaWVudCAmJiB0aGlzLl9jbGllbnQuZGlkUnVuU3VpdGVzKQotICAgICAgICAgICAgdGhp
cy5fY2xpZW50LmRpZFJ1blN1aXRlcyh0aGlzLl9zdWl0ZXNTYW1wbGVycyk7Ci0KLSAgICAgICAg
aWYgKHRoaXMuX3J1bk5leHRJdGVyYXRpb24pCi0gICAgICAgICAgICB0aGlzLl9ydW5OZXh0SXRl
cmF0aW9uKCk7Ci0gICAgfQotfTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRl
ci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcwppbmRleCBmMzFiODBlLi43MDgyOTcxIDEwMDY0NAot
LS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpz
CkBAIC0xODMsNiArMTgzLDMzIEBAIFNpbXBsZVByb21pc2UucHJvdG90eXBlLnJlc29sdmUgPSBm
dW5jdGlvbiAodmFsdWUpCiAgICAgICAgIHRoaXMuX2NoYWluZWRQcm9taXNlLnJlc29sdmUocmVz
dWx0KTsKIH0KIAordmFyIFN0YXRpc3RpY3MgPQoreworICAgIHNhbXBsZU1lYW46IGZ1bmN0aW9u
KG51bWJlck9mU2FtcGxlcywgc3VtKQorICAgIHsKKyAgICAgICAgaWYgKG51bWJlck9mU2FtcGxl
cyA8IDEpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIHN1bSAvIG51bWJl
ck9mU2FtcGxlczsKKyAgICB9LAorCisgICAgLy8gV2l0aCBzdW0gYW5kIHN1bSBvZiBzcXVhcmVz
LCB3ZSBjYW4gY29tcHV0ZSB0aGUgc2FtcGxlIHN0YW5kYXJkIGRldmlhdGlvbiBpbiBPKDEpLgor
ICAgIC8vIFNlZSBodHRwczovL3JuaXdhLmNvbS8yMDEyLTExLTEwL3NhbXBsZS1zdGFuZGFyZC1k
ZXZpYXRpb24taW4tdGVybXMtb2Ytc3VtLWFuZC1zcXVhcmUtc3VtLW9mLXNhbXBsZXMvCisgICAg
dW5iaWFzZWRTYW1wbGVTdGFuZGFyZERldmlhdGlvbjogZnVuY3Rpb24obnVtYmVyT2ZTYW1wbGVz
LCBzdW0sIHNxdWFyZVN1bSkKKyAgICB7CisgICAgICAgIGlmIChudW1iZXJPZlNhbXBsZXMgPCAy
KQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBNYXRoLnNxcnQoKHNxdWFy
ZVN1bSAtIHN1bSAqIHN1bSAvIG51bWJlck9mU2FtcGxlcykgLyAobnVtYmVyT2ZTYW1wbGVzIC0g
MSkpOworICAgIH0sCisKKyAgICBnZW9tZXRyaWNNZWFuOiBmdW5jdGlvbih2YWx1ZXMpCisgICAg
eworICAgICAgICBpZiAoIXZhbHVlcy5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgdmFyIHJvb3RzID0gdmFsdWVzLm1hcChmdW5jdGlvbih2YWx1ZSkgeyByZXR1cm4gIE1h
dGgucG93KHZhbHVlLCAxIC8gdmFsdWVzLmxlbmd0aCk7IH0pCisgICAgICAgIHJldHVybiByb290
cy5yZWR1Y2UoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYSAqIGI7IH0pOworICAgIH0KK307CisK
IHdpbmRvdy5Eb2N1bWVudEV4dGVuc2lvbiA9CiB7CiAgICAgY3JlYXRlRWxlbWVudDogZnVuY3Rp
b24obmFtZSwgYXR0cnMsIHBhcmVudEVsZW1lbnQpCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9iZW5jaG1hcmstcnVubmVyLmpzIGIvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYmVuY2htYXJrLXJ1bm5l
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZmQxNmY1Ci0tLSAvZGV2
L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIv
YmVuY2htYXJrLXJ1bm5lci5qcwpAQCAtMCwwICsxLDE3NiBAQAorZnVuY3Rpb24gQmVuY2htYXJr
UnVubmVyU3RhdGUoc3VpdGVzKQoreworICAgIHRoaXMuX3N1aXRlcyA9IHN1aXRlczsKKyAgICB0
aGlzLl9zdWl0ZUluZGV4ID0gLTE7CisgICAgdGhpcy5fdGVzdEluZGV4ID0gMDsKKyAgICB0aGlz
Lm5leHQoKTsKK30KKworQmVuY2htYXJrUnVubmVyU3RhdGUucHJvdG90eXBlID0geworICAgIGN1
cnJlbnRTdWl0ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3N1aXRl
c1t0aGlzLl9zdWl0ZUluZGV4XTsKKyAgICB9LAorCisgICAgY3VycmVudFRlc3Q6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIHZhciBzdWl0ZSA9IHRoaXMuY3VycmVudFN1aXRlKCk7CisgICAg
ICAgIHJldHVybiBzdWl0ZSA/IHN1aXRlLnRlc3RzW3RoaXMuX3Rlc3RJbmRleF0gOiBudWxsOwor
ICAgIH0sCisKKyAgICBpc0ZpcnN0VGVzdDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0
dXJuICF0aGlzLl90ZXN0SW5kZXg7CisgICAgfSwKKworICAgIG5leHQ6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHRoaXMuX3Rlc3RJbmRleCsrOworCisgICAgICAgIHZhciBzdWl0ZSA9IHRo
aXMuX3N1aXRlc1t0aGlzLl9zdWl0ZUluZGV4XTsKKyAgICAgICAgaWYgKHN1aXRlICYmIHRoaXMu
X3Rlc3RJbmRleCA8IHN1aXRlLnRlc3RzLmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICB0aGlzLl90ZXN0SW5kZXggPSAwOworICAgICAgICBkbyB7CisgICAgICAgICAgICB0
aGlzLl9zdWl0ZUluZGV4Kys7CisgICAgICAgIH0gd2hpbGUgKHRoaXMuX3N1aXRlSW5kZXggPCB0
aGlzLl9zdWl0ZXMubGVuZ3RoICYmIHRoaXMuX3N1aXRlc1t0aGlzLl9zdWl0ZUluZGV4XS5kaXNh
YmxlZCk7CisgICAgfSwKKworICAgIHByZXBhcmVDdXJyZW50VGVzdDogZnVuY3Rpb24ocnVubmVy
LCBmcmFtZSkKKyAgICB7CisgICAgICAgIHZhciB0ZXN0ID0gdGhpcy5jdXJyZW50VGVzdCgpOwor
ICAgICAgICB2YXIgcHJvbWlzZSA9IG5ldyBTaW1wbGVQcm9taXNlOworCisgICAgICAgIGZyYW1l
Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7Cisg
ICAgICAgIH07CisKKyAgICAgICAgZnJhbWUuc3JjID0gInRlc3RzLyIgKyB0ZXN0LnVybDsKKyAg
ICAgICAgcmV0dXJuIHByb21pc2U7CisgICAgfQorfTsKKworZnVuY3Rpb24gQmVuY2htYXJrUnVu
bmVyKHN1aXRlcywgZnJhbWVDb250YWluZXIsIGNsaWVudCkKK3sKKyAgICB0aGlzLl9zdWl0ZXMg
PSBzdWl0ZXM7CisgICAgdGhpcy5fY2xpZW50ID0gY2xpZW50OworICAgIHRoaXMuX2ZyYW1lQ29u
dGFpbmVyID0gZnJhbWVDb250YWluZXI7Cit9CisKK0JlbmNobWFya1J1bm5lci5wcm90b3R5cGUg
PSB7CisgICAgX2FwcGVuZEZyYW1lOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgZnJh
bWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgZnJhbWUuc2V0
QXR0cmlidXRlKCJzY3JvbGxpbmciLCAibm8iKTsKKworICAgICAgICB0aGlzLl9mcmFtZUNvbnRh
aW5lci5pbnNlcnRCZWZvcmUoZnJhbWUsIHRoaXMuX2ZyYW1lQ29udGFpbmVyLmZpcnN0Q2hpbGQp
OworICAgICAgICB0aGlzLl9mcmFtZSA9IGZyYW1lOworICAgICAgICByZXR1cm4gZnJhbWU7Cisg
ICAgfSwKKworICAgIF9yZW1vdmVGcmFtZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYg
KHRoaXMuX2ZyYW1lKSB7CisgICAgICAgICAgICB0aGlzLl9mcmFtZS5wYXJlbnROb2RlLnJlbW92
ZUNoaWxkKHRoaXMuX2ZyYW1lKTsKKyAgICAgICAgICAgIHRoaXMuX2ZyYW1lID0gbnVsbDsKKyAg
ICAgICAgfQorICAgIH0sCisKKyAgICBfcnVuQmVuY2htYXJrQW5kUmVjb3JkUmVzdWx0czogZnVu
Y3Rpb24oc3RhdGUpCisgICAgeworICAgICAgICB2YXIgcHJvbWlzZSA9IG5ldyBTaW1wbGVQcm9t
aXNlOworICAgICAgICB2YXIgc3VpdGUgPSBzdGF0ZS5jdXJyZW50U3VpdGUoKTsKKyAgICAgICAg
dmFyIHRlc3QgPSBzdGF0ZS5jdXJyZW50VGVzdCgpOworCisgICAgICAgIGlmICh0aGlzLl9jbGll
bnQgJiYgdGhpcy5fY2xpZW50LndpbGxSdW5UZXN0KQorICAgICAgICAgICAgdGhpcy5fY2xpZW50
LndpbGxSdW5UZXN0KHN1aXRlLCB0ZXN0KTsKKworICAgICAgICB2YXIgY29udGVudFdpbmRvdyA9
IHRoaXMuX2ZyYW1lLmNvbnRlbnRXaW5kb3c7CisgICAgICAgIHZhciBzZWxmID0gdGhpczsKKwor
ICAgICAgICB2YXIgb3B0aW9ucyA9IHsgY29tcGxleGl0eTogdGVzdC5jb21wbGV4aXR5IH07Cisg
ICAgICAgIFV0aWxpdGllcy5leHRlbmRPYmplY3Qob3B0aW9ucywgdGhpcy5fY2xpZW50Lm9wdGlv
bnMpOworICAgICAgICBVdGlsaXRpZXMuZXh0ZW5kT2JqZWN0KG9wdGlvbnMsIGNvbnRlbnRXaW5k
b3cuVXRpbGl0aWVzLnBhcnNlUGFyYW1ldGVycygpKTsKKworICAgICAgICB2YXIgYmVuY2htYXJr
ID0gbmV3IGNvbnRlbnRXaW5kb3cuYmVuY2htYXJrQ2xhc3Mob3B0aW9ucyk7CisgICAgICAgIGJl
bmNobWFyay5ydW4oKS50aGVuKGZ1bmN0aW9uKHNhbXBsZXIpIHsKKyAgICAgICAgICAgIHZhciBz
YW1wbGVycyA9IHNlbGYuX3N1aXRlc1NhbXBsZXJzW3N1aXRlLm5hbWVdIHx8IHt9OworICAgICAg
ICAgICAgc2FtcGxlcnNbdGVzdC5uYW1lXSA9IHNhbXBsZXIucHJvY2VzcyhvcHRpb25zKTsKKyAg
ICAgICAgICAgIHNlbGYuX3N1aXRlc1NhbXBsZXJzW3N1aXRlLm5hbWVdID0gc2FtcGxlcnM7CisK
KyAgICAgICAgICAgIGlmIChzZWxmLl9jbGllbnQgJiYgc2VsZi5fY2xpZW50LmRpZFJ1blRlc3Qp
CisgICAgICAgICAgICAgICAgc2VsZi5fY2xpZW50LmRpZFJ1blRlc3Qoc3VpdGUsIHRlc3QpOwor
CisgICAgICAgICAgICBzdGF0ZS5uZXh0KCk7CisgICAgICAgICAgICBpZiAoc3RhdGUuY3VycmVu
dFN1aXRlKCkgIT0gc3VpdGUpCisgICAgICAgICAgICAgICAgc2VsZi5fcmVtb3ZlRnJhbWUoKTsK
KyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShzdGF0ZSk7CisgICAgICAgIH0pOworCisgICAg
ICAgIHJldHVybiBwcm9taXNlOworICAgIH0sCisKKyAgICBzdGVwOiBmdW5jdGlvbihzdGF0ZSkK
KyAgICB7CisgICAgICAgIGlmICghc3RhdGUpIHsKKyAgICAgICAgICAgIHN0YXRlID0gbmV3IEJl
bmNobWFya1J1bm5lclN0YXRlKHRoaXMuX3N1aXRlcyk7CisgICAgICAgICAgICB0aGlzLl9zdWl0
ZXNTYW1wbGVycyA9IHt9OworICAgICAgICB9CisKKyAgICAgICAgdmFyIHN1aXRlID0gc3RhdGUu
Y3VycmVudFN1aXRlKCk7CisgICAgICAgIGlmICghc3VpdGUpIHsKKyAgICAgICAgICAgIHRoaXMu
X2ZpbmFsaXplKCk7CisgICAgICAgICAgICB2YXIgcHJvbWlzZSA9IG5ldyBTaW1wbGVQcm9taXNl
OworICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgICAgICAgICByZXR1cm4gcHJv
bWlzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGF0ZS5pc0ZpcnN0VGVzdCgpKSB7Cisg
ICAgICAgICAgICB0aGlzLl9hcHBlbmRGcmFtZSgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0
dXJuIHN0YXRlLnByZXBhcmVDdXJyZW50VGVzdCh0aGlzLCB0aGlzLl9mcmFtZSkudGhlbihmdW5j
dGlvbihwcmVwYXJlUmV0dXJuVmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9ydW5C
ZW5jaG1hcmtBbmRSZWNvcmRSZXN1bHRzKHN0YXRlKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpKTsK
KyAgICB9LAorCisgICAgcnVuQWxsU3RlcHM6IGZ1bmN0aW9uKHN0YXJ0aW5nU3RhdGUpCisgICAg
eworICAgICAgICB2YXIgbmV4dENhbGxlZSA9IHRoaXMucnVuQWxsU3RlcHMuYmluZCh0aGlzKTsK
KyAgICAgICAgdGhpcy5zdGVwKHN0YXJ0aW5nU3RhdGUpLnRoZW4oZnVuY3Rpb24obmV4dFN0YXRl
KSB7CisgICAgICAgICAgICBpZiAobmV4dFN0YXRlKQorICAgICAgICAgICAgICAgIG5leHRDYWxs
ZWUobmV4dFN0YXRlKTsKKyAgICAgICAgfSk7CisgICAgfSwKKworICAgIHJ1bk11bHRpcGxlSXRl
cmF0aW9uczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIHNlbGYgPSB0aGlzOworICAg
ICAgICB2YXIgY3VycmVudEl0ZXJhdGlvbiA9IDA7CisKKyAgICAgICAgdGhpcy5fcnVuTmV4dEl0
ZXJhdGlvbiA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgY3VycmVudEl0ZXJhdGlvbisrOwor
ICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVyYXRpb24gPCBzZWxmLl9jbGllbnQuaXRlcmF0aW9u
Q291bnQpCisgICAgICAgICAgICAgICAgc2VsZi5ydW5BbGxTdGVwcygpOworICAgICAgICAgICAg
ZWxzZSBpZiAodGhpcy5fY2xpZW50ICYmIHRoaXMuX2NsaWVudC5kaWRGaW5pc2hMYXN0SXRlcmF0
aW9uKQorICAgICAgICAgICAgICAgIHNlbGYuX2NsaWVudC5kaWRGaW5pc2hMYXN0SXRlcmF0aW9u
KCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGhpcy5fY2xpZW50ICYmIHRoaXMuX2NsaWVu
dC53aWxsU3RhcnRGaXJzdEl0ZXJhdGlvbikKKyAgICAgICAgICAgIHRoaXMuX2NsaWVudC53aWxs
U3RhcnRGaXJzdEl0ZXJhdGlvbigpOworCisgICAgICAgIHRoaXMucnVuQWxsU3RlcHMoKTsKKyAg
ICB9LAorCisgICAgX2ZpbmFsaXplOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9y
ZW1vdmVGcmFtZSgpOworCisgICAgICAgIGlmICh0aGlzLl9jbGllbnQgJiYgdGhpcy5fY2xpZW50
LmRpZFJ1blN1aXRlcykKKyAgICAgICAgICAgIHRoaXMuX2NsaWVudC5kaWRSdW5TdWl0ZXModGhp
cy5fc3VpdGVzU2FtcGxlcnMpOworCisgICAgICAgIGlmICh0aGlzLl9ydW5OZXh0SXRlcmF0aW9u
KQorICAgICAgICAgICAgdGhpcy5fcnVuTmV4dEl0ZXJhdGlvbigpOworICAgIH0KK307CmRpZmYg
LS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3NhbXBsZXIuanMg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3NhbXBsZXIuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkMWVmZmYuLjAwMDAwMDAKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zYW1wbGVyLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsMTI5ICswLDAgQEAKLXZhciBTdGF0aXN0aWNzID0KLXsKLSAgICBzYW1wbGVNZWFuOiBmdW5j
dGlvbihudW1iZXJPZlNhbXBsZXMsIHN1bSkKLSAgICB7Ci0gICAgICAgIGlmIChudW1iZXJPZlNh
bXBsZXMgPCAxKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHJldHVybiBzdW0gLyBu
dW1iZXJPZlNhbXBsZXM7Ci0gICAgfSwKLQotICAgIC8vIFdpdGggc3VtIGFuZCBzdW0gb2Ygc3F1
YXJlcywgd2UgY2FuIGNvbXB1dGUgdGhlIHNhbXBsZSBzdGFuZGFyZCBkZXZpYXRpb24gaW4gTygx
KS4KLSAgICAvLyBTZWUgaHR0cHM6Ly9ybml3YS5jb20vMjAxMi0xMS0xMC9zYW1wbGUtc3RhbmRh
cmQtZGV2aWF0aW9uLWluLXRlcm1zLW9mLXN1bS1hbmQtc3F1YXJlLXN1bS1vZi1zYW1wbGVzLwot
ICAgIHVuYmlhc2VkU2FtcGxlU3RhbmRhcmREZXZpYXRpb246IGZ1bmN0aW9uKG51bWJlck9mU2Ft
cGxlcywgc3VtLCBzcXVhcmVTdW0pCi0gICAgewotICAgICAgICBpZiAobnVtYmVyT2ZTYW1wbGVz
IDwgMikKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KChz
cXVhcmVTdW0gLSBzdW0gKiBzdW0gLyBudW1iZXJPZlNhbXBsZXMpIC8gKG51bWJlck9mU2FtcGxl
cyAtIDEpKTsKLSAgICB9LAotCi0gICAgZ2VvbWV0cmljTWVhbjogZnVuY3Rpb24odmFsdWVzKQot
ICAgIHsKLSAgICAgICAgaWYgKCF2YWx1ZXMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIDA7
Ci0gICAgICAgIHZhciByb290cyA9IHZhbHVlcy5tYXAoZnVuY3Rpb24odmFsdWUpIHsgcmV0dXJu
ICBNYXRoLnBvdyh2YWx1ZSwgMSAvIHZhbHVlcy5sZW5ndGgpOyB9KQotICAgICAgICByZXR1cm4g
cm9vdHMucmVkdWNlKGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEgKiBiOyB9KTsKLSAgICB9Ci19
Ci0KLWZ1bmN0aW9uIEV4cGVyaW1lbnQoKQotewotICAgIHRoaXMuX3N1bSA9IDA7Ci0gICAgdGhp
cy5fc3F1YXJlU3VtID0gMDsKLSAgICB0aGlzLl9udW1iZXJPZlNhbXBsZXMgPSAwOwotICAgIHRo
aXMuX21heEhlYXAgPSBBbGdvcml0aG0uY3JlYXRlTWF4SGVhcChFeHBlcmltZW50LmRlZmF1bHRz
LkNPTkNFUk5fU0laRSk7Ci19Ci0KLUV4cGVyaW1lbnQuZGVmYXVsdHMgPQotewotICAgIENPTkNF
Uk46IDUsCi0gICAgQ09OQ0VSTl9TSVpFOiAxMDAsCi19Ci0KLUV4cGVyaW1lbnQucHJvdG90eXBl
ID0KLXsKLSAgICBzYW1wbGU6IGZ1bmN0aW9uKHZhbHVlKQotICAgIHsKLSAgICAgICAgdGhpcy5f
c3VtICs9IHZhbHVlOwotICAgICAgICB0aGlzLl9zcXVhcmVTdW0gKz0gdmFsdWUgKiB2YWx1ZTsK
LSAgICAgICAgdGhpcy5fbWF4SGVhcC5wdXNoKHZhbHVlKTsKLSAgICAgICAgKyt0aGlzLl9udW1i
ZXJPZlNhbXBsZXM7Ci0gICAgfSwKLQotICAgIG1lYW46IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBTdGF0aXN0aWNzLnNhbXBsZU1lYW4odGhpcy5fbnVtYmVyT2ZTYW1wbGVzLCB0
aGlzLl9zdW0pOwotICAgIH0sCi0KLSAgICBzdGFuZGFyZERldmlhdGlvbjogZnVuY3Rpb24oKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIFN0YXRpc3RpY3MudW5iaWFzZWRTYW1wbGVTdGFuZGFyZERl
dmlhdGlvbih0aGlzLl9udW1iZXJPZlNhbXBsZXMsIHRoaXMuX3N1bSwgdGhpcy5fc3F1YXJlU3Vt
KTsKLSAgICB9LAotCi0gICAgcGVyY2VudGFnZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAg
dmFyIG1lYW4gPSB0aGlzLm1lYW4oKTsKLSAgICAgICAgcmV0dXJuIG1lYW4gPyB0aGlzLnN0YW5k
YXJkRGV2aWF0aW9uKCkgKiAxMDAgLyBtZWFuIDogMDsKLSAgICB9LAotCi0gICAgY29uY2Vybjog
ZnVuY3Rpb24ocGVyY2VudGFnZSkKLSAgICB7Ci0gICAgICAgIHZhciBzaXplID0gTWF0aC5jZWls
KHRoaXMuX251bWJlck9mU2FtcGxlcyAqIHBlcmNlbnRhZ2UgLyAxMDApOwotICAgICAgICB2YXIg
dmFsdWVzID0gdGhpcy5fbWF4SGVhcC52YWx1ZXMoc2l6ZSk7Ci0gICAgICAgIHJldHVybiB2YWx1
ZXMubGVuZ3RoID8gdmFsdWVzLnJlZHVjZShmdW5jdGlvbihhLCBiKSB7IHJldHVybiBhICsgYjsg
fSkgLyB2YWx1ZXMubGVuZ3RoIDogMDsKLSAgICB9LAotCi0gICAgc2NvcmU6IGZ1bmN0aW9uKHBl
cmNlbnRhZ2UpCi0gICAgewotICAgICAgICByZXR1cm4gU3RhdGlzdGljcy5nZW9tZXRyaWNNZWFu
KFt0aGlzLm1lYW4oKSwgTWF0aC5tYXgodGhpcy5jb25jZXJuKHBlcmNlbnRhZ2UpLCAxKV0pOwot
ICAgIH0KLX0KLQotZnVuY3Rpb24gU2FtcGxlcihzZXJpZXNDb3VudCwgZXhwZWN0ZWRTYW1wbGVD
b3VudCwgcHJvY2Vzc29yKQotewotICAgIHRoaXMuX3Byb2Nlc3NvciA9IHByb2Nlc3NvcjsKLQot
ICAgIHRoaXMuc2FtcGxlcyA9IFtdOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VyaWVzQ291
bnQ7ICsraSkgewotICAgICAgICB2YXIgYXJyYXkgPSBuZXcgQXJyYXkoZXhwZWN0ZWRTYW1wbGVD
b3VudCk7Ci0gICAgICAgIGFycmF5LmZpbGwoMCk7Ci0gICAgICAgIHRoaXMuc2FtcGxlc1tpXSA9
IGFycmF5OwotICAgIH0KLSAgICB0aGlzLnNhbXBsZUNvdW50ID0gMDsKLSAgICB0aGlzLm1hcmtz
ID0ge307Ci19Ci0KLVNhbXBsZXIucHJvdG90eXBlID0KLXsKLSAgICByZWNvcmQ6IGZ1bmN0aW9u
KCkgewotICAgICAgICAvLyBBc3N1bWUgdGhhdCBhcmd1bWVudHMubGVuZ3RoID09IHRoaXMuc2Ft
cGxlcy5sZW5ndGgKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3Ro
OyBpKyspIHsKLSAgICAgICAgICAgIHRoaXMuc2FtcGxlc1tpXVt0aGlzLnNhbXBsZUNvdW50XSA9
IGFyZ3VtZW50c1tpXTsKLSAgICAgICAgfQotICAgICAgICArK3RoaXMuc2FtcGxlQ291bnQ7Ci0g
ICAgfSwKLQotICAgIG1hcms6IGZ1bmN0aW9uKGNvbW1lbnQsIGRhdGEpIHsKLSAgICAgICAgZGF0
YSA9IGRhdGEgfHwge307Ci0gICAgICAgIC8vIFRoZSBtYXJrIGV4aXN0cyBhZnRlciB0aGUgbGFz
dCByZWNvcmRlZCBzYW1wbGUKLSAgICAgICAgZGF0YS5pbmRleCA9IHRoaXMuc2FtcGxlQ291bnQ7
Ci0KLSAgICAgICAgdGhpcy5tYXJrc1tjb21tZW50XSA9IGRhdGE7Ci0gICAgfSwKLQotICAgIHBy
b2Nlc3M6IGZ1bmN0aW9uKG9wdGlvbnMpCi0gICAgewotICAgICAgICB2YXIgcmVzdWx0cyA9IHt9
OwotCi0gICAgICAgIGlmIChvcHRpb25zWyJhZGp1c3RtZW50Il0gPT0gImFkYXB0aXZlIikKLSAg
ICAgICAgICAgIHJlc3VsdHNbU3RyaW5ncy5qc29uLnRhcmdldEZQU10gPSArb3B0aW9uc1siZnJh
bWUtcmF0ZSJdOwotCi0gICAgICAgIC8vIFJlbW92ZSB1bnVzZWQgY2FwYWNpdHkKLSAgICAgICAg
dGhpcy5zYW1wbGVzID0gdGhpcy5zYW1wbGVzLm1hcChmdW5jdGlvbihhcnJheSkgewotICAgICAg
ICAgICAgcmV0dXJuIGFycmF5LnNsaWNlKDAsIHRoaXMuc2FtcGxlQ291bnQpOwotICAgICAgICB9
LCB0aGlzKTsKLQotICAgICAgICB0aGlzLl9wcm9jZXNzb3IucHJvY2Vzc1NhbXBsZXMocmVzdWx0
cyk7Ci0KLSAgICAgICAgcmV0dXJuIHJlc3VsdHM7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2lu
Zy1jYW52YXMtaW1hZ2VzLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMv
Ym91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNhbnZhcy1pbWFnZXMuaHRtbAppbmRleCA2MDA0
ODVmLi44NGJjZjE4IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVz
dHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNhbnZhcy1pbWFnZXMuaHRtbAorKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5j
aW5nLWNhbnZhcy1pbWFnZXMuaHRtbApAQCAtMTMsMTAgKzEzLDEwIEBACiAgICAgPGltZyBjbGFz
cz0iaGlkZGVuIiBzcmM9Ii4uL3Jlc291cmNlcy95aW4teWFuZy5zdmciPgogICAgIDxpbWcgY2xh
c3M9ImhpZGRlbiIgc3JjPSIuLi9yZXNvdXJjZXMveWluLXlhbmcucG5nIj4KICAgICA8Y2FudmFz
IGlkPSJzdGFnZSI+PC9jYW52YXM+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9h
bGdvcml0aG0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
c3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9z
YW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2V4
dGVuc2lvbnMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWxn
b3JpdGhtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NhbXBs
ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JvdW5jaW5nLXBhcnRpY2xlcy5qcyI+PC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91
bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNhbnZhcy1zaGFwZXMuaHRtbCBiL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNpbmctY2FudmFz
LXNoYXBlcy5odG1sCmluZGV4IDE3MGVkZjguLmFjNDdmYzZhIDEwMDY0NAotLS0gYS9QZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNh
bnZhcy1zaGFwZXMuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMv
Ym91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNhbnZhcy1zaGFwZXMuaHRtbApAQCAtNSwxMCAr
NSwxMCBAQAogPC9oZWFkPgogPGJvZHk+CiAgICAgPGNhbnZhcyBpZD0ic3RhZ2UiPjwvY2FudmFz
PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvYWxnb3JpdGhtLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0cmluZ3MuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc2FtcGxlci5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9leHRlbnNpb25zLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FsZ29yaXRobS5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zYW1wbGVyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21hdGguanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvbWFpbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy9ib3VuY2luZy1wYXJ0aWNsZXMuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
UGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3Vu
Y2luZy1jc3MtaW1hZ2VzLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMv
Ym91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNzcy1pbWFnZXMuaHRtbAppbmRleCBiM2E3YmRh
Li5iZmFjYTQ5IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMv
Ym91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNzcy1pbWFnZXMuaHRtbAorKysgYi9QZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNz
cy1pbWFnZXMuaHRtbApAQCAtMTAsMTAgKzEwLDEwIEBACiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8
ZGl2IGlkPSJzdGFnZSI+PC9kaXY+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9h
bGdvcml0aG0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
c3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9z
YW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2V4
dGVuc2lvbnMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWxn
b3JpdGhtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NhbXBs
ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JvdW5jaW5nLXBhcnRpY2xlcy5qcyI+PC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91
bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNzcy1zaGFwZXMuaHRtbCBiL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNpbmctY3NzLXNoYXBl
cy5odG1sCmluZGV4IDM5YTQyOGMuLjBmMGY1NzkgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNpbmctY3NzLXNoYXBl
cy5odG1sCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1w
YXJ0aWNsZXMvYm91bmNpbmctY3NzLXNoYXBlcy5odG1sCkBAIC0yMSwxMCArMjEsMTAgQEAKIDwv
aGVhZD4KIDxib2R5PgogICAgIDxkaXYgaWQ9InN0YWdlIj48L2Rpdj4KLSAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2FsZ29yaXRobS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9zdHJpbmdzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9hbGdvcml0aG0uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvc2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9tYXRoLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL21haW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYm91bmNp
bmctcGFydGljbGVzLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMv
QW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNpbmctc3ZnLWltYWdlcy5o
dG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xl
cy9ib3VuY2luZy1zdmctaW1hZ2VzLmh0bWwKaW5kZXggMjNkYTczNS4uYmIyOTA1MCAxMDA2NDQK
LS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xl
cy9ib3VuY2luZy1zdmctaW1hZ2VzLmh0bWwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1zdmctaW1hZ2VzLmh0bWwKQEAg
LTUsMTAgKzUsMTAgQEAKIDwvaGVhZD4KIDxib2R5PgogICAgIDxzdmcgaWQ9InN0YWdlIj48L3N2
Zz4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2FsZ29yaXRobS5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdHJpbmdzLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hbGdvcml0aG0uanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYXRoLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL21haW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvYm91bmNpbmctcGFydGljbGVzLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91
bmNpbmctc3ZnLXNoYXBlcy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1zdmctc2hhcGVzLmh0bWwKaW5kZXggN2QzMmI0
ZS4uYWU1MTkzZSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1zdmctc2hhcGVzLmh0bWwKKysrIGIvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1z
dmctc2hhcGVzLmh0bWwKQEAgLTUsMTAgKzUsMTAgQEAKIDwvaGVhZD4KIDxib2R5PgogICAgIDxz
dmcgaWQ9InN0YWdlIj48L3N2Zz4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2Fs
Z29yaXRobS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9z
dHJpbmdzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Nh
bXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZXh0
ZW5zaW9ucy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hbGdv
cml0aG0uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2FtcGxl
ci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYXRoLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21haW4uanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYm91bmNpbmctcGFydGljbGVzLmpzIj48L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0
ZXIvY2FudmFzLXN0YWdlLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMv
bWFzdGVyL2NhbnZhcy1zdGFnZS5odG1sCmluZGV4IGNkMDYzNDYuLjM2ZmMyZjcgMTAwNjQ0Ci0t
LSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvY2FudmFzLXN0YWdl
Lmh0bWwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9jYW52
YXMtc3RhZ2UuaHRtbApAQCAtNSwxMCArNSwxMCBAQAogPC9oZWFkPgogPGJvZHk+CiAgICAgPGNh
bnZhcyBpZD0ic3RhZ2UiPjwvY2FudmFzPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvYWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3N0cmluZ3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvc2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9leHRlbnNpb25zLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2FsZ29yaXRobS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9z
YW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21hdGgu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWFpbi5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYW52YXMtc3RhZ2UuanMiPjwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21pc2Mv
Y2FudmFzLWVsZWN0cm9ucy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L21pc2MvY2FudmFzLWVsZWN0cm9ucy5odG1sCmluZGV4IDM0ZGEwM2EuLjBkMWU5ZDUgMTAwNjQ0
Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL2NhbnZhcy1lbGVj
dHJvbnMuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWlzYy9j
YW52YXMtZWxlY3Ryb25zLmh0bWwKQEAgLTUsMTAgKzUsMTAgQEAKIDwvaGVhZD4KIDxib2R5Pgog
ICAgIDxjYW52YXMgaWQ9InN0YWdlIj48L2NhbnZhcz4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2FsZ29yaXRobS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9zdHJpbmdzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9hbGdvcml0aG0uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvc2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9tYXRoLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21haW4u
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FudmFzLWVsZWN0cm9u
cy5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIv
dGVzdHMvbWlzYy9jYW52YXMtc3RhcnMuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRl
ci90ZXN0cy9taXNjL2NhbnZhcy1zdGFycy5odG1sCmluZGV4IDFhYmNiMTEuLmNhMjBjODEgMTAw
NjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL2NhbnZhcy1z
dGFycy5odG1sCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL2Nh
bnZhcy1zdGFycy5odG1sCkBAIC0yLDEwICsyLDEwIEBACiA8aHRtbD4KIDxoZWFkPgogICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3Jlc291cmNlcy9z
dGFnZS5jc3MiPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvYWxnb3JpdGhtLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0cmluZ3MuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc2FtcGxlci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9leHRlbnNpb25zLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FsZ29yaXRobS5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zYW1wbGVyLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21hdGguanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWFpbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jYW52YXMtc3RhcnMuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21pc2MvY29tcG9zaXRpbmctdHJh
bnNmb3Jtcy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21pc2MvY29t
cG9zaXRpbmctdHJhbnNmb3Jtcy5odG1sCmluZGV4IDZjMDc3OGMuLjljY2IwNDUgMTAwNjQ0Ci0t
LSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL2NvbXBvc2l0aW5nLXRy
YW5zZm9ybXMuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWlz
Yy9jb21wb3NpdGluZy10cmFuc2Zvcm1zLmh0bWwKQEAgLTEyLDEwICsxMiwxMCBAQAogPC9oZWFk
PgogPGJvZHk+CiAgICAgPGRpdiBpZD0ic3RhZ2UiPjwvZGl2PgotICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvYWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3N0cmluZ3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvc2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9leHRlbnNpb25zLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2FsZ29yaXRobS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9zYW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL21hdGguanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
bWFpbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL2JvdW5jaW5nLXBhcnRpY2xl
cy9yZXNvdXJjZXMvYm91bmNpbmctcGFydGljbGVzLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvYWxnb3JpdGhtLmpz
IGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9hbGdvcml0aG0u
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDExODhiMQotLS0gL2Rldi9u
dWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvYWxn
b3JpdGhtLmpzCkBAIC0wLDAgKzEsMTM0IEBACitmdW5jdGlvbiBIZWFwKG1heFNpemUsIGNvbXBh
cmUpCit7CisgICAgdGhpcy5fbWF4U2l6ZSA9IG1heFNpemU7CisgICAgdGhpcy5fY29tcGFyZSA9
IGNvbXBhcmU7CisgICAgdGhpcy5fc2l6ZSA9IDA7CisgICAgdGhpcy5fdmFsdWVzID0gbmV3IEFy
cmF5KHRoaXMuX21heFNpemUpOworfQorCitIZWFwLnByb3RvdHlwZSA9Cit7CisgICAgLy8gVGhp
cyBpcyBhIGJpbmFyeSBoZWFwIHJlcHJlc2VudGVkIGluIGFuIGFycmF5LiBUaGUgcm9vdCBlbGVt
ZW50IGlzIHN0b3JlZAorICAgIC8vIGluIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBhcnJheS4g
VGhlIHJvb3QgaXMgZm9sbG93ZWQgYnkgaXRzIHR3byBjaGlsZHJlbi4KKyAgICAvLyBUaGVuIGl0
cyBmb3VyIGdyYW5kY2hpbGRyZW4gYW5kIHNvIG9uLiBTbyBldmVyeSBsZXZlbCBpbiB0aGUgYmlu
YXJ5IGhlYXAgaXMKKyAgICAvLyBkb3VibGVkIGluIHRoZSBmb2xsb3dpbmcgbGV2ZWwuIEhlcmUg
aXMgYW4gZXhhbXBsZSBvZiB0aGUgbm9kZSBpbmRpY2VzIGFuZAorICAgIC8vIGhvdyB0aGV5IGFy
ZSByZWxhdGVkIHRvIHRoZWlyIHBhcmVudHMgYW5kIGNoaWxkcmVuLgorICAgIC8vID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorICAgIC8vICAgICAgICAgICAgICAwICAgICAgIDEgICAgICAgMiAgICAgICAz
ICAgICAgIDQgICAgICAgNSAgICAgICA2CisgICAgLy8gUEFSRU5UICAgICAgIC0xICAgICAgMCAg
ICAgICAwICAgICAgIDEgICAgICAgMSAgICAgICAyICAgICAgIDIKKyAgICAvLyBMRUZUICAgICAg
ICAgMSAgICAgICAzICAgICAgIDUgICAgICAgNyAgICAgICA5ICAgICAgIDExICAgICAgMTMKKyAg
ICAvLyBSSUdIVCAgICAgICAgMiAgICAgICA0ICAgICAgIDYgICAgICAgOCAgICAgICAxMCAgICAg
IDEyICAgICAgMTQKKyAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfcGFyZW50SW5kZXg6
IGZ1bmN0aW9uKGkpCisgICAgeworICAgICAgICByZXR1cm4gaSA+IDAgPyBNYXRoLmZsb29yKChp
IC0gMSkgLyAyKSA6IC0xOworICAgIH0sCisKKyAgICBfbGVmdEluZGV4OiBmdW5jdGlvbihpKQor
ICAgIHsKKyAgICAgICAgdmFyIGxlZnRJbmRleCA9IGkgKiAyICsgMTsKKyAgICAgICAgcmV0dXJu
IGxlZnRJbmRleCA8IHRoaXMuX3NpemUgPyBsZWZ0SW5kZXggOiAtMTsKKyAgICB9LAorCisgICAg
X3JpZ2h0SW5kZXg6IGZ1bmN0aW9uKGkpCisgICAgeworICAgICAgICB2YXIgcmlnaHRJbmRleCA9
IGkgKiAyICsgMjsKKyAgICAgICAgcmV0dXJuIHJpZ2h0SW5kZXggPCB0aGlzLl9zaXplID8gcmln
aHRJbmRleCA6IC0xOworICAgIH0sCisKKyAgICAvLyBSZXR1cm4gdGhlIGNoaWxkIGluZGV4IHRo
YXQgbWF5IHZpb2xhdGUgdGhlIGhlYXAgcHJvcGVydHkgYXQgaW5kZXggaS4KKyAgICBfY2hpbGRJ
bmRleDogZnVuY3Rpb24oaSkKKyAgICB7CisgICAgICAgIHZhciBsZWZ0ID0gdGhpcy5fbGVmdElu
ZGV4KGkpOworICAgICAgICB2YXIgcmlnaHQgPSB0aGlzLl9yaWdodEluZGV4KGkpOworCisgICAg
ICAgIGlmIChsZWZ0ICE9IC0xICYmIHJpZ2h0ICE9IC0xKQorICAgICAgICAgICAgcmV0dXJuIHRo
aXMuX2NvbXBhcmUodGhpcy5fdmFsdWVzW2xlZnRdLCB0aGlzLl92YWx1ZXNbcmlnaHRdKSA+IDAg
PyBsZWZ0IDogcmlnaHQ7CisKKyAgICAgICAgcmV0dXJuIGxlZnQgIT0gLTEgPyBsZWZ0IDogcmln
aHQ7CisgICAgfSwKKworICAgIGluaXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMu
X3NpemUgPSAwOworICAgIH0sCisKKyAgICB0b3A6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLl9zaXplID8gdGhpcy5fdmFsdWVzWzBdIDogTmFOOworICAgIH0sCisKKyAg
ICBwdXNoOiBmdW5jdGlvbih2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9zaXplID09
IHRoaXMuX21heFNpemUpIHsKKyAgICAgICAgICAgIC8vIElmIHNpemUgaXMgYm91bmRlZCBhbmQg
dGhlIG5ldyB2YWx1ZSBjYW4gYmUgYSBwYXJlbnQgb2YgdGhlIHRvcCgpCisgICAgICAgICAgICAv
LyBpZiB0aGUgc2l6ZSB3ZXJlIHVuYm91bmRlZCwganVzdCBpZ25vcmUgdGhlIG5ldyB2YWx1ZS4K
KyAgICAgICAgICAgIGlmICh0aGlzLl9jb21wYXJlKHZhbHVlLCB0aGlzLnRvcCgpKSA+IDApCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgdGhpcy5wb3AoKTsKKyAgICAgICAg
fQorICAgICAgICB0aGlzLl92YWx1ZXNbdGhpcy5fc2l6ZSsrXSA9IHZhbHVlOworICAgICAgICB0
aGlzLl9idWJibGUodGhpcy5fc2l6ZSAtIDEpOworICAgIH0sCisKKyAgICBwb3A6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fc2l6ZSkKKyAgICAgICAgICAgIHJldHVybiBO
YU47CisKKyAgICAgICAgdGhpcy5fdmFsdWVzWzBdID0gdGhpcy5fdmFsdWVzWy0tdGhpcy5fc2l6
ZV07CisgICAgICAgIHRoaXMuX3NpbmsoMCk7CisgICAgfSwKKworICAgIF9idWJibGU6IGZ1bmN0
aW9uKGkpCisgICAgeworICAgICAgICAvLyBGaXggdGhlIGhlYXAgcHJvcGVydHkgYXQgaW5kZXgg
aSBnaXZlbiB0aGF0IHBhcmVudCBpcyB0aGUgb25seSBub2RlIHRoYXQKKyAgICAgICAgLy8gbWF5
IHZpb2xhdGUgdGhlIGhlYXAgcHJvcGVydHkuCisgICAgICAgIGZvciAodmFyIHBpID0gdGhpcy5f
cGFyZW50SW5kZXgoaSk7IHBpICE9IC0xOyBpID0gcGksIHBpID0gdGhpcy5fcGFyZW50SW5kZXgo
cGkpKSB7CisgICAgICAgICAgICBpZiAodGhpcy5fY29tcGFyZSh0aGlzLl92YWx1ZXNbcGldLCB0
aGlzLl92YWx1ZXNbaV0pID4gMCkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAg
ICAgdGhpcy5fdmFsdWVzLnN3YXAocGksIGkpOworICAgICAgICB9CisgICAgfSwKKworICAgIF9z
aW5rOiBmdW5jdGlvbihpKQorICAgIHsKKyAgICAgICAgLy8gRml4IHRoZSBoZWFwIHByb3BlcnR5
IGF0IGluZGV4IGkgZ2l2ZW4gdGhhdCBlYWNoIG9mIHRoZSBsZWZ0IGFuZCB0aGUgcmlnaHQKKyAg
ICAgICAgLy8gc3ViLXRyZWVzIHNhdGlzZmllcyB0aGUgaGVhcCBwcm9wZXJ0eS4KKyAgICAgICAg
Zm9yICh2YXIgY2kgPSB0aGlzLl9jaGlsZEluZGV4KGkpOyBjaSAhPSAtMTsgaSA9IGNpLCBjaSA9
IHRoaXMuX2NoaWxkSW5kZXgoY2kpKSB7CisgICAgICAgICAgICBpZiAodGhpcy5fY29tcGFyZSh0
aGlzLl92YWx1ZXNbaV0sIHRoaXMuX3ZhbHVlc1tjaV0pID4gMCkKKyAgICAgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICAgICAgdGhpcy5fdmFsdWVzLnN3YXAoY2ksIGkpOworICAgICAgICB9
CisgICAgfSwKKworICAgIHN0cjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIG91dCA9
ICJIZWFwWyIgKyB0aGlzLl9zaXplICsgIl0gPSBbIjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB0aGlzLl9zaXplOyArK2kpIHsKKyAgICAgICAgICAgIG91dCArPSB0aGlzLl92YWx1ZXNb
aV07CisgICAgICAgICAgICBpZiAoaSA8IHRoaXMuX3NpemUgLSAxKQorICAgICAgICAgICAgICAg
IG91dCArPSAiLCAiOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvdXQgKyAiXSI7CisgICAg
fSwKKworICAgIHZhbHVlczogZnVuY3Rpb24oc2l6ZSkgeworICAgICAgICAvLyBSZXR1cm4gdGhl
IGxhc3QgInNpemUiIGhlYXAgZWxlbWVudHMgdmFsdWVzLgorICAgICAgICB2YXIgdmFsdWVzID0g
dGhpcy5fdmFsdWVzLnNsaWNlKDAsIHRoaXMuX3NpemUpOworICAgICAgICByZXR1cm4gdmFsdWVz
LnNvcnQodGhpcy5fY29tcGFyZSkuc2xpY2UoMCwgTWF0aC5taW4oc2l6ZSwgdGhpcy5fc2l6ZSkp
OworICAgIH0KK30KKwordmFyIEFsZ29yaXRobSA9IHsKKyAgICBjcmVhdGVNaW5IZWFwOiBmdW5j
dGlvbihtYXhTaXplKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBIZWFwKG1heFNpemUsIGZ1
bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGIgLSBhOyB9KTsKKyAgICB9LAorCisgICAgY3JlYXRlTWF4
SGVhcDogZnVuY3Rpb24obWF4U2l6ZSkgeworICAgICAgICByZXR1cm4gbmV3IEhlYXAobWF4U2l6
ZSwgZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYSAtIGI7IH0pOworICAgIH0KK30KZGlmZiAtLWdp
dCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc2FtcGxlci5q
cyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc2FtcGxlci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWM2MmVlCi0tLSAvZGV2L251
bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9zYW1w
bGVyLmpzCkBAIC0wLDAgKzEsMTAyIEBACitmdW5jdGlvbiBFeHBlcmltZW50KCkKK3sKKyAgICB0
aGlzLl9zdW0gPSAwOworICAgIHRoaXMuX3NxdWFyZVN1bSA9IDA7CisgICAgdGhpcy5fbnVtYmVy
T2ZTYW1wbGVzID0gMDsKKyAgICB0aGlzLl9tYXhIZWFwID0gQWxnb3JpdGhtLmNyZWF0ZU1heEhl
YXAoRXhwZXJpbWVudC5kZWZhdWx0cy5DT05DRVJOX1NJWkUpOworfQorCitFeHBlcmltZW50LmRl
ZmF1bHRzID0KK3sKKyAgICBDT05DRVJOOiA1LAorICAgIENPTkNFUk5fU0laRTogMTAwLAorfQor
CitFeHBlcmltZW50LnByb3RvdHlwZSA9Cit7CisgICAgc2FtcGxlOiBmdW5jdGlvbih2YWx1ZSkK
KyAgICB7CisgICAgICAgIHRoaXMuX3N1bSArPSB2YWx1ZTsKKyAgICAgICAgdGhpcy5fc3F1YXJl
U3VtICs9IHZhbHVlICogdmFsdWU7CisgICAgICAgIHRoaXMuX21heEhlYXAucHVzaCh2YWx1ZSk7
CisgICAgICAgICsrdGhpcy5fbnVtYmVyT2ZTYW1wbGVzOworICAgIH0sCisKKyAgICBtZWFuOiBm
dW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gU3RhdGlzdGljcy5zYW1wbGVNZWFuKHRo
aXMuX251bWJlck9mU2FtcGxlcywgdGhpcy5fc3VtKTsKKyAgICB9LAorCisgICAgc3RhbmRhcmRE
ZXZpYXRpb246IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBTdGF0aXN0aWNzLnVu
Ymlhc2VkU2FtcGxlU3RhbmRhcmREZXZpYXRpb24odGhpcy5fbnVtYmVyT2ZTYW1wbGVzLCB0aGlz
Ll9zdW0sIHRoaXMuX3NxdWFyZVN1bSk7CisgICAgfSwKKworICAgIHBlcmNlbnRhZ2U6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBtZWFuID0gdGhpcy5tZWFuKCk7CisgICAgICAgIHJl
dHVybiBtZWFuID8gdGhpcy5zdGFuZGFyZERldmlhdGlvbigpICogMTAwIC8gbWVhbiA6IDA7Cisg
ICAgfSwKKworICAgIGNvbmNlcm46IGZ1bmN0aW9uKHBlcmNlbnRhZ2UpCisgICAgeworICAgICAg
ICB2YXIgc2l6ZSA9IE1hdGguY2VpbCh0aGlzLl9udW1iZXJPZlNhbXBsZXMgKiBwZXJjZW50YWdl
IC8gMTAwKTsKKyAgICAgICAgdmFyIHZhbHVlcyA9IHRoaXMuX21heEhlYXAudmFsdWVzKHNpemUp
OworICAgICAgICByZXR1cm4gdmFsdWVzLmxlbmd0aCA/IHZhbHVlcy5yZWR1Y2UoZnVuY3Rpb24o
YSwgYikgeyByZXR1cm4gYSArIGI7IH0pIC8gdmFsdWVzLmxlbmd0aCA6IDA7CisgICAgfSwKKwor
ICAgIHNjb3JlOiBmdW5jdGlvbihwZXJjZW50YWdlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0
YXRpc3RpY3MuZ2VvbWV0cmljTWVhbihbdGhpcy5tZWFuKCksIE1hdGgubWF4KHRoaXMuY29uY2Vy
bihwZXJjZW50YWdlKSwgMSldKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIFNhbXBsZXIoc2VyaWVz
Q291bnQsIGV4cGVjdGVkU2FtcGxlQ291bnQsIHByb2Nlc3NvcikKK3sKKyAgICB0aGlzLl9wcm9j
ZXNzb3IgPSBwcm9jZXNzb3I7CisKKyAgICB0aGlzLnNhbXBsZXMgPSBbXTsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHNlcmllc0NvdW50OyArK2kpIHsKKyAgICAgICAgdmFyIGFycmF5ID0gbmV3
IEFycmF5KGV4cGVjdGVkU2FtcGxlQ291bnQpOworICAgICAgICBhcnJheS5maWxsKDApOworICAg
ICAgICB0aGlzLnNhbXBsZXNbaV0gPSBhcnJheTsKKyAgICB9CisgICAgdGhpcy5zYW1wbGVDb3Vu
dCA9IDA7CisgICAgdGhpcy5tYXJrcyA9IHt9OworfQorCitTYW1wbGVyLnByb3RvdHlwZSA9Cit7
CisgICAgcmVjb3JkOiBmdW5jdGlvbigpIHsKKyAgICAgICAgLy8gQXNzdW1lIHRoYXQgYXJndW1l
bnRzLmxlbmd0aCA9PSB0aGlzLnNhbXBsZXMubGVuZ3RoCisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0aGlzLnNhbXBsZXNb
aV1bdGhpcy5zYW1wbGVDb3VudF0gPSBhcmd1bWVudHNbaV07CisgICAgICAgIH0KKyAgICAgICAg
Kyt0aGlzLnNhbXBsZUNvdW50OworICAgIH0sCisKKyAgICBtYXJrOiBmdW5jdGlvbihjb21tZW50
LCBkYXRhKSB7CisgICAgICAgIGRhdGEgPSBkYXRhIHx8IHt9OworICAgICAgICAvLyBUaGUgbWFy
ayBleGlzdHMgYWZ0ZXIgdGhlIGxhc3QgcmVjb3JkZWQgc2FtcGxlCisgICAgICAgIGRhdGEuaW5k
ZXggPSB0aGlzLnNhbXBsZUNvdW50OworCisgICAgICAgIHRoaXMubWFya3NbY29tbWVudF0gPSBk
YXRhOworICAgIH0sCisKKyAgICBwcm9jZXNzOiBmdW5jdGlvbihvcHRpb25zKQorICAgIHsKKyAg
ICAgICAgdmFyIHJlc3VsdHMgPSB7fTsKKworICAgICAgICBpZiAob3B0aW9uc1siYWRqdXN0bWVu
dCJdID09ICJhZGFwdGl2ZSIpCisgICAgICAgICAgICByZXN1bHRzW1N0cmluZ3MuanNvbi50YXJn
ZXRGUFNdID0gK29wdGlvbnNbImZyYW1lLXJhdGUiXTsKKworICAgICAgICAvLyBSZW1vdmUgdW51
c2VkIGNhcGFjaXR5CisgICAgICAgIHRoaXMuc2FtcGxlcyA9IHRoaXMuc2FtcGxlcy5tYXAoZnVu
Y3Rpb24oYXJyYXkpIHsKKyAgICAgICAgICAgIHJldHVybiBhcnJheS5zbGljZSgwLCB0aGlzLnNh
bXBsZUNvdW50KTsKKyAgICAgICAgfSwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5fcHJvY2Vzc29y
LnByb2Nlc3NTYW1wbGVzKHJlc3VsdHMpOworCisgICAgICAgIHJldHVybiByZXN1bHRzOworICAg
IH0KK30KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9zaW1w
bGUvc2ltcGxlLWNhbnZhcy1wYXRocy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Rlc3RzL3NpbXBsZS9zaW1wbGUtY2FudmFzLXBhdGhzLmh0bWwKaW5kZXggNGEyZGE4Zi4uZjI2
NzgyMCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3NpbXBs
ZS9zaW1wbGUtY2FudmFzLXBhdGhzLmh0bWwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3Rlc3RzL3NpbXBsZS9zaW1wbGUtY2FudmFzLXBhdGhzLmh0bWwKQEAgLTUsMTAgKzUsMTAg
QEAKIDwvaGVhZD4KIDxib2R5PgogICAgIDxjYW52YXMgaWQ9InN0YWdlIj48L2NhbnZhcz4KLSAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2FsZ29yaXRobS5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdHJpbmdzLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hbGdvcml0aG0uanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYXRoLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL21haW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9t
YXN0ZXIvcmVzb3VyY2VzL2NhbnZhcy1zdGFnZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGVtcGxhdGUvdGVtcGxhdGUtY2FudmFz
Lmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGVtcGxhdGUvdGVtcGxh
dGUtY2FudmFzLmh0bWwKaW5kZXggYjg3YmE3OS4uMTFkZGZhYSAxMDA2NDQKLS0tIGEvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3RlbXBsYXRlL3RlbXBsYXRlLWNhbnZhcy5odG1s
CisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZW1wbGF0ZS90ZW1wbGF0
ZS1jYW52YXMuaHRtbApAQCAtNSwxMCArNSwxMCBAQAogPC9oZWFkPgogPGJvZHk+CiAgICAgPGNh
bnZhcyBpZD0ic3RhZ2UiPjwvY2FudmFzPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvYWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3N0cmluZ3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvc2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9leHRlbnNpb25zLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2FsZ29yaXRobS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9z
YW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21hdGgu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWFpbi5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZW1wbGF0ZS1jYW52YXMuanMiPjwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Rl
bXBsYXRlL3RlbXBsYXRlLWNzcy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rl
c3RzL3RlbXBsYXRlL3RlbXBsYXRlLWNzcy5odG1sCmluZGV4IDkwYmYyZTkuLmIyYmE0NzkgMTAw
NjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZW1wbGF0ZS90ZW1w
bGF0ZS1jc3MuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGVt
cGxhdGUvdGVtcGxhdGUtY3NzLmh0bWwKQEAgLTUsMTAgKzUsMTAgQEAKIDwvaGVhZD4KIDxib2R5
PgogICAgIDxkaXYgaWQ9InN0YWdlIj48L2Rpdj4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2FsZ29yaXRobS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9zdHJpbmdzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9hbGdvcml0aG0uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvc2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9t
YXRoLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21haW4uanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVtcGxhdGUtY3NzLmpzIj48
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90
ZW1wbGF0ZS90ZW1wbGF0ZS1zdmcuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90
ZXN0cy90ZW1wbGF0ZS90ZW1wbGF0ZS1zdmcuaHRtbAppbmRleCAyZTBkZjlhLi40MjVlYzM2IDEw
MDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGVtcGxhdGUvdGVt
cGxhdGUtc3ZnLmh0bWwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Rl
bXBsYXRlL3RlbXBsYXRlLXN2Zy5odG1sCkBAIC01LDEwICs1LDEwIEBACiA8L2hlYWQ+CiA8Ym9k
eT4KICAgICA8c3ZnIGlkPSJzdGFnZSI+PC9zdmc+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9hbGdvcml0aG0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9zYW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2V4dGVuc2lvbnMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvYWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
bWF0aC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWluLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RlbXBsYXRlLXN2Zy5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMv
dGV4dC9sYXllcmluZy10ZXh0Lmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVz
dHMvdGV4dC9sYXllcmluZy10ZXh0Lmh0bWwKaW5kZXggZmJmZjM3My4uNDE4MGJiYSAxMDA2NDQK
LS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3RleHQvbGF5ZXJpbmctdGV4
dC5odG1sCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L2xheWVy
aW5nLXRleHQuaHRtbApAQCAtMjIsMTAgKzIyLDEwIEBACiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8
ZGl2IGlkPSJzdGFnZSI+PC9kaXY+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9h
bGdvcml0aG0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
c3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9z
YW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2V4
dGVuc2lvbnMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWxn
b3JpdGhtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NhbXBs
ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2xheWVyaW5nLXRleHQuanMiPjwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3RleHQvdGV4
dC1ib3hlcy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3RleHQvdGV4
dC1ib3hlcy5odG1sCmluZGV4IDZjMTA2ZjguLjgyOGNhNzEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L3RleHQtYm94ZXMuaHRtbAorKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC90ZXh0LWJveGVzLmh0bWwKQEAgLTUw
LDEwICs1MCwxMCBAQAogICAgICAgICDgsqjgsqjgspfgs4Yg4LK54LK+4LKo4LK/IOCyhuCyl+Cy
puCzhiwg4LKo4LK+4LKo4LOBIOCyl+CynOCyqOCzjeCyqOCzgSDgsqTgsr/gsqjgsqzgsrngs4Hg
sqbgs4EKICAgICA8L2Rpdj4KICAgICA8ZGl2IGlkPSJzdGFnZSI+PC9kaXY+Ci0gICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9hbGdvcml0aG0uanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zYW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvYWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9tYWluLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vYm91bmNpbmct
cGFydGljbGVzL3Jlc291cmNlcy9ib3VuY2luZy1wYXJ0aWNsZXMuanMiPjwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cgYi9QZXJmb3JtYW5jZVRlc3RzL0No
YW5nZUxvZwppbmRleCA3MDJkMjZkLi4yYTQwNjM2IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRl
c3RzL0NoYW5nZUxvZworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwpAQCAtNSw2ICs1
LDQyIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKKyAgICAgICAg
TW92ZSBhbGdvcml0aG0uanMgYW5kIHNhbXBsZXIuanMgdG8gdGVzdHMvIGFuZCBiZW5jaG1hcmst
cnVubmVyLmpzIHRvIHJ1bm5lci8uCisKKyAgICAgICAgTmVlZGVkIGJ5IGJvdGggaGFybmVzc2Vz
LgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci9iZW5jaG1hcmstcnVubmVy
LmpzOiBSZW5hbWVkIGZyb20gUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9k
ZWJ1Zy1ydW5uZXIvYmVuY2htYXJrLXJ1bm5lci5qcy4KKyAgICAgICAgKiBBbmltb21ldGVyL2Rl
dmVsb3Blci5odG1sOgorICAgICAgICAqIEFuaW1vbWV0ZXIvaW5kZXguaHRtbDoKKworICAgICAg
ICBOZWVkZWQgb25seSBieSB0aGUgdGVzdHMuIE1vdmUgdG8gdGVzdHMvLiBTdGF0aXN0aWNzLCBp
biBzYW1wbGVyLmpzLCBpcyB1c2VkIGJ5IFJlc3VsdHNEYXNoYm9hcmQsIHNvIG1vdmUgdGhhdAor
ICAgICAgICBpbnRvIHV0aWxpdGllcy5qcy4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNl
cy9leHRlbnNpb25zLmpzOgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL2Fs
Z29yaXRobS5qczogUmVuYW1lZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNv
dXJjZXMvYWxnb3JpdGhtLmpzLgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2Vz
L3NhbXBsZXIuanM6IFJlbmFtZWQgZnJvbSBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVz
b3VyY2VzL3NhbXBsZXIuanMuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1w
YXJ0aWNsZXMvYm91bmNpbmctY2FudmFzLWltYWdlcy5odG1sOgorICAgICAgICAqIEFuaW1vbWV0
ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNhbnZhcy1zaGFwZXMuaHRtbDoK
KyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1j
c3MtaW1hZ2VzLmh0bWw6CisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0
aWNsZXMvYm91bmNpbmctY3NzLXNoYXBlcy5odG1sOgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVz
dHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLXN2Zy1pbWFnZXMuaHRtbDoKKyAgICAgICAg
KiBBbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1zdmctc2hhcGVz
Lmh0bWw6CisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvY2FudmFzLXN0YWdlLmh0
bWw6CisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9taXNjL2NhbnZhcy1lbGVjdHJvbnMuaHRt
bDoKKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL21pc2MvY2FudmFzLXN0YXJzLmh0bWw6Cisg
ICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9taXNjL2NvbXBvc2l0aW5nLXRyYW5zZm9ybXMuaHRt
bDoKKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL3NpbXBsZS9zaW1wbGUtY2FudmFzLXBhdGhz
Lmh0bWw6CisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy90ZW1wbGF0ZS90ZW1wbGF0ZS1jYW52
YXMuaHRtbDoKKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL3RlbXBsYXRlL3RlbXBsYXRlLWNz
cy5odG1sOgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvdGVtcGxhdGUvdGVtcGxhdGUtc3Zn
Lmh0bWw6CisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy90ZXh0L2xheWVyaW5nLXRleHQuaHRt
bDoKKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL3RleHQvdGV4dC1ib3hlcy5odG1sOgorCisy
MDE2LTAxLTAzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUg
YmVuY2htYXJrIHRlc3Qgc3VpdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MjY3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCiAgICAgICAgIEZpeCB0ZXN0cyBmb3Igb3RoZXIgYnJvd3NlcnMuCiAKICAgICAgICAgKiBB
bmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzOgotLSAKMi41LjQgKEFwcGxlIEdpdC02
MSkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268234</attachid>
            <date>2016-01-04 14:31:56 -0800</date>
            <delta_ts>2016-01-07 19:00:12 -0800</delta_ts>
            <desc>3. Add a new test.</desc>
            <filename>0003-Update-benchmark-test-suite.patch</filename>
            <type>text/plain</type>
            <size>71948</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBlYTU0MWM2MTc4NDc3MmQyYzI3NTUyOTQyZWY5YTE1MjA1Y2U1MzFmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBNb24s
IDQgSmFuIDIwMTYgMTQ6Mjg6MDggLTA4MDAKU3ViamVjdDogW1BBVENIIDMvM10gVXBkYXRlIGJl
bmNobWFyayB0ZXN0IHN1aXRlCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUyNjc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFkZCBhIG5ldyB0ZXN0LiBU
aGUgdGVzdCBoYXMgYSByb3RhdGluZyBiYWNrZ3JvdW5kCmdyYWRpZW50LCBhbmQgZG9lcyBhIGJl
dHRlciBqb2IgcGh5c2ljYWxseSBzaW11bGF0aW5nCnBhcnRpY2xlcy4KCiogQW5pbW9tZXRlci9y
ZXNvdXJjZXMvZXh0ZW5zaW9ucy5qczogVGVzdCBQb2ludCB0bwp0YWtlIGNvbnN0YW50cyBhcyB3
ZWxsIGFzIG90aGVyIFBvaW50cy4KKFBvaW50LnByb3RvdHlwZS5sZW5ndGgpOiBBZGRlZC4KKFBv
aW50LnByb3RvdHlwZS5ub3JtYWxpemUpOiBBZGRlZC4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9y
dW5uZXIvdGVzdHMuanM6IEFkZCB0aGUgdGVzdAp0byB0aGUgbWFzdGVyIHN1aXRlLgoqIEFuaW1v
bWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9wYXJ0aWNsZXMuanM6IEFkZGVkLiBQYXJlbnQg
Y2xhc3MgZm9yIGRpZmZlcmVudCBraW5kcyBvZiBwYXJ0aWNsZXMuCihQYXJ0aWNsZSk6CihQYXJ0
aWNsZS5wcm90b3R5cGUucmVzZXQpOiBJZiB0aGUgcGFydGljbGUgc3RhcnRzCnNsb3dpbmcgZG93
biBpbiB0ZXJtcyBvZiBpdHMgYW5pbWF0aW9uLCByZXNldCBpdC4KKFBhcnRpY2xlLnByb3RvdHlw
ZS5hbmltYXRlKTogQm91bmNlIG9mZiB0aGUgd2FsbHMKZWxhc3RpY2FsbHksIGFuZCBpbmNsdWRl
IGdyYXZpdHkuCihQYXJ0aWNsZXNTdGFnZSk6IFN0YWdlIGluY2x1ZGVzIGEgcm90YXRpbmcgZ3Jh
ZGllbnQKYmFja2dyb3VuZC4KKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvc3Zn
LXBhcnRpY2xlcy5qczogQWRkZWQuIE1hbmFnZXMgdGhlIFNWRyBlbGVtZW50LgoqIEFuaW1vbWV0
ZXIvdGVzdHMvbWFzdGVyL3N2Zy1zdGFnZS5odG1sOiBBZGRlZC4KLS0tCiAuLi4vQW5pbW9tZXRl
ci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyAgICAgICAgICAgICB8ICAxOSArLQogLi4uL0FuaW1v
bWV0ZXIvcmVzb3VyY2VzL3J1bm5lci90ZXN0cy5qcyAgICAgICAgICAgfCAgIDQgKwogLi4uL0Fu
aW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9wYXJ0aWNsZXMuanMgfCAxMjkgKysrKysr
KwogLi4uL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvc3ZnLXBhcnRpY2xlcy5qcyAgICAgICAgfCAg
NzYgKysrKysKIC4uLi9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9zdmctc3RhZ2UuaHRtbCAgICAg
ICAgIHwgIDIzICsrCiBQZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICB8IDM4MCArKysrKysrKysrKy0tLS0tLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgNDU0
IGluc2VydGlvbnMoKyksIDE3NyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBQZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9wYXJ0aWNsZXMu
anMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMv
bWFzdGVyL3Jlc291cmNlcy9zdmctcGFydGljbGVzLmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9zdmctc3RhZ2UuaHRtbAoKZGlm
ZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9u
cy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5q
cwppbmRleCA3MDgyOTcxLi43YTI0NTQ1IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzCkBAIC05MiwyNCArOTIsNDEgQEAgUG9p
bnQucHJvdG90eXBlID0KIAogICAgIGFkZDogZnVuY3Rpb24ob3RoZXIpCiAgICAgeworICAgICAg
ICBpZihpc05hTihvdGhlci54KSkKKyAgICAgICAgICAgIHJldHVybiBuZXcgUG9pbnQodGhpcy54
ICsgb3RoZXIsIHRoaXMueSArIG90aGVyKTsKICAgICAgICAgcmV0dXJuIG5ldyBQb2ludCh0aGlz
LnggKyBvdGhlci54LCB0aGlzLnkgKyBvdGhlci55KTsKICAgICB9LAogCiAgICAgc3VidHJhY3Q6
IGZ1bmN0aW9uKG90aGVyKQogICAgIHsKKyAgICAgICAgaWYoaXNOYU4ob3RoZXIueCkpCisgICAg
ICAgICAgICByZXR1cm4gbmV3IFBvaW50KHRoaXMueCAtIG90aGVyLCB0aGlzLnkgLSBvdGhlcik7
CiAgICAgICAgIHJldHVybiBuZXcgUG9pbnQodGhpcy54IC0gb3RoZXIueCwgdGhpcy55IC0gb3Ro
ZXIueSk7CiAgICAgfSwKIAogICAgIG11bHRpcGx5OiBmdW5jdGlvbihvdGhlcikKICAgICB7Cisg
ICAgICAgIGlmKGlzTmFOKG90aGVyLngpKQorICAgICAgICAgICAgcmV0dXJuIG5ldyBQb2ludCh0
aGlzLnggKiBvdGhlciwgdGhpcy55ICogb3RoZXIpOwogICAgICAgICByZXR1cm4gbmV3IFBvaW50
KHRoaXMueCAqIG90aGVyLngsIHRoaXMueSAqIG90aGVyLnkpOwogICAgIH0sCiAKICAgICBtb3Zl
OiBmdW5jdGlvbihhbmdsZSwgdmVsb2NpdHksIHRpbWVEZWx0YSkKICAgICB7CiAgICAgICAgIHJl
dHVybiB0aGlzLmFkZChQb2ludC5wb2ludE9uQ2lyY2xlKGFuZ2xlLCB2ZWxvY2l0eSAqICh0aW1l
RGVsdGEgLyAxMDAwKSkpOworICAgIH0sCisKKyAgICBsZW5ndGg6IGZ1bmN0aW9uKCkgeworICAg
ICAgICByZXR1cm4gTWF0aC5zcXJ0KCB0aGlzLnggKiB0aGlzLnggKyB0aGlzLnkgKiB0aGlzLnkg
KTsKKyAgICB9LAorCisgICAgbm9ybWFsaXplOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGwg
PSBNYXRoLnNxcnQoIHRoaXMueCAqIHRoaXMueCArIHRoaXMueSAqIHRoaXMueSApOworICAgICAg
ICB0aGlzLnggLz0gbDsKKyAgICAgICAgdGhpcy55IC89IGw7CisgICAgICAgIHJldHVybiB0aGlz
OwogICAgIH0KLX0KK307CiAKIGZ1bmN0aW9uIEluc2V0cyh0b3AsIHJpZ2h0LCBib3R0b20sIGxl
ZnQpCiB7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2Vz
L3J1bm5lci90ZXN0cy5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMv
cnVubmVyL3Rlc3RzLmpzCmluZGV4IGZmMDhmYWEuLmU0ZmY4ZDUgMTAwNjQ0Ci0tLSBhL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzCisrKyBiL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzCkBAIC0y
NCw2ICsyNCwxMCBAQCBTdWl0ZXMucHVzaChuZXcgU3VpdGUoIkFuaW1vbWV0ZXIiLAogICAgICAg
ICAgICAgdXJsOiAibWFzdGVyL2NhbnZhcy1zdGFnZS5odG1sP3BhdGhUeXBlPWxpbmUmbGluZUNh
cD1zcXVhcmUiLAogICAgICAgICAgICAgbmFtZTogIkNhbnZhcyBsaW5lIHNlZ21lbnRzIgogICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICB1cmw6ICJtYXN0ZXIvc3ZnLXN0YWdlLmh0
bWw/c2hhcGU9c3RhciIsCisgICAgICAgICAgICBuYW1lOiAiU1ZHIGNsaXBwZWQgcmVjdHMiCisg
ICAgICAgIH0sCiAgICAgXQogKSk7CiAKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5p
bW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL3BhcnRpY2xlcy5qcyBiL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL3BhcnRpY2xlcy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjllMzBhCi0tLSAvZGV2L251bGwKKysr
IGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvcGFy
dGljbGVzLmpzCkBAIC0wLDAgKzEsMTI5IEBACitmdW5jdGlvbiBQYXJ0aWNsZShzdGFnZSkKK3sK
KyAgICB0aGlzLnN0YWdlID0gc3RhZ2U7CisgICAgdGhpcy5maWxsID0gc3RhZ2UuZmlsbDsKKyAg
ICB0aGlzLl9zdGFnZVNpemUgPSBzdGFnZS5zaXplOworICAgIGlmIChzdGFnZS5zaGFwZSAhPSAi
Y2lyY2xlIikKKyAgICAgICAgdGhpcy5yb3RhdGVyID0gdGhpcy5zdGFnZS5yYW5kb21Sb3RhdGVy
KCk7CisgICAgdGhpcy5yZXNldCgpOworfQorCitQYXJ0aWNsZS5wcm90b3R5cGUgPQoreworICAg
IHJlc2V0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHJhbmRTaXplID0gTWF0aC5wb3coTWF0
aC5yYW5kb20oKSwgNCkgKiAyNSArIDE1OworICAgICAgICB0aGlzLnNpemUgPSBuZXcgUG9pbnQo
cmFuZFNpemUsIHJhbmRTaXplKTsKKyAgICAgICAgdGhpcy5tYXhQb3NpdGlvbiA9IHRoaXMuX3N0
YWdlU2l6ZS5zdWJ0cmFjdCh0aGlzLnNpemUpOworICAgICAgICB0aGlzLnBvc2l0aW9uID0gbmV3
IFBvaW50KHRoaXMuX3N0YWdlU2l6ZS54IC8gMiwgdGhpcy5fc3RhZ2VTaXplLnkgLyA0KTsKKwor
ICAgICAgICB2YXIgYW5nbGUgPSB0aGlzLnN0YWdlLnJhbmRvbUludCgwLCB0aGlzLnN0YWdlLmVt
aXRTdGVwcykgLyB0aGlzLnN0YWdlLmVtaXRTdGVwcyAqIE1hdGguUEkgKiAyICsgRGF0ZS5ub3co
KS8xMDAwKnRoaXMuc3RhZ2UuZW1pc3Npb25TcGluOworICAgICAgICB0aGlzLl92ZWxvY2l0eSA9
IG5ldyBQb2ludChNYXRoLnNpbihhbmdsZSksIE1hdGguY29zKGFuZ2xlKSkKKyAgICAgICAgICAg
IC5tdWx0aXBseSh0aGlzLnN0YWdlLnJhbmRvbSguOCwgMS4yKSk7CisgICAgfSwKKworICAgIGFu
aW1hdGU6IGZ1bmN0aW9uKHRpbWVEZWx0YSkKKyAgICB7CisgICAgICAgIHRoaXMucm90YXRlci5u
ZXh0KHRpbWVEZWx0YSk7CisKKyAgICAgICAgdGhpcy5wb3NpdGlvbiA9IHRoaXMucG9zaXRpb24u
YWRkKHRoaXMuX3ZlbG9jaXR5Lm11bHRpcGx5KHRpbWVEZWx0YSkpOworICAgICAgICB0aGlzLl92
ZWxvY2l0eS55ICs9IDAuMDM7CisKKyAgICAgICAgLy8gSWYgcGFydGljbGUgaXMgZ29pbmcgdG8g
bW92ZSBvZmYgcmlnaHQgc2lkZQorICAgICAgICB2YXIgbWF4WCA9IHRoaXMuX3N0YWdlU2l6ZS54
IC0gdGhpcy5zaXplLng7CisgICAgICAgIGlmICh0aGlzLnBvc2l0aW9uLnggPiB0aGlzLm1heFBv
c2l0aW9uLngpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLl92ZWxvY2l0eS54ID4gMCkKKyAgICAg
ICAgICAgICAgICB0aGlzLl92ZWxvY2l0eS54ICo9IC0xOworICAgICAgICAgICAgdGhpcy5wb3Np
dGlvbi54ID0gdGhpcy5tYXhQb3NpdGlvbi54OworICAgICAgICB9IGVsc2UgaWYgKHRoaXMucG9z
aXRpb24ueCA8IDApIHsKKyAgICAgICAgICAgIC8vIElmIHBhcnRpY2xlIGlzIGdvaW5nIHRvIG1v
dmUgb2ZmIGxlZnQgc2lkZQorICAgICAgICAgICAgaWYgKHRoaXMuX3ZlbG9jaXR5LnggPCAwKQor
ICAgICAgICAgICAgICAgIHRoaXMuX3ZlbG9jaXR5LnggKj0gLTE7CisgICAgICAgICAgICB0aGlz
LnBvc2l0aW9uLnggPSAwOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgcGFydGljbGUgaXMg
Z29pbmcgdG8gbW92ZSBvZmYgYm90dG9tIHNpZGUKKyAgICAgICAgaWYgKHRoaXMucG9zaXRpb24u
eSA+IHRoaXMubWF4UG9zaXRpb24ueSkgeworICAgICAgICAgICAgLy8gQWRqdXN0IGRpcmVjdGlv
biBidXQgbWFpbnRhaW4gbWFnbml0dWRlCisgICAgICAgICAgICB2YXIgbWFnbml0dWRlID0gdGhp
cy5fdmVsb2NpdHkubGVuZ3RoKCk7CisgICAgICAgICAgICB0aGlzLl92ZWxvY2l0eS54ICo9IDEu
NSArIC4wMDUgKiB0aGlzLnNpemUueDsKKyAgICAgICAgICAgIHRoaXMuX3ZlbG9jaXR5ID0gdGhp
cy5fdmVsb2NpdHkubm9ybWFsaXplKCkubXVsdGlwbHkobWFnbml0dWRlKTsKKyAgICAgICAgICAg
IGlmIChNYXRoLmFicyh0aGlzLl92ZWxvY2l0eS55KSA8IDAuNykKKyAgICAgICAgICAgICAgICB0
aGlzLnJlc2V0KCk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAodGhp
cy5fdmVsb2NpdHkueSA+IDApCisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZlbG9jaXR5Lnkg
Kj0gLTAuOTk5OworICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24ueSA9IHRoaXMubWF4UG9z
aXRpb24ueTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmICh0aGlzLnBvc2l0aW9u
LnkgPCAwKSB7CisgICAgICAgICAgICAvLyBJZiBwYXJ0aWNsZSBpcyBnb2luZyB0byBtb3ZlIG9m
ZiB0b3Agc2lkZQorICAgICAgICAgICAgdmFyIG1hZ25pdHVkZSA9IHRoaXMuX3ZlbG9jaXR5Lmxl
bmd0aCgpOworICAgICAgICAgICAgdGhpcy5fdmVsb2NpdHkueCAqPSAxLjUgKyAuMDA1ICogdGhp
cy5zaXplLng7CisgICAgICAgICAgICB0aGlzLl92ZWxvY2l0eSA9IHRoaXMuX3ZlbG9jaXR5Lm5v
cm1hbGl6ZSgpLm11bHRpcGx5KG1hZ25pdHVkZSk7CisgICAgICAgICAgICBpZiAodGhpcy5fdmVs
b2NpdHkueSA8IDApCisgICAgICAgICAgICAgICAgdGhpcy5fdmVsb2NpdHkueSAqPSAtMC45OTg7
CisgICAgICAgICAgICB0aGlzLnBvc2l0aW9uLnkgPSAwOworICAgICAgICB9CisgICAgfQorfQor
CitQYXJ0aWNsZXNTdGFnZSA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhTdGFnZSwKKyAgICBm
dW5jdGlvbigpCisgICAgeworICAgICAgICBTdGFnZS5jYWxsKHRoaXMpOworICAgICAgICB0aGlz
LnBhcnRpY2xlcyA9IFtdOworICAgIH0sIHsKKworICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGJl
bmNobWFyaykKKyAgICB7CisgICAgICAgIFN0YWdlLnByb3RvdHlwZS5pbml0aWFsaXplLmNhbGwo
dGhpcywgYmVuY2htYXJrKTsKKyAgICAgICAgdGhpcy5lbWlzc2lvblNwaW4gPSB0aGlzLnJhbmRv
bSgwLCAzKTsKKyAgICAgICAgdGhpcy5lbWl0U3RlcHMgPSB0aGlzLnJhbmRvbUludCg0LCA2KTsK
KyAgICAgICAgdGhpcy5zaGFwZSA9IGJlbmNobWFyay5vcHRpb25zWyJzaGFwZSJdIHx8ICJzdGFy
IjsKKyAgICB9LAorCisgICAgYW5pbWF0ZTogZnVuY3Rpb24odGltZURlbHRhKQorICAgIHsKKyAg
ICAgICAgdmFyIG9mZnNldCA9IChEYXRlLm5vdygpIC8gMjAwMCkgJSAxOworICAgICAgICB0aGlz
LmVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZCA9IFsKKyAgICAgICAgICAgICJsaW5lYXItZ3JhZGll
bnQoIiwKKyAgICAgICAgICAgIG9mZnNldCAqIDM2MCwKKyAgICAgICAgICAgICJkZWcsIGhzbCgi
LAorICAgICAgICAgICAgb2Zmc2V0ICogMzYwLAorICAgICAgICAgICAgIiwgNTAlLCA4MCUpLCBo
c2woIiwKKyAgICAgICAgICAgIChvZmZzZXQgKyAuMSkgKiAzNjAsCisgICAgICAgICAgICAiLCA1
MCUsIDgwJSkpIgorICAgICAgICBdLmpvaW4oIiIpOworCisgICAgICAgIHRpbWVEZWx0YSAvPSA0
OworICAgICAgICB0aGlzLnBhcnRpY2xlcy5mb3JFYWNoKGZ1bmN0aW9uKHBhcnRpY2xlKSB7Cisg
ICAgICAgICAgICBwYXJ0aWNsZS5hbmltYXRlKHRpbWVEZWx0YSk7CisgICAgICAgIH0pOworICAg
IH0sCisKKyAgICB0dW5lOiBmdW5jdGlvbihjb3VudCkKKyAgICB7CisgICAgICAgIGlmIChjb3Vu
dCA9PSAwKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFydGljbGVzLmxlbmd0aDsKKworICAg
ICAgICBpZiAoY291bnQgPiAwKSB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNv
dW50OyArK2kpCisgICAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNsZXMucHVzaCh0aGlzLmNyZWF0
ZVBhcnRpY2xlKCkpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFydGljbGVzLmxlbmd0aDsK
KyAgICAgICAgfQorCisgICAgICAgIGNvdW50ID0gTWF0aC5taW4oLWNvdW50LCB0aGlzLnBhcnRp
Y2xlcy5sZW5ndGgpOworCisgICAgICAgIGlmICh0eXBlb2YodGhpcy53aWxsUmVtb3ZlUGFydGlj
bGUpID09ICJmdW5jdGlvbiIpIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY291
bnQ7ICsraSkKKyAgICAgICAgICAgICAgICB0aGlzLndpbGxSZW1vdmVQYXJ0aWNsZSh0aGlzLnBh
cnRpY2xlc1tpXSk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnBhcnRpY2xlcy5zcGxpY2Uo
MCwgY291bnQpOworICAgICAgICByZXR1cm4gdGhpcy5wYXJ0aWNsZXMubGVuZ3RoOworICAgIH0s
CisKKyAgICBjb21wbGV4aXR5OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5wYXJ0aWNsZXMubGVuZ3RoOworICAgIH0KK30pOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvc3ZnLXBhcnRpY2xlcy5qcyBi
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL3N2Zy1w
YXJ0aWNsZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZmZjM3NAot
LS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0
ZXIvcmVzb3VyY2VzL3N2Zy1wYXJ0aWNsZXMuanMKQEAgLTAsMCArMSw3NiBAQAorKGZ1bmN0aW9u
KCkgeworCitTVkdQYXJ0aWNsZSA9IFV0aWxpdGllcy5jcmVhdGVTdWJjbGFzcyhQYXJ0aWNsZSwK
KyAgICBmdW5jdGlvbihzdGFnZSkKKyAgICB7CisgICAgICAgIFBhcnRpY2xlLmNhbGwodGhpcywg
c3RhZ2UpOworCisgICAgICAgIHN3aXRjaCAodGhpcy5zdGFnZS5zaGFwZSkgeworICAgICAgICBj
YXNlICJzdGFyIjoKKyAgICAgICAgICAgIHZhciBhdHRycyA9IHsKKyAgICAgICAgICAgICAgICB4
OiAwLAorICAgICAgICAgICAgICAgIHk6IDAsCisgICAgICAgICAgICAgICAgImNsaXAtcGF0aCI6
ICJ1cmwoI3N0YXItY2xpcCkiCisgICAgICAgICAgICB9OworICAgICAgICAgICAgdGhpcy5lbGVt
ZW50ID0gRG9jdW1lbnRFeHRlbnNpb24uY3JlYXRlU3ZnRWxlbWVudCgicmVjdCIsIGF0dHJzLCB7
fSwgc3RhZ2UuZWxlbWVudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAg
ICAgIHRoaXMuX2FwcGx5QXR0cmlidXRlcyhzdGFnZSk7CisgICAgICAgIHRoaXMuX21vdmUoKTsK
KyAgICB9LCB7CisKKyAgICByZXNldDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgUGFydGlj
bGUucHJvdG90eXBlLnJlc2V0LmNhbGwodGhpcyk7CisgICAgICAgIGlmICh0aGlzLmVsZW1lbnQp
CisgICAgICAgICAgICB0aGlzLl9hcHBseUF0dHJpYnV0ZXModGhpcy5zdGFnZSk7CisgICAgfSwK
KworICAgIF9hcHBseUF0dHJpYnV0ZXM6IGZ1bmN0aW9uKHN0YWdlKQorICAgIHsKKyAgICAgICAg
c3dpdGNoICh0aGlzLnN0YWdlLnNoYXBlKSB7CisgICAgICAgIGNhc2UgInN0YXIiOgorICAgICAg
ICAgICAgdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgid2lkdGgiLCB0aGlzLnNpemUueCk7Cisg
ICAgICAgICAgICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCJoZWlnaHQiLCB0aGlzLnNpemUu
eSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuZWxlbWVu
dC5zZXRBdHRyaWJ1dGUoImZpbGwiLCAiaHNsKCIrKCgoRGF0ZS5ub3coKS8yMDAwKSUxKSozNjAp
KyIsIDcwJSwgNDUlKSIpOworICAgIH0sCisKKyAgICBfbW92ZTogZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwKKyAgICAgICAg
ICAgICJ0cmFuc2xhdGUoIiArIHRoaXMucG9zaXRpb24ueCArICIsICIgKyB0aGlzLnBvc2l0aW9u
LnkgKyAiKSIgKyB0aGlzLnJvdGF0ZXIucm90YXRlKHRoaXMuc2l6ZS5jZW50ZXIpKTsKKyAgICB9
LAorCisgICAgYW5pbWF0ZTogZnVuY3Rpb24odGltZURlbHRhKQorICAgIHsKKyAgICAgICAgUGFy
dGljbGUucHJvdG90eXBlLmFuaW1hdGUuY2FsbCh0aGlzLCB0aW1lRGVsdGEpOworICAgICAgICB0
aGlzLl9tb3ZlKCk7CisgICAgfQorfSk7CisKK1V0aWxpdGllcy5leHRlbmRPYmplY3QoUGFydGlj
bGVzU3RhZ2UucHJvdG90eXBlLCB7CisgICAgY3JlYXRlUGFydGljbGU6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBuZXcgU1ZHUGFydGljbGUodGhpcyk7CisgICAgfSwKKworICAg
IHdpbGxSZW1vdmVQYXJ0aWNsZTogZnVuY3Rpb24ocGFydGljbGUpCisgICAgeworICAgICAgICBw
YXJ0aWNsZS5lbGVtZW50LnJlbW92ZSgpOworICAgIH0KK30pOworCitTVkdQYXJ0aWNsZXNCZW5j
aG1hcmsgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQmVuY2htYXJrLAorICAgIGZ1bmN0aW9u
KG9wdGlvbnMpCisgICAgeworICAgICAgICBCZW5jaG1hcmsuY2FsbCh0aGlzLCBuZXcgU1ZHUGFy
dGljbGVzU3RhZ2UoKSwgb3B0aW9ucyk7CisgICAgfQorKTsKKword2luZG93LmJlbmNobWFya0Ns
YXNzID0gU1ZHUGFydGljbGVzQmVuY2htYXJrOworCit9KSgpOwpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9zdmctc3RhZ2UuaHRtbCBiL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvc3ZnLXN0YWdlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUwZTY3NgotLS0gL2Rldi9udWxsCisrKyBi
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvc3ZnLXN0YWdlLmh0bWwK
QEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InJlc291cmNlcy9zdGFn
ZS5jc3MiPgorPC9oZWFkPgorPGJvZHk+CisgICAgPHN2ZyBpZD0ic3RhZ2UiPgorICAgICAgICA8
ZGVmcz4KKyAgICAgICAgICAgIDxjbGlwUGF0aCBpZD0ic3Rhci1jbGlwIiBjbGlwUGF0aFVuaXRz
PSJvYmplY3RCb3VuZGluZ0JveCI+CisgICAgICAgICAgICAgICAgPHBhdGggZD0iTS41MCwwTC4z
OCwuMzhMMCwuMzhMLjMwLC42MEwuMTgsMUwuNTAsLjc1TC44MiwxTC43MCwuNjBMMSwuMzhMLjYy
LC4zOHoiIC8+CisgICAgICAgICAgICA8L2NsaXBQYXRoPgorICAgICAgICA8L2RlZnM+CisgICAg
PC9zdmc+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdHJpbmdzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWxnb3JpdGhtLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3BhcnRpY2xlcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zdmctcGFydGljbGVzLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMmE0MDYzNi4uNDJmZmQxMiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNi0wMS0wNCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXBkYXRlIGJlbmNobWFyayB0ZXN0IHN1aXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgdGVzdC4gVGhlIHRlc3QgaGFzIGEg
cm90YXRpbmcgYmFja2dyb3VuZAorICAgICAgICBncmFkaWVudCwgYW5kIGRvZXMgYSBiZXR0ZXIg
am9iIHBoeXNpY2FsbHkgc2ltdWxhdGluZworICAgICAgICBwYXJ0aWNsZXMuCisKKyAgICAgICAg
KiBBbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzOiBUZXN0IFBvaW50IHRvCisgICAg
ICAgIHRha2UgY29uc3RhbnRzIGFzIHdlbGwgYXMgb3RoZXIgUG9pbnRzLgorICAgICAgICAoUG9p
bnQucHJvdG90eXBlLmxlbmd0aCk6IEFkZGVkLgorICAgICAgICAoUG9pbnQucHJvdG90eXBlLm5v
cm1hbGl6ZSk6IEFkZGVkLgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1bm5lci90
ZXN0cy5qczogQWRkIHRoZSB0ZXN0CisgICAgICAgIHRvIHRoZSBtYXN0ZXIgc3VpdGUuCisgICAg
ICAgICogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL3BhcnRpY2xlcy5qczogQWRk
ZWQuIFBhcmVudCBjbGFzcyBmb3IgZGlmZmVyZW50IGtpbmRzIG9mIHBhcnRpY2xlcy4KKyAgICAg
ICAgKFBhcnRpY2xlKToKKyAgICAgICAgKFBhcnRpY2xlLnByb3RvdHlwZS5yZXNldCk6IElmIHRo
ZSBwYXJ0aWNsZSBzdGFydHMKKyAgICAgICAgc2xvd2luZyBkb3duIGluIHRlcm1zIG9mIGl0cyBh
bmltYXRpb24sIHJlc2V0IGl0LgorICAgICAgICAoUGFydGljbGUucHJvdG90eXBlLmFuaW1hdGUp
OiBCb3VuY2Ugb2ZmIHRoZSB3YWxscworICAgICAgICBlbGFzdGljYWxseSwgYW5kIGluY2x1ZGUg
Z3Jhdml0eS4KKyAgICAgICAgKFBhcnRpY2xlc1N0YWdlKTogU3RhZ2UgaW5jbHVkZXMgYSByb3Rh
dGluZyBncmFkaWVudAorICAgICAgICBiYWNrZ3JvdW5kLgorICAgICAgICAqIEFuaW1vbWV0ZXIv
dGVzdHMvbWFzdGVyL3Jlc291cmNlcy9zdmctcGFydGljbGVzLmpzOiBBZGRlZC4gTWFuYWdlcyB0
aGUgU1ZHIGVsZW1lbnQuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvc3ZnLXN0
YWdlLmh0bWw6IEFkZGVkLgorCiAyMDE2LTAxLTAzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNv
bT4KIAogICAgICAgICBVcGRhdGUgYmVuY2htYXJrIHRlc3Qgc3VpdGUKQEAgLTQ2Niw3ICs0OTQs
NyBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUy
NTQ0CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWmFsYW4gQnVqdGFzLgotICAgICAgICAKKwogICAg
ICAgICBBZGQgYSB0ZXN0IHRoYXQgZHJhd3MgbG90cyBvZiBpbnRlcm5hdGlvbmFsIHRleHQuIFRo
aXMgaXMgYSBwYXJ0aWNsZSB0ZXN0LAogICAgICAgICBtb3ZpbmcgdGhlIGJveGVzIGFyb3VuZCB3
aXRoIGFic29sdXRpb24gcG9zaXRpb25pbmcuCiAKQEAgLTg1MCwxMSArODc4LDExIEBACiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE3MjQKIAogICAg
ICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCi0gICAgICAgIAorCiAgICAgICAgIEFkZCBh
ICJib3VuY2luZyBwYXJ0aWNsZXMiIHRlc3QgdGhhdCBtb3ZlcyBjb21wb3NpdGVkIGxheWVycyBh
cm91bmQsIG9wdGlvbmFsbHkgd2l0aCBhIGZpbHRlci4KLSAgICAgICAgCisKICAgICAgICAgVGhp
cyBpcyBhZGRlZCB1bmRlciBhIG5ldyAiTWlzY2VsbGFuZW91cyIgY2F0ZWdvcnkuCi0gICAgICAg
IAorCiAgICAgICAgIFJlbW92ZSB0aGUgdGVzdCB0ZW1wbGF0ZXMgY2F0ZWdvcnkgZnJvbSB0aGUg
VUkuCiAKICAgICAgICAgKiBBbmltb21ldGVyL3J1bm5lci9yZXNvdXJjZXMvdGVzdHMuanM6CkBA
IC04OTcsNyArOTI1LDcgQEAKICAgICAgICAgY2xpcGJvYXJkLgogCiAgICAgICAgICogQW5pbW9t
ZXRlci9ydW5uZXIvYW5pbW9tZXRlci5odG1sOiBBZGQgYSBuZXcgYnV0dG9uIHRvIHNlbGVjdCB0
aGUgcmVzdWx0cyB0YWJsZSBvciBKU09OLgotICAgICAgICAKKwogICAgICAgICAqIEFuaW1vbWV0
ZXIvcnVubmVyL3Jlc291cmNlcy9hbmltb21ldGVyLmpzOgogICAgICAgICAod2luZG93LnNlY3Rp
b25zTWFuYWdlci5fc2VjdGlvbkRhdGFFbGVtZW50KTogU2VsZWN0cyB0aGUgY29udGFpbmVyIDxk
YXRhPiBlbGVtZW50LgogICAgICAgICAod2luZG93LnNlY3Rpb25zTWFuYWdlci5fc2VjdGlvbkRh
dGFEaXZFbGVtZW50KTogUmVwbGFjZSBhIGxpdGVyYWwgc3RyaW5nIHdpdGggYSBzdHJpbmcgdGFi
bGUgZW50cnkuCkBAIC05MTUsOSArOTQzLDkgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTUyNgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KLSAgICAgICAgCisKICAgICAgICAgSGF2aW5nIHRoZSBncmFwaHMgZG8gaW50ZXJw
b2xhdGlvbiBpcyBtaXNsZWFkaW5nLCBiZWNhdXNlIHlvdSBjYW4ndCBzZWUgdGhlIGFjdHVhbCBk
YXRhLgotICAgICAgICAKKwogICAgICAgICBBbHNvIHJlbW92ZSAic2hhcGUtcmVuZGVyaW5nOiBj
cmlzcEVkZ2VzOyIgc28gdGhlIGxpbmVzIGdldCBhbnRpYWxpYXNlZC4KIAogICAgICAgICAqIEFu
aW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy9hbmltb21ldGVyLmNzczoKQEAgLTk0MywxNyArOTcx
LDE3IEBACiAgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qczoKICAg
ICAgICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuX2lzTm9pc3lNZWFzdXJlbWVudCk6IEZpeCBh
IHBhcmFtZXRlciBuYW1lLgogICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlwZS5faXNOb2lz
eVRlc3QpOiBTaW5jZSBzY29yZSBpcyBhIG1lbWJlciBvZiB0ZXN0UmVzdWx0cywgd2UgbmVlZCB0
byBsaW1pdCBvdXIgc2VhcmNoIHRvIGZyYW1lIHJhdGUgYW5kIGNvbXBsZXhpdHkuCi0gICAgICAg
IChSZXN1bHRzVGFibGUucHJvdG90eXBlLl9zaG93VGVzdCk6IFBhc3MgdGhlIGNvcnJlY3QgcGFy
YW1ldGVyIHRvIF9pc05vaXN5TWVhc3VyZW1lbnQoKS4gCi0gICAgICAgIAorICAgICAgICAoUmVz
dWx0c1RhYmxlLnByb3RvdHlwZS5fc2hvd1Rlc3QpOiBQYXNzIHRoZSBjb3JyZWN0IHBhcmFtZXRl
ciB0byBfaXNOb2lzeU1lYXN1cmVtZW50KCkuCisKICAgICAgICAgKiBBbmltb21ldGVyL3Jlc291
cmNlcy9zdHJpbmdzLmpzOiBGaXggdGhlIGluZGVudGF0aW9uIGFuZCBuYW1lIGFuZCB2YWx1ZSBv
ZiBhIHN0cmluZy4KIAogICAgICAgICAqIEFuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy90ZXN0
cy5qczogUmVtb3ZlIGFsbCB0aGUgbWFudWFsIGdhaW5zIGFuZCBsaW1pdHMgcGFyYW1ldGVycyB3
aGljaCBoYWQgdG8gYmUgcGFzc2VkIHRvIGV2ZXJ5IHRlc3QuCi0gICAgICAgIAorCiAgICAgICAg
ICogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczoKICAgICAgICAgKEJlbmNobWFy
a1N0YXRlLnByb3RvdHlwZS5jdXJyZW50U3RhZ2UpOiBGaXggYW4gZW51bSBuYW1lLgogICAgICAg
ICAoQmVuY2htYXJrKTogR2V0IHJpZCBvZiBtYW51YWwgZ2FpbiBhbmQgbGltaXRzLgogICAgICAg
ICAoQmVuY2htYXJrLnByb3RvdHlwZS51cGRhdGUpOiBTaW1wbGlmeSB0aGUgY2FsY3VsYXRpb24g
YnkgaGF2aW5nIGFsbCB0aGUgdGltZXMgaW4gbXMuCi0gICAgICAgIAorCiAgICAgICAgICogQW5p
bW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWF0aC5qczoKICAgICAgICAgKFBJRENvbnRyb2xsZXIp
OiBHZXQgcmlkIG9mIHRoZSBtYW51YWwgZ2FpbiBhbmQgbGltaXRzIGFuZCB0aGUgbWFnaWMgbnVt
YmVycyBmb3IgVGkgYW5kIFRkLgogICAgICAgICAoUElEQ29udHJvbGxlci5wcm90b3R5cGUuX3lQ
b3NpdGlvbik6IFRlbGxzIHdoZXRoZXIgdGhlIHRlc3QgY3VycmVudCBvdXRwdXQgaXMgbW92aW5n
IHRvd2FyZHMgdGhlIHNldC1wb2ludCBvciBhd2F5IGZyb20gaXQuCkBAIC05NjYsNyArOTk0LDcg
QEAKICAgICAgICAgKFBJRENvbnRyb2xsZXIucHJvdG90eXBlLl90dW5lKToKICAgICAgICAgKFBJ
RENvbnRyb2xsZXIucHJvdG90eXBlLl9zYXR1cmF0ZSk6CiAgICAgICAgIChQSURDb250cm9sbGVy
LnByb3RvdHlwZS50dW5lKTogTWFuYWdlcyBjYWxjdWxhdGluZyB0aGUgY29udHJvbGxlciBwYXJh
bWV0ZXJzLiBJdCB0aGVuIHJldHVybnMgYSBQSUQgdHVuaW5nIHZhbHVlLgotICAgICAgICAoUElE
Q29udHJvbGxlci5wcm90b3R5cGUuX3NhdCk6IERlbGV0ZWQuIFdlIG1heSBuZWVkIHRvIHJldHVy
biBpdCBiYWNrIGJ1dCB0aGUgbGltaXRzIGhhdmUgdG8gYmUgY2FsY3VsYXRlZCBhZGFwdGl2ZWx5
IG5vdCBtYW51YWxseS4gCisgICAgICAgIChQSURDb250cm9sbGVyLnByb3RvdHlwZS5fc2F0KTog
RGVsZXRlZC4gV2UgbWF5IG5lZWQgdG8gcmV0dXJuIGl0IGJhY2sgYnV0IHRoZSBsaW1pdHMgaGF2
ZSB0byBiZSBjYWxjdWxhdGVkIGFkYXB0aXZlbHkgbm90IG1hbnVhbGx5LgogCiAyMDE1LTExLTE3
ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKQEAgLTk3NCw3
ICsxMDAyLDcgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1MTMzNAogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KLSAgICAgICAg
CisKICAgICAgICAgTWFrZSB0aGUgZ3JhcGhpY3MgYmVuY2htYXJrIHN0cmluZyB0YWJsZSBiZSBh
biBvYmplY3Qgb2Ygc3ViLW9iamVjdHMuIEVhY2gKICAgICAgICAgc3ViLW9iamVjdCByZXByZXNl
bnRzIGFuIGFzc29jaWF0aXZlIGFycmF5LCB0aGUga2V5IGlzIHRoZSBzdHJpbmcgbmFtZSBhbmQK
ICAgICAgICAgdGhlIHZhbHVlIGlzIHRoZSBzdHJpbmcgZGF0YS4KQEAgLTEwMDcsNyArMTAzNSw3
IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTEz
NjEKIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCi0gICAgICAgIAorCiAgICAg
ICAgIFVzZSBmaXhlZCBzaXplIGZvciBzdGFnZSBpZnJhbWUgb2YgdGhlIGdyYXBoaWNzIGJlbmNo
bWFyayB0byBkaXNhYmxlCiAgICAgICAgIGZsYXR0ZW5pbmcgdGhlIGlmcmFtZSB3aGlsZSBhbmlt
YXRpbmcgdGhlIHBhcnRpY2xlcy4gQWxzbyBlbnN1cmUgdGhlCiAgICAgICAgIGJvdW5jaW5nIHBh
cnRpY2xlcyBkbyBub3QgZ28gb3V0c2lkZSB0aGUgaWZyYW1lJ3MgYm91bmRhcmllcy4KQEAgLTEw
NTIsNyArMTA4MCw3IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTEyODMKIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLSAgICAg
ICAgCisKICAgICAgICAgR2V0IHJpZCBvZiB0aGUgb3B0aW9uIHRvIHJ1biBhbmltYXRpb24gdXNp
bmcgc2V0SW50ZXJ2YWwoKS4KIAogICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2Vz
L21haW4uanM6CkBAIC0xMDY3LDEwICsxMDk1LDEwIEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTEyODYKIAogICAgICAgICBSZXZpZXdlZCBieSBT
aW1vbiBGcmFzZXIuCi0gICAgICAgIAorCiAgICAgICAgIFdoZW4gc2hvd2luZyB0aGUgcmVzdWx0
cyBvZiBhIHRlc3QgaW4gdGhlIGdyYXBoaWNzIGJlbmNobWFyayB0aGUgZm9sbG93aW5nCiAgICAg
ICAgIGNyaXRlcmlhIGlzIGdvaW5nIHRvIGJlIGFwcGxpZWQ6Ci0gICAgICAgIAorCiAgICAgICAg
IDEuIElmIHRoZSBzdGFuZGFyZCBkZXZpYXRpb24gb2YgdGhlIHRlc3QgY29tcGxleGl0eSBvciB0
aGUgZnJhbWUgcmF0ZSBpcwogICAgICAgICAgICBlcXVhbCB0byBvciBtb3JlIHRoYW4gMTAlLCB0
aGUgc3RhbmRhcmQgZGV2aWF0aW9uIGFuZCB0aGUgdGVzdCBuYW1lCiAgICAgICAgICAgIHdpbGwg
YmUgZGlzcGxheWVkIGluIHJlZC4KQEAgLTExNTgsNyArMTE4Niw3IEBACiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTEyODkKIAogICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCi0gICAgICAgIAorCiAgICAgICAgIENhY2hlIHRoZSBzdGFn
ZSBzaXplIHdoZW4gaXQgaXMgY3JlYXRlZCBpbnN0ZWFkIG9mIHJlcXVlc3RpbmcgZXZlcnkgdGlt
ZQogICAgICAgICBhbiBvYmplY3QgaXMgYWRkZWQgdmlhIGNsaWVudFdpZHRoIGFuZCBjbGllbnRI
ZWlnaHQuCiAKQEAgLTExODIsMTQgKzEyMTAsMTQgQEAKICAgICAgICAgQWRkICJkZWZlciIgYmFj
ayB3aGVuIGxvYWRpbmcgcmVzb3VyY2VzL2FuaW1vbWV0ZXIuanMgc2luY2UgdGhpcyBzY3JpcHQK
ICAgICAgICAgZGVwZW5kcyBvbiBtYW55IG90aGVyIHNjcmlwdHMgYW5kIHdlIG5lZWQgdG8gd2Fp
dCB0aWxsIHRoZSBwYWdlIGlzIHBhcnNlZC4KICAgICAgICAgQWxzbyBjaGFuZ2UgdGhlIGRlZmF1
bHQgdGVzdCBpbnRlcnZhbCB0byBiZSAxMCBzZWNvbmRzLgotICAgICAgICAKKwogICAgICAgICAq
IEFuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy9ncmFwaC5qczoKICAgICAgICAgKGdyYXBoKTog
TWFrZSB0aGUgdGVzdCByZXN1bHRzIGN1cnZlcyBzbW9vdGhlci4KLSAgICAgICAgCisKICAgICAg
ICAgKiBBbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9tYWluLmpzOgogICAgICAgICAoQW5pbWF0
b3IpOiBJbml0aWFsaXplIHRoZSBLYWxtYW4gZmlsdGVyIHdpdGggNjAgRlBTIHdoaWNoIHNob3Vs
ZCBiZSB0cnVlCiAgICAgICAgIGlmIHRoZSB0ZXN0IHBhZ2UgaXMgZW1wdHkuCi0gICAgICAgIAor
CiAgICAgICAgIChBbmltYXRvci5wcm90b3R5cGUuYW5pbWF0ZSk6CiAgICAgICAgICogQW5pbW9t
ZXRlci90ZXN0cy9yZXNvdXJjZXMvbWF0aC5qczoKICAgICAgICAgKEthbG1hbkVzdGltYXRvcik6
IEZpeCB0aGUgaW5pdGlhbCB2YWx1ZSBvZiBfdmVjWF9lc3QuCkBAIC0xMjAwLDcgKzEyMjgsNyBA
QAogCiAyMDE1LTExLTA0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CiAKLSAgICAgICAgUmVtb3ZlICJkZWZlciIgZnJvbSB0aGUgc2NyaXB0cycgcmVmZXJlbmNl
cyBpbiB0aGUgZ3JhcGhpY3MgYmVuY2htYXJrIGhvbWUgcGFnZSAKKyAgICAgICAgUmVtb3ZlICJk
ZWZlciIgZnJvbSB0aGUgc2NyaXB0cycgcmVmZXJlbmNlcyBpbiB0aGUgZ3JhcGhpY3MgYmVuY2ht
YXJrIGhvbWUgcGFnZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTUwOTE1CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpAQCAtMTIy
NSwxMyArMTI1MywxMyBAQAogICAgICAgICBmcmFtZSByYXRlIHdpbGwgYWxzbyBiZSBtZWFzdXJl
ZC4KIAogICAgICAgICAqIEFuaW1vbWV0ZXIvcnVubmVyL2FuaW1vbWV0ZXIuaHRtbDogQWRkIGEg
bmV3IG9wdGlvbiBmb3IgdGhlIG5vbi1hZGFwdGl2ZSBtb2RlLgotICAgICAgICAKKwogICAgICAg
ICAqIEFuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy9hbmltb21ldGVyLmNzczoKICAgICAgICAg
KHNlY3Rpb24jaG9tZSBpbnB1dFt0eXBlPSJudW1iZXIiXSk6IERlZmluZSB0aGUgd2lkdGggb2Yg
YWxsIHRoZSBlZGl0IGNvbnRyb2wgaW4gdGhlIDxob21lPiBzZWN0aW9uLgogICAgICAgICAoc2Vj
dGlvbiNob21lID4gc3VpdGVzIGlucHV0W3R5cGU9Im51bWJlciJdKTogVGhlIGVkaXQgY29udHJv
bHMgaW4gdGhlIDxzdWl0ZXM+IGJveCB3aWxsIGJlIHJpZ2h0IGFsaWduZWQgYW5kIGhpZGRlbiBi
eSBkZWZhdWx0LgogICAgICAgICAoc2VjdGlvbiNob21lID4gc3VpdGVzIGlucHV0W3R5cGU9Im51
bWJlciJdLnNlbGVjdGVkKTogV2hlbiB0aGUgY2xhc3MgInNlbGVjdGVkIiBpcyBhZGRlZCwgdGhl
IGVkaXQgY29udHJvbHMgd2lsbCBiZSB2aXNpYmxlLgogICAgICAgICAoc2VjdGlvbiNob21lID4g
b3B0aW9ucyA+IGxhYmVsID4gaW5wdXRbdHlwZT0ibnVtYmVyIl0pOiBEZWxldGVkLgotICAgICAg
ICAKKwogICAgICAgICAqIEFuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy9hbmltb21ldGVyLmpz
OgogICAgICAgICAod2luZG93LmJlbmNobWFya1J1bm5lckNsaWVudC5kaWRGaW5pc2hMYXN0SXRl
cmF0aW9uKTogVXBkYXRlIHRoZSBsb2NhbCBzdG9yYWdlIHdpdGggdGhlIHJlc3VsdHMgb2YgZWFj
aCB0ZXN0LgogICAgICAgICAod2luZG93Lm9wdGlvbnNNYW5hZ2VyLl9hZGFwdGl2ZVRlc3RFbGVt
ZW50KTogUmV0dXJucyB0aGUgY2hlY2tib3ggZm9yIHNldHRpbmcgdGhlIGFkYXB0aXZlIHRlc3Qg
b3B0aW9uLgpAQCAtMTI0NSw4ICsxMjczLDggQEAKICAgICAgICAgKHdpbmRvdy5zdWl0ZXNNYW5h
Z2VyLnVwZGF0ZUxvY2FsU3RvcmFnZUZyb21KU09OKTogU2F2ZXMgdGhlIGxhc3QgcnVuIHJlc3Vs
dHMgdG8gdGhlIGxvY2FsIHN0b3JhZ2UuCiAgICAgICAgICh3aW5kb3cuYmVuY2htYXJrQ29udHJv
bGxlci5pbml0aWFsaXplKTogU2hvd3MvSGlkZXMgdGhlIHRlc3QgZWRpdCBjb250cm9scyBiYXNl
ZCBvbiB0aGUgYWRhcHRpdmUgdGVzdCBvcHRpb24uCiAgICAgICAgICh3aW5kb3cuYmVuY2htYXJr
Q29udHJvbGxlci5vbkNoYW5nZUFkYXB0aXZlVGVzdENoZWNrYm94KTogQW4gb25jaGFuZ2UgZXZl
bnQgaGFuZGxlciBmb3IgdGhlIGFkYXB0aXZlIHRlc3QgY2hlY2tib3guCi0gICAgICAgIAotICAg
ICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanM6IAorCisgICAgICAgICog
QW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvbWFpbi5qczoKICAgICAgICAgKEJlbmNobWFyay5w
cm90b3R5cGUudXBkYXRlKTogRml4IHRoZSBjb21wbGV4aXR5IG9mIHRoZSB0ZXN0IGlmIHRoZSBy
dW5uaW5nIG1vZGUgaXMgbm9uLWFkYXB0aXZlIHRlc3QgYW5kIGRlc2lyZWQgY29tcGxleGl0eSBp
cyBub3QgemVyby4KICAgICAgICAgKHdpbmRvdy5ydW5CZW5jaG1hcmspOiBBZGQgdGhlIHRlc3Qg
Y29tcGxleGl0eSBhcyBhIG5ldyBiZW5jaG1hcmsgb3B0aW9uLgogCkBAIC0xMjU2LDEzICsxMjg0
LDEzIEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTA1MzAKIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLSAgICAgICAgCisKICAg
ICAgICAgV2Ugd2FudCB0byBzZXQgdGhlIHNpemUgb2YgdGhlIGJlbmNobWFyayBzdGFnZSBkeW5h
bWljYWxseSBzdWNoIHRoYXQgaXQKLSAgICAgICAgZGVwZW5kcyBvbiB0aGUgc2NyZWVuIHJlc29s
dXRpb24gYW5kIHRoZSBkZXZpY2Ugc2NhbGUgZmFjdG9yLiBUaGlzIHBhdGNoIAorICAgICAgICBk
ZXBlbmRzIG9uIHRoZSBzY3JlZW4gcmVzb2x1dGlvbiBhbmQgdGhlIGRldmljZSBzY2FsZSBmYWN0
b3IuIFRoaXMgcGF0Y2gKICAgICAgICAgZG9lcyBtb3JlIHRoYW4gdGhhdCBiZWNhdXNlIHRoZSBo
b21lIHBhZ2UgY3NzIHdhcyBub3QgZG9uZSBwcm9wZXJseS4gVG8KICAgICAgICAgdXNlIHRoZSBm
bGV4IGJveCBsYXlvdXQsIHRoZSBhbmltb21ldGVyLmNzcyBoYXMgdG8gYmUgcmV3cml0dGVuIGFs
bW9zdCBmcm9tCiAgICAgICAgIHNjcmF0Y2guIFRoZSBzdWl0ZXMgdHJlZSBoYXMgdG8gYmUgcmV3
cml0dGVuIGFsc28gYmVjYXVzZSBpdCB3YXMgbm90IGNvbGxhcHNpbmcKLSAgICAgICAgYW5kIHdp
dGggdGhlIGZsZXggYm94IGxheW91dCBpdCB3YXMgZ29pbmcgb3V0c2lkZSBvZiB0aGUgd2luZG93
IGFyZWEuIFRoZSAKKyAgICAgICAgYW5kIHdpdGggdGhlIGZsZXggYm94IGxheW91dCBpdCB3YXMg
Z29pbmcgb3V0c2lkZSBvZiB0aGUgd2luZG93IGFyZWEuIFRoZQogICAgICAgICBvcHRpb25zIGhh
bmRsaW5nIGFuZCB0aGUgbG9jYWwgc3RvcmFnZSBoYW5kbGluZyBoYWQgdG8gYmUgcmV3cml0dGVu
IHRvCiAgICAgICAgIGFsbG93IG1vcmUgZmxleGliaWxpdHkgd2l0aCB0aGlzIHBhdGNoIGFuZCB0
aGUgZnV0dXJlIHBhdGNoZXMuIFRoZSBjb2RlCiAgICAgICAgIGluIGFuaW1vbWV0ZXIuanMgd2Fz
IHJlb3JnYW5pemVkIGludG8gb2JqZWN0cyB0byBhbGxvdyBkaXN0cmlidXRpbmcgdGhlIGNvZGUK
QEAgLTEyNzMsMzAgKzEzMDEsMzAgQEAKICAgICAgICAgKEluc2V0cy5wcm90b3R5cGUuZ2V0IHdp
ZHRoKTogRm9sbG93IHRoZSBmdW5jdGlvbiBvcGVuaW5nIGJyYWNlIHN0eWxlIGd1aWRlbGluZXMu
CiAgICAgICAgIChJbnNldHMucHJvdG90eXBlLmdldCBoZWlnaHQpOgogICAgICAgICAoSW5zZXRz
LnByb3RvdHlwZS5nZXQgc2l6ZSk6IFJldHVybnMgdGhlIHNpemUgb2YgYW4gSW5zZXRzIGFzIGEg
UG9pbnQgb2JqZWN0LgotICAgICAgICAKKwogICAgICAgICAod2luZG93LkRvY3VtZW50RXh0ZW5z
aW9uKTogUHJvdmlkZXMgZG9jdW1lbnQgaGVscGVyIGZ1bmN0aW9ucy4gSXQgc2hvdWxkIGJlIGFz
c2FpbGFibGUgZnJvbSB0aGUgcnVubmVyIGFuZCB0aGUgdGVzdHMuCi0gICAgICAgICh3aW5kb3cu
RG9jdW1lbnRFeHRlbnNpb24uY3JlYXRlRWxlbWVudCk6IENyZWF0ZXMgYW4gSFRNTEVsZW1lbnQg
Z2l2ZW4gaXRzIG5hbWUsIGF0dHJpYnV0ZXMgYW5kIHBhcmVudEVsZW1lbnQuIAotICAgICAgICAo
d2luZG93LkRvY3VtZW50RXh0ZW5zaW9uLmNyZWF0ZVN2Z0VsZW1lbnQpOiBDcmVhdGVzIGFuIFNW
R0VsZW1lbnQgZ2l2ZW4gaXRzIG5hbWUsIGF0dHJpYnV0ZXMgYW5kIHBhcmVudEVsZW1lbnQgKG1v
dmVkIGZyb20gdXRpbGl0aWVzLmpzKS4gCisgICAgICAgICh3aW5kb3cuRG9jdW1lbnRFeHRlbnNp
b24uY3JlYXRlRWxlbWVudCk6IENyZWF0ZXMgYW4gSFRNTEVsZW1lbnQgZ2l2ZW4gaXRzIG5hbWUs
IGF0dHJpYnV0ZXMgYW5kIHBhcmVudEVsZW1lbnQuCisgICAgICAgICh3aW5kb3cuRG9jdW1lbnRF
eHRlbnNpb24uY3JlYXRlU3ZnRWxlbWVudCk6IENyZWF0ZXMgYW4gU1ZHRWxlbWVudCBnaXZlbiBp
dHMgbmFtZSwgYXR0cmlidXRlcyBhbmQgcGFyZW50RWxlbWVudCAobW92ZWQgZnJvbSB1dGlsaXRp
ZXMuanMpLgogICAgICAgICAod2luZG93LkRvY3VtZW50RXh0ZW5zaW9uLmluc2VydENzc1J1bGVB
ZnRlcik6IEluc2VydHMgYSBDU1MgcnVsZSBhZnRlciBhbiBleGl0aW5nIHJ1bGUgZ2l2ZW4gaXRz
IHRleHQuCi0gICAgICAgIAorCiAgICAgICAgIChSZXN1bHRzVGFibGUucHJvdG90eXBlLl9zaG93
SGVhZGVyKTogVXNlIERvY3VtZW50RXh0ZW5zaW9uIGZ1bmN0aW9ucy4KICAgICAgICAgKFJlc3Vs
dHNUYWJsZS5wcm90b3R5cGUuX3Nob3dHcmFwaCk6IFVzZSBEb2N1bWVudEV4dGVuc2lvbiBmdW5j
dGlvbnMgYW5kIGNyZWF0ZSBhIHJlYWwgYnV0dG9uIGZvciAiR3JhcGguLi4iIG9wdGlvbi4KICAg
ICAgICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5cGUuX3Nob3dKU09OKTogVXNlIERvY3VtZW50RXh0
ZW5zaW9uIGZ1bmN0aW9ucyBhbmQgY3JlYXRlIGEgcmVhbCBidXR0b24gZm9yICJKU09OLi4uIiBv
cHRpb24uCiAgICAgICAgIChPcHRpb25zKTogRGVsZXRlZC4KLSAgICAgICAgCisKICAgICAgICAg
KiBBbmltb21ldGVyL3J1bm5lci9hbmltb21ldGVyLmh0bWw6IFJlc3RydWN0dXJlIHRoZSBwYWdl
IHRvIHVzZSB0aGUgZmxleCBib3ggbGF5b3V0LgotICAgICAgICAKKwogICAgICAgICAqIEFuaW1v
bWV0ZXIvcnVubmVyL3Jlc291cmNlcy9hbmltb21ldGVyLmNzczoKICAgICAgICAgKGh0bWwsYm9k
eSk6CiAgICAgICAgIChidXR0b24pOgotICAgICAgICAKKwogICAgICAgICAoYnV0dG9uLmxhcmdl
LWJ1dHRvbik6VGhlIGxhcmdlIGJ1dHRvbiBhcHBlYXJzIGluIHRoZSBhbmltb21ldGVyLmh0bWwu
CiAgICAgICAgIChidXR0b24ubGFyZ2UtYnV0dG9uOmFjdGl2ZSk6CiAgICAgICAgIChidXR0b24u
bGFyZ2UtYnV0dG9uOmRpc2FibGVkKToKLSAgICAgICAgCisKICAgICAgICAgKGJ1dHRvbi5zbWFs
bC1idXR0b24pOiBUaGUgc21hbGwgYnV0dG9uIGFwcGVhcnMgaW4gdGhlIHJlc3VsdHMgdGFibGUu
CiAgICAgICAgIChidXR0b24uc21hbGwtYnV0dG9uOmFjdGl2ZSk6Ci0gICAgICAgIAorCiAgICAg
ICAgICgudHJlZSk6IFRoZSB0cmVlIGNsYXNzIGlzIHVzZWQgdG8gbGlzdCB0aGUgc3VpdGVzIGFu
ZCB0aGVpciB0ZXN0cy4KICAgICAgICAgKC50cmVlIC5leHBhbmQtYnV0dG9uKTogVGhpcyBidXR0
b24gZXhwYW5kcyBhIHRyZWUgZWxlbWVudC4KICAgICAgICAgKC50cmVlIC5leHBhbmQtYnV0dG9u
IH4gdWwpOiBIaWRlIHRoZSBjaGlsZHJlbiAoPHVsPi4uLjwvdWw+KSBvZiBhIHBhcmVudCBub2Rl
IGJ5IGRlZmF1bHQuCkBAIC0xMzA5LDMzICsxMzM3LDMzIEBACiAgICAgICAgIChsYWJlbC50cmVl
LWxhYmVsKTogU3R5bGUgZm9yIHRoZSBsYWJlbHMgaW4gdGhlIHRvcCBsZXZlbCBvbmx5ICh0aGUg
c3VpdGVzIG5vZGVzIGluIG91ciBjYXNlKS4KICAgICAgICAgKGxhYmVsLnRyZWUtbGFiZWw6YmVm
b3JlKTogU3R5bGUgdGhlIHVuY2hlY2tlZCBjYXNlIG9mIHRoZSBleHBhbmQtYnV0dG9uLgogICAg
ICAgICAoOmNoZWNrZWQgfiBsYWJlbC50cmVlLWxhYmVsOmJlZm9yZSk6IFN0eWxlIHRoZSBjaGVj
a2VkIGNhc2Ugb2YgdGhlIGV4cGFuZC1idXR0b24uCi0gICAgICAgIAorCiAgICAgICAgICh0YWJs
ZS5yZXN1bHRzLXRhYmxlKTogVGhlIHJlc3VsdHMgdGFibGUgYXBwZWFycyB3aGlsZSBydW5uaW5n
IHRoZSB0ZXN0IGFuZCBhdCB0aGUgZW5kLgogICAgICAgICAoLnJlc3VsdHMtdGFibGUgdGQpOgog
ICAgICAgICAoLnJlc3VsdHMtdGFibGUgdGgpOgotICAgICAgICAKKwogICAgICAgICAoZGl2LnJl
c3VsdHMtanNvbik6IFRoZSBKU09OIGRpdiBhcHBlYXJzIHBlciB0ZXN0IG9yIGZvciB0aGUgd2hv
bGUgcnVuLgotICAgICAgICAKKwogICAgICAgICAobWFpbik6IFRoaXMgaXMgdGhlIGZsZXggYm94
IGNvbnRhaW5lci4KLSAgICAgICAgCisKICAgICAgICAgKHNlY3Rpb24pOiBBIHNlY3Rpb24gaXMg
ZGlzcGxheWVkIGV4Y2x1c2l2ZWx5IGluc2lkZSB0aGUgPG1haW4+LiBJdCBpcyBoaWRkZW4gYnkg
ZGVmYXVsdC4KICAgICAgICAgKHNlY3Rpb24uc2VsZWN0ZWQpOiBXaGVuIGl0IGlzIHNlbGVjdGVk
LCBpdHMgbGF5b3V0IGlzIGZsZXggbGF5b3V0LgogICAgICAgICAoc2VjdGlvbiA+IGZvb3Rlcik6
IFRoZSBoZWFkZXIgb3IgdGhlIGZvb3RlciBvZiBhIHNlY3Rpb24gc2hvdWxkIG5vdCB0YWtlIG1v
cmUgdGhhbiAxNSUgb2YgdGhlIGNvbnRhaW5lci4KLSAgICAgICAgCisKICAgICAgICAgKHNlY3Rp
b24jaG9tZSk6IFRoZSBob21lIHNlY3Rpb24gaGFzIDxzdWl0ZXM+IGFuZCA8b3B0aW9ucz4gcGFy
dHMgdG8gYmUgbGFpZCBvdXQgaW4gdGhlIG1pZGRsZS4KLSAgICAgICAgKHNlY3Rpb24jaG9tZSA+
IG9wdGlvbnMpOiAKKyAgICAgICAgKHNlY3Rpb24jaG9tZSA+IG9wdGlvbnMpOgogICAgICAgICAo
c2VjdGlvbiNob21lID4gc3VpdGVzKTogVGhlIDxzdWl0ZXM+IHNob3VsZCBub3QgdGFrZSBtb3Jl
IHRoYW4gNDAlIG9mIHRoZSB3aWR0aC4KICAgICAgICAgKHNlY3Rpb24jaG9tZSA+IG9wdGlvbnMg
PiBsYWJlbCk6IFRoZSBiZW5jaG1hcmsgdGl0bGUuCiAgICAgICAgIChzZWN0aW9uI2hvbWUgPiBo
ZWFkZXIgPiBoMik6IFRoZSBiZW5jaG1hcmsgdGl0bGUuCiAgICAgICAgIChzZWN0aW9uI2hvbWUg
PiBvcHRpb25zID4gbGFiZWwgPiBpbnB1dFt0eXBlPSJudW1iZXIiXSk6IFNldHMgdGhlIHdpZHRo
IG9mIHRoZSBvcHRpb24gZWRpdCBjb250cm9sLgotICAgICAgICAKKwogICAgICAgICAoc2VjdGlv
biNydW5uaW5nKTogVGhlIHJ1bm5pbmcgc2VjdGlvbiBjb250YWluIHRoZSBydW5uZXIgPGlmcmFt
ZT4gd2hpY2ggdGFrZXMgdGhlIHdob2xlIGFyZWEgb2YgdGhlIDxtYWluPi4KICAgICAgICAgKHNl
Y3Rpb24jcnVubmluZyA+ICNydW5uaW5nLXRlc3QpOiBUaGlzIGlzIHRoZSA8aWZyYW1lPiBjb250
YWluZXIuCiAgICAgICAgIChzZWN0aW9uI3J1bm5pbmcgPiAjcnVubmluZy10ZXN0ID4gaWZyYW1l
KTogVGhlIDxpZnJhbWU+IGlzIGNyZWF0ZWQgYnkgdGhlIHJ1bm5lciBmb3IgZWFjaCB0ZXN0Lgog
ICAgICAgICAoc2VjdGlvbiNydW5uaW5nID4gI3Byb2dyZXNzKTogVGhpcyBpcyB0aGUgcHJvZ3Jl
c3MgYmFyLgogICAgICAgICAoc2VjdGlvbiNydW5uaW5nID4gI3Byb2dyZXNzID4gI3Byb2dyZXNz
LWNvbXBsZXRlZCk6IFRoaXMgaXMgYW5vdGhlciBlbGVtZW50IHdoaWNoIGdyb3dzIHdoaWxlIHRo
ZSBydW5uZXIgaXMgcHJvZ3Jlc3NpbmcuCiAgICAgICAgIChzZWN0aW9uI3J1bm5pbmcgPiAjcmVj
b3JkKTogVGhpcyB0aGUgY29udGFpbmVyIG9mIHRoZSByZWNvcmQgcmVzdWx0cyB0YWJsZSB3aGlj
aCBpcyBzaG93biB3aGlsZSBydW5uaW5nIGEgdGVzdC4KLSAgICAgICAgCisKICAgICAgICAgKHNl
Y3Rpb24jcmVzdWx0cyk6CiAgICAgICAgIChzZWN0aW9uI2pzb24pOgogICAgICAgICAoc2VjdGlv
biN0ZXN0LWpzb24pOgpAQCAtMTM0NSwxMyArMTM3MywxMyBAQAogICAgICAgICAoc2VjdGlvbiNq
c29uID4gZGF0YSk6CiAgICAgICAgIChzZWN0aW9uI3Rlc3QtanNvbiA+IGRhdGEpOgogICAgICAg
ICAoc2VjdGlvbiN0ZXN0LWdyYXBoID4gZGF0YSk6IFRoZSA8ZGF0YT4gZWxlbWVudCBzaG91bGQg
dGFrZSA3MCUgb2YgdGhlIDxzZWN0aW9uPi4KLSAgICAgICAgCisKICAgICAgICAgKHNlY3Rpb24j
dGVzdC1ncmFwaCA+IGRhdGEgPiBzdmcpOgogICAgICAgICAoLmF4aXMgbGluZSk6CiAgICAgICAg
ICgubGVmdC1zYW1wbGVzKTogVGhlc2Ugc3R5bGVzIGFyZSBmb3IgdGhlIGQzIGdyYXBoLgotICAg
ICAgICAKKwogICAgICAgICAoc2VjdGlvbiN0ZXN0LWpzb24gPiBkYXRhKTogVGhpcyBpcyB0aGUg
c3R5bGUgb2YgdGhlIEpTT04gPGRhdGE+IGVsZW1lbnQuCi0gICAgICAgIAorCiAgICAgICAgIChp
ZnJhbWUpOiBEZWxldGVkLgogICAgICAgICAobGFiZWwsIHApOiBEZWxldGVkLgogICAgICAgICAo
c2VjdGlvbiA+IHApOiBEZWxldGVkLgpAQCAtMTM3OSwxMiArMTQwNywxMiBAQAogICAgICAgICAo
LnNhbXBsZS10aW1lKTogRGVsZXRlZC4KICAgICAgICAgKC5sZWZ0LW1lYW4pOiBEZWxldGVkLgog
ICAgICAgICAoLnJpZ2h0LW1lYW4pOiBEZWxldGVkLgotICAgICAgICAKKwogICAgICAgICAqIEFu
aW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy9hbmltb21ldGVyLmpzOgogICAgICAgICAod2luZG93
LmJlbmNobWFya1J1bm5lckNsaWVudC5pbml0aWFsaXplKTogSW5pdGlhbGl6ZSB0aGUgY2xpZW50
IG9iamVjdCB3aXRoIHRoZSBvcHRpb25zIGFuZCB0aGUgc3VpdGVzLgogICAgICAgICAod2luZG93
LmJlbmNobWFya1J1bm5lckNsaWVudC53aWxsU3RhcnRGaXJzdEl0ZXJhdGlvbik6IFVzZSBuZXcg
Y3NzIHNlbGVjdG9ycyBmb3IgcmVzdWx0cyBhbmQgdGhlIHJlY29yZCB0YWJsZS4KICAgICAgICAg
KHdpbmRvdy5iZW5jaG1hcmtSdW5uZXJDbGllbnQuZGlkRmluaXNoTGFzdEl0ZXJhdGlvbik6IE1v
dmUgdGhlIGNvZGUgd2hpY2ggc2V0cyB0aGUgSlNPTiB0ZXh0IHRvIHNlY3Rpb25zTWFuYWdlci5z
aG93SlNPTigpLgotICAgICAgICAKKwogICAgICAgICAod2luZG93LnNlY3Rpb25zTWFuYWdlcik6
IFJlc3BvbnNpYmxlIG9mIG1hbmFnaW5nIHRoZSA8c2VjdGlvbj5zIGVsZW1lbnRzIGluc2lkZSBh
bmltb21ldGVyLmh0bWwuCiAgICAgICAgICh3aW5kb3cuc2VjdGlvbnNNYW5hZ2VyLl9zZWN0aW9u
SGVhZGVySDFFbGVtZW50KTogUmV0dXJuIHRoZSA8aDE+IGluc2lkZSB0aGUgPGhlYWRlcj4gb2Yg
YSBnaXZlbiBzZWN0aW9uLgogICAgICAgICAod2luZG93LnNlY3Rpb25zTWFuYWdlci5fc2VjdGlv
bkRhdGFEaXZFbGVtZW50KTogUmV0dXJuIHRoZSA8ZGl2PiBpbnNpZGUgdGhlIDxkYXRhPiBvZiBh
IGdpdmVuIHNlY3Rpb24uCkBAIC0xMzk0LDEyICsxNDIyLDEyIEBACiAgICAgICAgICh3aW5kb3cu
c2VjdGlvbnNNYW5hZ2VyLnNob3dTZWN0aW9uKTogU2hvd3MgYSBzcGVjaWZpYyA8c2VjdGlvbj4g
aW4gdGhlIDxtYWluPiBjb250YWluZXIuCiAgICAgICAgICh3aW5kb3cuc2VjdGlvbnNNYW5hZ2Vy
LnNldHVwU2VjdGlvblN0eWxlKTogU2V0cyBjc3MgYXR0cmlidXRlcyBmb3IgYWxsIHRoZSA8c2Vj
dGlvbj5zLgogICAgICAgICAod2luZG93LnNlY3Rpb25zTWFuYWdlci5zZXR1cFJ1bm5pbmdTZWN0
aW9uU3R5bGUpOiBTZXRzIHRoZSBjc3MgYXR0cmlidXRlcyBmb3IgdGhlIHJ1bm5pbmcgPHNlY3Rp
b24+IG9ubHkuCi0gICAgICAgIAorCiAgICAgICAgICh3aW5kb3cub3B0aW9uc01hbmFnZXIpOiBS
ZXNwb25zaWJsZSBvZiBtYW5hZ2luZyB0aGUgdXNlciBvcHRpb25zIGFuZCBzdHJlYW1pbmcgdGhl
bSB0by9mb3JtIHRoZSBsb2NhbFN0b3JhZ2UuCiAgICAgICAgICh3aW5kb3cub3B0aW9uc01hbmFn
ZXIuX29wdGlvbnNFbGVtZW50cyk6IFJldHVybnMgdGhlIGNoaWxkcmVuIDxpbnB1dD4gZWxlbWVu
dHMgb2YgdGhlIDxvcHRpb25zPi4KICAgICAgICAgKHdpbmRvdy5vcHRpb25zTWFuYWdlci51cGRh
dGVVSUZyb21Mb2NhbFN0b3JhZ2UpOiBSZXN0b3JlIHRoZSB2YWx1ZXMgb2YgdGhlIDxvcHRpb25z
PiBVSSBlbGVtZW50cyBmcm9tIHRoZSBsb2NhbCBzdG9yYWdlLgogICAgICAgICAod2luZG93Lm9w
dGlvbnNNYW5hZ2VyLnVwZGF0ZUxvY2FsU3RvcmFnZUZyb21VSSk6IFNhdmVzIHRoZSB2YWx1ZXMg
b2YgdGhlIDxvcHRpb25zPiBVSSBlbGVtZW50cyB0byB0aGUgbG9jYWwgc3RvcmFnZS4KLSAgICAg
ICAgCisKICAgICAgICAgKHdpbmRvdy5zdWl0ZXNNYW5hZ2VyKTogUmVzcG9uc2libGUgb2YgbWFu
YWdpbmcgdGhlIHVzZXIgc3VpdGVzIGFuZCBzdHJlYW1pbmcgdGhlbSB0by9mb3JtIHRoZSBsb2Nh
bFN0b3JhZ2UuCiAgICAgICAgICh3aW5kb3cuc3VpdGVzTWFuYWdlci5fdHJlZUVsZW1lbnQpOiBS
ZXR1cm5zIHRoZSBzdWl0ZXMgdHJlZSBjb250YWluZXIgZWxlbWVudC4KICAgICAgICAgKHdpbmRv
dy5zdWl0ZXNNYW5hZ2VyLl9zdWl0ZXNFbGVtZW50cyk6IFJldHVybnMgYSBsaXN0IG9mIHRoZSBz
dWl0ZXMgZWxlbWVudHMuCkBAIC0xNDE0LDcgKzE0NDIsNyBAQAogICAgICAgICAod2luZG93LnN1
aXRlc01hbmFnZXIuY3JlYXRlRWxlbWVudHMpOiBDcmVhdGVzIHRoZSBzdWl0ZXMgdHJlZSBkeW5h
bWljYWxseSBmcm9tIHRoZSBhcnJheSBTdWl0ZXMuCiAgICAgICAgICh3aW5kb3cuc3VpdGVzTWFu
YWdlci51cGRhdGVVSUZyb21Mb2NhbFN0b3JhZ2UpOiBSZXN0b3JlIHRoZSB2YWx1ZXMgb2YgdGhl
IDxzdWl0ZXM+IFVJIGVsZW1lbnRzIGZyb20gdGhlIGxvY2FsIHN0b3JhZ2UuCiAgICAgICAgICh3
aW5kb3cuc3VpdGVzTWFuYWdlci51cGRhdGVMb2NhbFN0b3JhZ2VGcm9tVUkpOiBhdmVzIHRoZSB2
YWx1ZXMgb2YgdGhlIDxzdWl0ZXM+IFVJIGVsZW1lbnRzIHRvIHRoZSBsb2NhbCBzdG9yYWdlLgot
ICAgICAgICAKKwogICAgICAgICAod2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIpOiBUaGlzIGlz
IHRoZSBVSSBjb250cm9sbGVyIG9mIHRoZSBhbmltb21ldGVyLmh0bWwgcGFnZS4KICAgICAgICAg
KHdpbmRvdy5iZW5jaG1hcmtDb250cm9sbGVyLmluaXRpYWxpemUpOiBDYWxsZWQgd2hlbiB0aGUg
YW5pbW9tZXRlci5odG1sIHBhZ2UgaXMgbG9hZGVkLgogICAgICAgICAod2luZG93LmJlbmNobWFy
a0NvbnRyb2xsZXIuX3J1bkJlbmNobWFyayk6IFN0YXJ0cyBhIGJlbmNobWFyayBydW4uCkBAIC0x
NDIzLDcgKzE0NTEsNyBAQAogICAgICAgICAod2luZG93LmJlbmNobWFya0NvbnRyb2xsZXIuc2hv
d0pzb24pOiBDYWxsZWQgZnJvbSB0aGUgcmVzdWx0cyBwYWdlIHRvIHNob3cgdGhlIEpTT04gb2Yg
dGhlIGxhc3QgYmVuY2htYXJrIHJ1bi4KICAgICAgICAgKHdpbmRvdy5iZW5jaG1hcmtDb250cm9s
bGVyLnNob3dUZXN0R3JhcGgpOiBDYWxsZWQgZnJvbSB0aGUgcmVzdWx0cyB0aGUgdGFibGUgdG8g
c2hvdyBhIGdyYXBoIGZvciB0aGUgc2FtcGxlcyBvZiBhIHNwZWNpZmljIHRlc3QuCiAgICAgICAg
ICh3aW5kb3cuYmVuY2htYXJrQ29udHJvbGxlci5zaG93VGVzdEpTT04pOiBDYWxsZWQgZnJvbSB0
aGUgcmVzdWx0cyB0aGUgdGFibGUgdG8gc2hvdyBhIEpTT04gZm9yIHRoZSBzYW1wbGVzIG9mIGEg
c3BlY2lmaWMgdGVzdC4KLSAgICAgICAgCisKICAgICAgICAgKHNob3dTZWN0aW9uKTogRGVsZXRl
ZC4KICAgICAgICAgKHN0YXJ0VGVzdCk6IERlbGV0ZWQuCiAgICAgICAgIChzaG93UmVzdWx0cyk6
IERlbGV0ZWQuCkBAIC0xNDM4LDcgKzE0NjYsNyBAQAogICAgICAgICAobG9jYWxTdG9yYWdlTmFt
ZUZvclRlc3QpOiBEZWxldGVkLgogICAgICAgICAocG9wdWxhdGVTZXR0aW5ncy4pOiBEZWxldGVk
LgogICAgICAgICAocG9wdWxhdGVTZXR0aW5ncyk6IERlbGV0ZWQuCi0gICAgICAgIAorCiAgICAg
ICAgICogQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2JlbmNobWFyay1ydW5uZXIuanM6CiAg
ICAgICAgIChCZW5jaG1hcmtSdW5uZXIpOiBQYXNzIHRoZSBmcmFtZUNvbnRhaW5lciBlbGVtZW50
IHRvIHRoZSBCZW5jaG1hcmtSdW5uZXIuCiAgICAgICAgIChCZW5jaG1hcmtSdW5uZXIucHJvdG90
eXBlLl9hcHBlbmRGcmFtZSk6IFJlbW92ZSB1bnVzZWQgcGFyYW1ldGVyIHVud2FudGVkIHN0eWxp
bmcgY29kZS4KQEAgLTE0NDYsMTcgKzE0NzQsMTcgQEAKIAogICAgICAgICAqIEFuaW1vbWV0ZXIv
cnVubmVyL3Jlc291cmNlcy9ncmFwaC5qczoKICAgICAgICAgKGdyYXBoKTogQ2FsY3VsYXRlIHRo
ZSBzaXplIG9mIHRoZSBjaGFydCBmcm9tIHRoZSBjb250YWluZXIgZWxlbWVudC4KLSAgICAgICAg
CisKICAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9yZXNvdXJj
ZXMvYm91bmNpbmctc3ZnLWltYWdlcy5qczoKICAgICAgICAgKEJvdW5jaW5nU3ZnSW1hZ2UpOgog
ICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL3Jlc291cmNlcy9i
b3VuY2luZy1zdmctcGFydGljbGVzLmpzOgogICAgICAgICAoQm91bmNpbmdTdmdQYXJ0aWNsZXNT
dGFnZS5wcm90b3R5cGUuX2NyZWF0ZURlZnMpOgotICAgICAgICAoQm91bmNpbmdTdmdQYXJ0aWNs
ZXNTdGFnZS5wcm90b3R5cGUuX2NyZWF0ZUNsaXBTdGFyKTogICAgICAgIAorICAgICAgICAoQm91
bmNpbmdTdmdQYXJ0aWNsZXNTdGFnZS5wcm90b3R5cGUuX2NyZWF0ZUNsaXBTdGFyKToKICAgICAg
ICAgKiBBbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9yZXNvdXJjZXMvYm91bmNp
bmctc3ZnLXNoYXBlcy5qczoKICAgICAgICAgKEJvdW5jaW5nU3ZnU2hhcGUucHJvdG90eXBlLl9j
cmVhdGVTaGFwZSk6CiAgICAgICAgIChCb3VuY2luZ1N2Z1NoYXBlc1N0YWdlLnByb3RvdHlwZS5j
cmVhdGVHcmFkaWVudCk6CiAgICAgICAgIENhbGwgRG9jdW1lbnRFeHRlbnNpb24uY3JlYXRlU3Zn
RWxlbWVudCgpIGluc3RlYWQgb2YgY2FsbGluZyBVdGlsaXRpZXMuY3JlYXRlU3ZnRWxlbWVudCgp
LgotICAgICAgICAKKwogICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4u
anM6CiAgICAgICAgIChBbmltYXRvci5wcm90b3R5cGUuYW5pbWF0ZSk6CiAgICAgICAgIChCZW5j
aG1hcmspOgpAQCAtMTQ2NCwxMCArMTQ5MiwxMCBAQAogICAgICAgICAqIEFuaW1vbWV0ZXIvdGVz
dHMvcmVzb3VyY2VzL3N0YWdlLmpzOgogICAgICAgICAoU3RhZ2VCZW5jaG1hcmsucHJvdG90eXBl
LnNob3dSZXN1bHRzKToKICAgICAgICAgUmVuYW1lIHRoZSBvcHRpb25zIHRvIG1hdGNoIHRoZSA8
aW5wdXQ+IGlkcyBpbiBhbmltb21ldGVyLmh0bWwuCi0gICAgICAgIAorCiAgICAgICAgICogQW5p
bW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzOgogICAgICAgICAod2luZG93LlV0
aWxpdGllcy5jcmVhdGVTdmdFbGVtZW50KTogRGVsZXRlZC4KLSAgICAgICAgCisKICAgICAgICAg
KiBBbmltb21ldGVyL3Rlc3RzL3RleHQvbGF5ZXJpbmctdGV4dC5odG1sOgogICAgICAgICAqIEFu
aW1vbWV0ZXIvdGVzdHMvdGV4dC9yZXNvdXJjZXMvbGF5ZXJpbmctdGV4dC5qczoKICAgICAgICAg
KExheWVyaW5nVGV4dFN0YWdlKToKQEAgLTE0NzksNyArMTUwNyw3IEBACiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA2OTgKIAogICAgICAgICBSZXZp
ZXdlZCBieSBUaW0gSG9ydG9uLgotICAgICAgICAKKwogICAgICAgICBUaGUgZXhpc3RpbmcgY29k
ZSBpbmNyZW1lbnRlZCB0aGlzLl9mcmFtZUNvdW50IGFmdGVyIGNoZWNraW5nIGFnYWluc3QgdGhp
cy5fZHJvcEZyYW1lQ291bnQuCiAgICAgICAgIFRoaXMgaGFzIHRoZSBlZmZlY3Qgb2Ygc2V0dGlu
ZyB0aGlzLl9tZWFzdXJlVGltZU9mZnNldCBvbmUgZnJhbWUgdG9vIGxhdGUsIHNvCiAgICAgICAg
IHdlIHdlcmUgbWVhc3VyaW5nIG9ubHkgdHdvIGZyYW1lcywgbm90IHRocmVlLCBhbmQgdGh1cyBj
b21wdXRpbmcgYW4gaW5jb3JyZWN0IGZwcy4KQEAgLTE1NDQsOCArMTU3Miw4IEBACiAgICAgICAg
IChSZWNvcmRUYWJsZS5wcm90b3R5cGUuX3Nob3dUZXN0KTogU2hvd3MgdGhlIHJlc3VsdHMgb2Yg
YSBzaW5nbGUgdGVzdC4KICAgICAgICAgKFJlY29yZFRhYmxlLnByb3RvdHlwZS5fc2hvd1N1aXRl
KTogU2hvd3MgdGhlIHJlc3VsdHMgb2YgYSBzaW5nbGUgc3VpdGUuCiAgICAgICAgIChSZWNvcmRU
YWJsZS5wcm90b3R5cGUuc2hvd1JlY29yZCk6IFNob3dzIGEgc2luZ2xlIGl0ZXJhdGlvbiBmb3Ig
YSBzaW5nbGUgdGVzdC4KLSAgICAgICAgKFJlY29yZFRhYmxlLnByb3RvdHlwZS5zaG93SXRlcmF0
aW9ucyk6IFNob3dzIHRoZSByZXN1bHRzIG9mIGFsbCB0aGUgc3VpdGVzIG9mIHRoZSBpdGVyYXRp
b25zLiAKLSAgICAgICAgCisgICAgICAgIChSZWNvcmRUYWJsZS5wcm90b3R5cGUuc2hvd0l0ZXJh
dGlvbnMpOiBTaG93cyB0aGUgcmVzdWx0cyBvZiBhbGwgdGhlIHN1aXRlcyBvZiB0aGUgaXRlcmF0
aW9ucy4KKwogICAgICAgICAoUmVzdWx0c1RhYmxlKTogUmVjb3JkVGFibGUgd2FzIHJlbmFtZWQg
dG8gUmVzdWx0c1RhYmxlLgogICAgICAgICAoUmVzdWx0c1RhYmxlLnByb3RvdHlwZS5jbGVhcik6
IENsZWFycyB0aGUgdGFibGUgZWxlbWVudC4KICAgICAgICAgKFJlc3VsdHNUYWJsZS5wcm90b3R5
cGUuX3Nob3dIZWFkZXJSb3cpOiBTaG93cyBhIHJvdyBpbiB0aGUgcmVzdWx0cyB0YWJsZSBoZWFk
ZXIuCkBAIC0xNTcxLDIyICsxNTk5LDIyIEBACiAgICAgICAgIChSZWNvcmRUYWJsZS5wcm90b3R5
cGUuX3Nob3dTdWl0ZSk6IERlbGV0ZWQuCiAgICAgICAgIChSZWNvcmRUYWJsZS5wcm90b3R5cGUu
c2hvd1JlY29yZCk6IERlbGV0ZWQuCiAgICAgICAgIChSZWNvcmRUYWJsZS5wcm90b3R5cGUuc2hv
d0l0ZXJhdGlvbnMpOiBEZWxldGVkLgotICAgICAgICAKKwogICAgICAgICAqIEFuaW1vbWV0ZXIv
cmVzb3VyY2VzL3NhbXBsZXIuanM6CiAgICAgICAgIChTYW1wbGVyLnByb3RvdHlwZS5zdGFydFNh
bXBsaW5nKTogVXNlIGZvckVhY2guCiAgICAgICAgIChTYW1wbGVyLnByb3RvdHlwZS5zYW1wbGUp
OiBVc2UgZm9yRWFjaC4KICAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLnRvSlNPTik6IENvbnZl
cnRzIHRoZSBzYW1wbGVyIGRhdGEgdG8gSlNPTiBmb3JtYXQuCi0gICAgICAgIAorCiAgICAgICAg
ICogQW5pbW9tZXRlci9yZXNvdXJjZXMvc3RyaW5ncy5qczogQWRkZWQuCiAgICAgICAgIFRoaXMg
bmV3IGZpbGUgd2lsbCBiZSB1c2VkIHRvIGFzc29jaWF0ZSB0aGUgc3RyaW5ncyB1c2VkIGJ5IHRo
ZSBiZW5jaG1hcmsKICAgICAgICAgd2l0aCBJRHMuIEEgc3RyaW5nIGNhbiBiZSBjaGFuZ2VkIGlu
IG9uZSBwbGFjZSB3aXRob3V0IGhhdmluZyB0byBjaGFuZ2UKICAgICAgICAgYWxsIHRoZSBpbnN0
YW5jZXMgb2YgdGhpcyBzdHJpbmcgaW4gbXVsdGlwbGUgZmlsZXMuIFRoZXJlIHR3byBncm91cHMg
b2YKICAgICAgICAgc3RyaW5ncyBpbiB0aGlzIGZpbGUuIFRoZSBmaXJzdCBvbmUgaXMgdXNlZCBi
eSB0aGUgVUkgZWxlbWVudHMgYW5kIHRoZSBzZWNvbmQKICAgICAgICAgZ3JvdXAgaXMgdXNlZCB3
aGVuIGNvbnN0cnVjdGluZyB0aGUgcmVzdWx0cyBKU09OLgotICAgICAgICAKKwogICAgICAgICAq
IEFuaW1vbWV0ZXIvcnVubmVyL2FuaW1vbWV0ZXIuaHRtbDoKICAgICAgICAgKiBBbmltb21ldGVy
L3J1bm5lci9yZXNvdXJjZXMvYW5pbW9tZXRlci5jc3M6Ci0gICAgICAgIAorCiAgICAgICAgICog
QW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2FuaW1vbWV0ZXIuanM6CiAgICAgICAgICh3aW5k
b3cuYmVuY2htYXJrUnVubmVyQ2xpZW50LndpbGxBZGRUZXN0RnJhbWUpOgogICAgICAgICAod2lu
ZG93LmJlbmNobWFya1J1bm5lckNsaWVudC53aWxsU3RhcnRGaXJzdEl0ZXJhdGlvbik6CkBAIC0x
NTk1LDIwICsxNjIzLDIwIEBACiAgICAgICAgIE1ha2UgYmVuY2htYXJrUnVubmVyQ2xpZW50IHVz
ZXMgUmVzdWx0c0Rhc2hib2FyZCBpbnN0ZWFkIG9mIF9pdGVyYXRpb25zU2FtcGxlcnMKICAgICAg
ICAgR2V0IHRoZSBKU09OIGZyb20gUmVzdWx0c0Rhc2hib2FyZC50b0pTT04oKSBhbmQgcGFzcyBp
dCB0byBSZXN1bHRzVGFibGUuc2hvd0l0ZXJhdGlvbnMoKS4KICAgICAgICAgQWxzbyBzZXQgdGhl
IHRleHRDb250ZW50IG9mIHRoZSAiI2pzb24iIHRleHRhcmVhIHdpdGggdGhlIHJlc3VsdHMgSlNP
Ti4KLSAgICAgICAgCisKICAgICAgICAgKHNob3dSZXN1bHRzKTogRGVsZXRlIHVubmVlZGVkIGNv
ZGUuCiAgICAgICAgIChzaG93SnNvbik6IFNob3dzIHRoZSAianNvbiIgc2VjdGlvbi4KICAgICAg
ICAgKHNob3dUZXN0R3JhcGgpOiBSZW5hbWUgc2hvd0dyYXBoKCkgdG8gYmUgc2hvd1Rlc3RHcmFw
aCgpLgogICAgICAgICAoc2hvd1Rlc3RKU09OKTogU2hvd3MgdGhlIEpTT04gb2YgYSBzaW5nbGUg
dGVzdFJlc3VsdHMuCiAgICAgICAgIChzaG93R3JhcGgpOiBEZWxldGVkLgotICAgICAgICAKKwog
ICAgICAgICAqIEFuaW1vbWV0ZXIvcnVubmVyL3Jlc291cmNlcy90ZXN0cy5qczoKICAgICAgICAg
VXNlIHRoZSBzdHJpbmcgdGFibGUgaW5zdGVhZCBvZiBwdXR0aW5nIGxpdGVyYWwgc3RyaW5ncy4K
IAogICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3N0YWdlLmpzOgogICAgICAg
ICAoU3RhZ2VCZW5jaG1hcmsucHJvdG90eXBlLnNob3dSZXN1bHRzKToKICAgICAgICAgRml4IHRo
ZSBwYXJhbWV0ZXJzIHdoaWNoIGFyZSBwYXNzZWQgdG8gUmVjb3JkVGFibGUuc2hvd1JlY29yZCgp
LgotICAgICAgICAKKwogICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGlj
bGVzL2JvdW5jaW5nLWNhbnZhcy1pbWFnZXMuaHRtbDoKICAgICAgICAgKiBBbmltb21ldGVyL3Rl
c3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jYW52YXMtc2hhcGVzLmh0bWw6CiAgICAg
ICAgICogQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNpbmctY3NzLWlt
YWdlcy5odG1sOgpAQCAtMTkyNywxMSArMTk1NSwxMSBAQAogICAgICAgICBUaGlzIGRpcmVjdG9y
eSBpbmNsdWRlcyBhbGwgdGhlIHRlc3Qgc3VpdGVzIHRvIGJlIHJ1biBieSB0aGUgYmVuY2htYXJr
LgogICAgICAgICBydW5uZXIuIEFsbCB0aGUgdGVzdHMgc2hvdWxkIHRyeSB0byBydW4gb24gdGhy
ZWUgc3RhZ2VzOiBDU1MsIGNhbnZhcyBhbmQKICAgICAgICAgU1ZHLgotICAgICAgICAKKwogICAg
ICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzOiBBZGRlZC4KICAgICAg
ICAgKiBBbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9yZXNvdXJjZXM6IEFkZGVk
LgogICAgICAgICBUaGUgYm91bmNpbmcgcGFydGljbGVzIHRlc3QgaXMgYW4gZXhhbXBsZSBvZiBh
IHNpbXBsZSBhbmltYXRpb24gdGVjaG5pcXVlLgotICAgICAgICAKKwogICAgICAgICAqIEFuaW1v
bWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNhbnZhcy1pbWFnZXMuaHRt
bDogQWRkZWQuCiAgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMv
Ym91bmNpbmctY2FudmFzLXNoYXBlcy5odG1sOiBBZGRlZC4KICAgICAgICAgKiBBbmltb21ldGVy
L3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jc3MtaW1hZ2VzLmh0bWw6IEFkZGVk
LgpAQCAtMTk0NCwxNSArMTk3MiwxNSBAQAogICAgICAgICAoQm91bmNpbmdQYXJ0aWNsZSk6IEJh
c2UgY2xhc3MgZm9yIGEgYm91bmNpbmcgcGFydGljbGUuCiAgICAgICAgIChCb3VuY2luZ1BhcnRp
Y2xlLnByb3RvdHlwZS5jZW50ZXIpOiBSZXR1cm5zIHRoZSBjZW50ZXIgcG9pbnQgb3IgdGhlIHBh
cnRpY2xlLgogICAgICAgICAoQm91bmNpbmdQYXJ0aWNsZS5wcm90b3R5cGUuYW5pbWF0ZSk6IE1v
dmVzIHRoZSBwYXJ0aWNsZSBiYXNlZCBvbiBpdHMgY3VycmVudCBwb3NpdGlvbiwgYW5nbGUgYW5k
IHZlbG9jaXR5LgotICAgICAgICAKKwogICAgICAgICAoQm91bmNpbmdQYXJ0aWNsZXNBbmltYXRv
cik6IEEgc3ViIGNsYXNzIG9mIEFuaW1hdG9yLgotICAgICAgICAKKwogICAgICAgICAoQm91bmNp
bmdQYXJ0aWNsZXNTdGFnZSk6IFJlcHJlc2VudHMgdGhlIGNvbnRhaW5lciBvZiBhbGwgdGhlIGJv
dW5jaW5nIHBhcnRpY2xlcy4KICAgICAgICAgKEJvdW5jaW5nUGFydGljbGVzU3RhZ2UucHJvdG90
eXBlLnBhcnNlU2hhcGVQYXJhbXRlcnMpOiBHZXRzIHRoZSBzaGFwZSBwYXJhbWV0ZXJzIGZvciBz
aGFwZSBhbmltYXRpbmcgdGVzdHMuCiAgICAgICAgIChCb3VuY2luZ1BhcnRpY2xlc1N0YWdlLnBy
b3RvdHlwZS5yYW5kb21Sb3RhdGVyKTogQ3JlYXRlcyBhIHJvdGF0ZXIgZm9yIHRoZSBwYXJ0aWNs
ZXMuCiAgICAgICAgIChCb3VuY2luZ1BhcnRpY2xlc1N0YWdlLnByb3RvdHlwZS5hbmltYXRlKTog
QW5pbWF0ZXMgYWxsIHRoZSBwYXJ0aWNsZXMuCiAgICAgICAgIChCb3VuY2luZ1BhcnRpY2xlc1N0
YWdlLnByb3RvdHlwZS50dW5lKTogQ2hhbmdlcyB0aGUgdGVzdCBieSBhZGRpbmcgb3IgcmVtb3Zp
bmcgcGFydGljbGVzLgotICAgICAgICAKKwogICAgICAgICAoQm91bmNpbmdQYXJ0aWNsZXNCZW5j
aG1hcmspOiBSdW5zIHRoZSBiZW5jaG1hcmsgZm9yIGJvdW5jaW5nIHBhcnRpY2xlcyB0ZXN0Lgog
ICAgICAgICAoQm91bmNpbmdQYXJ0aWNsZXNCZW5jaG1hcmsucHJvdG90eXBlLmNyZWF0ZUFuaW1h
dG9yKTogQ3JlYXRlcyBhbiBhbmltYXRvciBvZiB0eXBlIEJvdW5jaW5nUGFydGljbGVzQW5pbWF0
b3IuCiAKQEAgLTE5NjEsNTIgKzE5ODksNTIgQEAKICAgICAgICAgKEJvdW5jaW5nQ3NzU2hhcGUu
cHJvdG90eXBlLl9jcmVhdGVTcGFuKTogQ3JlYXRlcyBhIDxzcGFuPiBlbGVtZW50IGFuZCB0YWtl
cyB0aGUgc2hhcGUgYW5kIGNsaXBwaW5nIGNsYXNzZXMgaW50byBjb25zaWRlcmF0aW9uLgogICAg
ICAgICAoQm91bmNpbmdDc3NTaGFwZS5wcm90b3R5cGUuX21vdmUpOiBNb3ZlcyB0aGUgcGFydGlj
bGUgdG8gYSBuZXcgbG9jYXRpb24uIEFwcGx5IHRyYW5zZm9ybSBzaW5jZSBpdCBkb2VzIG5vdCBy
ZXF1aXJlIGxheW91dC4KICAgICAgICAgKEJvdW5jaW5nQ3NzU2hhcGUucHJvdG90eXBlLmFuaW1h
dGUpOiBSb3RhdGVzIGFuZCBtb3ZlcyB0aGUgc2hhcGUgdG8gYSBuZXcgbG9jYXRpb24uCi0gICAg
ICAgIAorCiAgICAgICAgIChCb3VuY2luZ0Nzc1NoYXBlc1N0YWdlKTogQSBzdWIgY2xhc3Mgb2Yg
Qm91bmNpbmdQYXJ0aWNsZXNTdGFnZSBmb3IgYW5pbWF0aW5nIENTUyBzaGFwZXMuCiAgICAgICAg
IChCb3VuY2luZ0Nzc1NoYXBlc1N0YWdlLnByb3RvdHlwZS5jcmVhdGVQYXJ0aWNsZSk6IENyZWF0
ZXMgYSBwYXJ0aWNsZSBvZiB0eXBlIEJvdW5jaW5nQ3NzU2hhcGUuCiAgICAgICAgIChCb3VuY2lu
Z0Nzc1NoYXBlc1N0YWdlLnByb3RvdHlwZS5wYXJ0aWNsZVdpbGxCZVJlbW92ZWQpOiBSZW1vdmVz
IHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgZm9ybSB0aGUgcGFyZW50IGNoaWxkcmVuIGxpc3Qu
Ci0gICAgICAgIAorCiAgICAgICAgIChCb3VuY2luZ0Nzc1NoYXBlc0JlbmNobWFyayk6IEEgc3Vi
IGNsYXNzIG9mIEJvdW5jaW5nUGFydGljbGVzQmVuY2htYXJrIGZvciBhbmltYXRpbmcgQ1NTIHNo
YXBlcy4KICAgICAgICAgKEJvdW5jaW5nQ3NzU2hhcGVzQmVuY2htYXJrLnByb3RvdHlwZS5jcmVh
dGVTdGFnZSk6IENyZWF0ZXMgYSBzdGFnZSBvZiB0eXBlIEJvdW5jaW5nQ3NzU2hhcGVzU3RhZ2Uu
CiAgICAgICAgICh3aW5kb3cuYmVuY2htYXJrQ2xpZW50LmNyZWF0ZSk6IENyZWF0ZXMgYSBiZW5j
aG1hcmsgb2YgdHlwZSBCb3VuY2luZ0Nzc1NoYXBlc0JlbmNobWFyay4KLSAgICAgICAgCisKICAg
ICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9yZXNvdXJjZXMvYm91
bmNpbmctY3NzLWltYWdlcy5qczogQWRkZWQuCiAgICAgICAgIChCb3VuY2luZ0Nzc0ltYWdlKTog
QSBzdWIgY2xhc3Mgb2YgQm91bmNpbmdQYXJ0aWNsZSBmb3IgYW5pbWF0aW5nIENTUyBpbWFnZXMu
CiAgICAgICAgIChCb3VuY2luZ0Nzc0ltYWdlLnByb3RvdHlwZS5fbW92ZSk6IE1vdmUgdGhlIHBh
cnRpY2xlIHRvIGEgbmV3IGxvY2F0aW9uLiBBcHBseSB0cmFuc2Zvcm0gc2luY2UgaXQgZG9lcyBu
b3QgcmVxdWlyZSBsYXlvdXQuCiAgICAgICAgIChCb3VuY2luZ0Nzc0ltYWdlLnByb3RvdHlwZS5h
bmltYXRlKTogUm90YXRlcyBhbmQgbW92ZXMgdGhlIHNoYXBlIHRvIGEgbmV3IGxvY2F0aW9uLgot
ICAgICAgICAKKwogICAgICAgICAoQm91bmNpbmdDc3NJbWFnZXNTdGFnZSk6IEEgc3ViIGNsYXNz
IG9mIEJvdW5jaW5nUGFydGljbGVzU3RhZ2UgZm9yIGFuaW1hdGluZyBDU1MgaW1hZ2VzLgogICAg
ICAgICAoQm91bmNpbmdDc3NJbWFnZXNTdGFnZS5wcm90b3R5cGUuY3JlYXRlUGFydGljbGUpOiBD
cmVhdGVzIGEgcGFydGljbGUgb2YgdHlwZSBCb3VuY2luZ0Nzc0ltYWdlLgogICAgICAgICAoQm91
bmNpbmdDc3NJbWFnZXNTdGFnZS5wcm90b3R5cGUucGFydGljbGVXaWxsQmVSZW1vdmVkKTogUmVt
b3ZlcyB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IGZvcm0gdGhlIHBhcmVudCBjaGlsZHJlbiBs
aXN0LgotICAgICAgICAKKwogICAgICAgICAoQm91bmNpbmdDc3NJbWFnZXNCZW5jaG1hcmspOiBB
IHN1YiBjbGFzcyBvZiBCb3VuY2luZ1BhcnRpY2xlc0JlbmNobWFyayBmb3IgYW5pbWF0aW5nIENT
UyBpbWFnZXMuCiAgICAgICAgIChCb3VuY2luZ0Nzc0ltYWdlc0JlbmNobWFyay5wcm90b3R5cGUu
Y3JlYXRlU3RhZ2UpOiBDcmVhdGVzIGEgc3RhZ2Ugb2YgdHlwZSBCb3VuY2luZ0Nzc0ltYWdlc1N0
YWdlLgogICAgICAgICAod2luZG93LmJlbmNobWFya0NsaWVudC5jcmVhdGUpOiBDcmVhdGVzIGEg
YmVuY2htYXJrIG9mIHR5cGUgQm91bmNpbmdDc3NJbWFnZXNCZW5jaG1hcmsuCi0gICAgICAgIAor
CiAgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvcmVzb3VyY2Vz
L2JvdW5jaW5nLWNhbnZhcy1wYXJ0aWNsZXMuanM6IEFkZGVkLgogICAgICAgICAoQm91bmNpbmdD
YW52YXNQYXJ0aWNsZSk6IEEgYmFzZSBzdWItY2xhc3Mgb2YgQm91bmNpbmdQYXJ0aWNsZSBmb3Ig
YW5pbWF0aW5nIGNhbnZhcyBwYXJ0aWNsZXMuCiAgICAgICAgIChCb3VuY2luZ0NhbnZhc1BhcnRp
Y2xlLnByb3RvdHlwZS5fYXBwbHlSb3RhdGlvbik6IEFwcGx5IHRoZSBwYXJ0aWNsZSByb3RhdGlv
bi1hcm91bmQtY2VudGVyIHRyYW5zZm9ybSB0byB0aGUgY2FudmFzIGNvbnRleHQuCiAgICAgICAg
IChCb3VuY2luZ0NhbnZhc1BhcnRpY2xlLnByb3RvdHlwZS5fYXBwbHlDbGlwcGluZyk6IEFwcGx5
IHRoZSBwYXJ0aWNsZSBjbGlwcGluZyB0byB0aGUgY2FudmFzIGNvbnRleHQuCiAgICAgICAgIChC
b3VuY2luZ0NhbnZhc1BhcnRpY2xlLnByb3RvdHlwZS5fZHJhdyk6IEEgbm9uLWltcGxlbWVudGVk
IHZlcnNpb24gb2YgdGhlIGRyYXdpbmcgZnVuY3Rpb24uCiAgICAgICAgIChCb3VuY2luZ0NhbnZh
c1BhcnRpY2xlLnByb3RvdHlwZS5hbmltYXRlKTogQ2FycmllcyBvdXQgYWxsIHRoZSBzdGVwcyB0
byByZWRyYXcgdGhlIGNhbnZhcyBwYXJ0aWNsZS4KLSAgICAgICAgCisKICAgICAgICAgKEJvdW5j
aW5nQ2FudmFzUGFydGljbGVzU3RhZ2UpOiBBIGJhc2Ugc3ViLWNsYXNzIG9mIEJvdW5jaW5nUGFy
dGljbGVzU3RhZ2UgZm9yIGFuaW1hdGluZyBjYW52YXMgcGFydGljbGVzLgotICAgICAgICAKKwog
ICAgICAgICAoQm91bmNpbmdDYW52YXNQYXJ0aWNsZXNBbmltYXRvcik6IEEgY29uY3JldGUgc3Vi
LWNsYXNzIG9mIEJvdW5jaW5nUGFydGljbGVzQW5pbWF0b3IgZm9yIGFuaW1hdGluZyBjYW52YXMg
cGFydGljbGVzLgogICAgICAgICAoQm91bmNpbmdDYW52YXNQYXJ0aWNsZXNBbmltYXRvci5wcm90
b3R5cGUuYW5pbWF0ZSk6IE92ZXJyaWRlcyB0aGUgYmFzZSBjbGFzcyBtZXRob2QgdG8gY2xlYXIg
dGhlIGNhbnZhcyBiZWZvcmUgcmVkcmF3aW5nIHRoZSBzdGFnZS4KLSAgICAgICAgCisKICAgICAg
ICAgKEJvdW5jaW5nQ2FudmFzUGFydGljbGVzQmVuY2htYXJrKTogQSBiYXNlIHN1Yi1jbGFzcyBv
ZiBTdGFnZUJlbmNobWFyayBmb3IgYW5pbWF0aW5nIGNhbnZhcyBwYXJ0aWNsZXMuCiAgICAgICAg
IChCb3VuY2luZ0NhbnZhc1BhcnRpY2xlc0JlbmNobWFyay5wcm90b3R5cGUuY3JlYXRlQW5pbWF0
b3IpOiBDcmVhdGVzIHRoZSBjYW52YXMgcGFydGljbGVzIGFuaW1hdG9yLgotICAgICAgICAKKwog
ICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL3Jlc291cmNlcy9i
b3VuY2luZy1jYW52YXMtc2hhcGVzLmpzOiBBZGRlZC4KICAgICAgICAgKEJvdW5jaW5nQ2FudmFz
U2hhcGUpOiBBIGNvbmNyZXRlIHN1Yi1jbGFzcyBvZiBCb3VuY2luZ0NhbnZhc1BhcnRpY2xlIGZv
ciBhbmltYXRpbmcgY2FudmFzIHNoYXBlcy4KICAgICAgICAgKEJvdW5jaW5nQ2FudmFzU2hhcGUu
cHJvdG90eXBlLl9hcHBseUZpbGwpOiBTZXRzIHRoZSBmaWxsU3R5bGUgaW4gdGhlIGNhbnZhcyBj
b250ZXh0LgogICAgICAgICAoQm91bmNpbmdDYW52YXNTaGFwZS5wcm90b3R5cGUuX2RyYXdTaGFw
ZSk6IENhcnJpZXMgb3V0IHRoZSBhY3R1YWwgZHJhd2luZy4KICAgICAgICAgKEJvdW5jaW5nQ2Fu
dmFzU2hhcGUucHJvdG90eXBlLl9kcmF3KTogQ2FycmllcyBvdXQgYWxsIHRoZSBzdGVwcyB0byBk
cmF3IHRoZSBzaGFwZS4KLSAgICAgICAgCisKICAgICAgICAgKEJvdW5jaW5nQ2FudmFzU2hhcGVz
U3RhZ2UpOiBBIGNvbmNyZXRlIHN1Yi1jbGFzcyBvZiBCb3VuY2luZ0NhbnZhc1BhcnRpY2xlIGZv
ciBhbmltYXRpbmcgY2FudmFzIHNoYXBlcy4KICAgICAgICAgKEJvdW5jaW5nQ2FudmFzU2hhcGVz
U3RhZ2UucHJvdG90eXBlLmNyZWF0ZVBhcnRpY2xlKTogQ3JlYXRlcyBhIHBhcnRpY2xlIG9mIHR5
cGUgQm91bmNpbmdDYW52YXNTaGFwZS4KLSAgICAgICAgCisKICAgICAgICAgKEJvdW5jaW5nQ2Fu
dmFzU2hhcGVzQmVuY2htYXJrKTogQSBjb25jcmV0ZSBzdWItY2xhc3Mgb2YgQm91bmNpbmdDYW52
YXNQYXJ0aWNsZXNCZW5jaG1hcmsgZm9yIGFuaW1hdGluZyBjYW52YXMgc2hhcGVzLgogICAgICAg
ICAoQm91bmNpbmdDYW52YXNTaGFwZXNCZW5jaG1hcmsucHJvdG90eXBlLmNyZWF0ZVN0YWdlKTog
Q3JlYXRlcyBhIHN0YWdlIG9mIHR5cGUgQm91bmNpbmdDYW52YXNTaGFwZXNTdGFnZS4KICAgICAg
ICAgKHdpbmRvdy5iZW5jaG1hcmtDbGllbnQuY3JlYXRlKTogQ3JlYXRlcyBhIGJlbmNobWFyayBv
ZiB0eXBlIEJvdW5jaW5nQ2FudmFzU2hhcGVzQmVuY2htYXJrLgpAQCAtMjAxNCwxMCArMjA0Miwx
MCBAQAogICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL3Jlc291
cmNlcy9ib3VuY2luZy1jYW52YXMtaW1hZ2VzLmpzOiBBZGRlZC4KICAgICAgICAgKEJvdW5jaW5n
Q2FudmFzSW1hZ2UpOiBBIGNvbmNyZXRlIHN1Yi1jbGFzcyBvZiBCb3VuY2luZ0NhbnZhc1BhcnRp
Y2xlIGZvciBhbmltYXRpbmcgY2FudmFzIGltYWdlcy4KICAgICAgICAgKEJvdW5jaW5nQ2FudmFz
SW1hZ2UucHJvdG90eXBlLl9kcmF3KTogRHJhd3MgYW4gaW1hZ2Ugb24gdGhlIGNvbnRleHQgb2Yg
YSBjYW52YXMuCi0gICAgICAgIAorCiAgICAgICAgIChCb3VuY2luZ0NhbnZhc0ltYWdlc1N0YWdl
KTogQSBjb25jcmV0ZSBzdWItY2xhc3Mgb2YgQm91bmNpbmdDYW52YXNQYXJ0aWNsZXNCZW5jaG1h
cmsgZm9yIGFuaW1hdGluZyBjYW52YXMgaW1hZ2VzLgogICAgICAgICAoQm91bmNpbmdDYW52YXNJ
bWFnZXNTdGFnZS5wcm90b3R5cGUuY3JlYXRlUGFydGljbGUpOiBDcmVhdGVzIGEgcGFydGljbGUg
b2YgdHlwZSBCb3VuY2luZ0NhbnZhc0ltYWdlLgotICAgICAgICAKKwogICAgICAgICAoQm91bmNp
bmdDYW52YXNJbWFnZXNCZW5jaG1hcmspOiBBIGNvbmNyZXRlIHN1Yi1jbGFzcyBvZiBCb3VuY2lu
Z0NhbnZhc1BhcnRpY2xlc0JlbmNobWFyayBmb3IgYW5pbWF0aW5nIGNhbnZhcyBpbWFnZXMuCiAg
ICAgICAgIChCb3VuY2luZ0NhbnZhc0ltYWdlc0JlbmNobWFyay5wcm90b3R5cGUuY3JlYXRlU3Rh
Z2UpOiBDcmVhdGVzIGEgc3RhZ2Ugb2YgdHlwZSBCb3VuY2luZ0NhbnZhc0ltYWdlc1N0YWdlLgog
ICAgICAgICAod2luZG93LmJlbmNobWFya0NsaWVudC5jcmVhdGUpOiBDcmVhdGVzIGEgYmVuY2ht
YXJrIG9mIHR5cGUgQm91bmNpbmdDYW52YXNJbWFnZXNCZW5jaG1hcmsuCkBAIC0yMDM4LDIyICsy
MDY2LDIyIEBACiAgICAgICAgIChCb3VuY2luZ1N2Z1NoYXBlKTogQSBjb25jcmV0ZSBzdWItY2xh
c3Mgb2YgQm91bmNpbmdTVkdQYXJ0aWNsZSBmb3IgYW5pbWF0aW5nIFNWRyBzaGFwZXMuCiAgICAg
ICAgIChCb3VuY2luZ1N2Z1NoYXBlLnByb3RvdHlwZS5fY3JlYXRlU2hhcGUpOiBDcmVhdGVzIGFu
IFNWRyBzaGFwZS4KICAgICAgICAgKEJvdW5jaW5nU3ZnU2hhcGUucHJvdG90eXBlLl9hcHBseUZp
bGwpOiBBcHBsaWVzIHRoZSBzZWxlY3RlZCBmaWxsIHN0eWxlIHRvIHRoZSBTVkcgc2hhcGUuCi0g
ICAgICAgIAorCiAgICAgICAgIChCb3VuY2luZ1N2Z1NoYXBlc1N0YWdlKTogQSBjb25jcmV0ZSBz
dWItY2xhc3Mgb2YgQm91bmNpbmdTdmdQYXJ0aWNsZXNTdGFnZSBmb3IgYW5pbWF0aW5nIFNWRyBz
aGFwZXMuCiAgICAgICAgIChCb3VuY2luZ1N2Z1NoYXBlc1N0YWdlLnByb3RvdHlwZS5jcmVhdGVH
cmFkaWVudCk6IENyZWF0ZXMgYW4gU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LgogICAgICAgICAo
Qm91bmNpbmdTdmdTaGFwZXNTdGFnZS5wcm90b3R5cGUuY3JlYXRlUGFydGljbGUpOiBDcmVhdGVz
IGEgcGFydGljbGUgb2YgdHlwZSBCb3VuY2luZ1N2Z1NoYXBlLgogICAgICAgICAoQm91bmNpbmdT
dmdTaGFwZXNTdGFnZS5wcm90b3R5cGUucGFydGljbGVXaWxsQmVSZW1vdmVkKTogRW5zdXJlcyB0
aGUgYXR0YWNoZWQgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50IGlzIHJlbW92ZWQgZnJvbSB0aGUg
U1ZHRGVmc0VsZW1lbnQuCi0gICAgICAgIAorCiAgICAgICAgIChCb3VuY2luZ1N2Z1NoYXBlc0Jl
bmNobWFyayk6IEEgY29uY3JldGUgc3ViLWNsYXNzIG9mIEJvdW5jaW5nUGFydGljbGVzQmVuY2ht
YXJrIGZvciBhbmltYXRpbmcgU1ZHIGltYWdlcy4KICAgICAgICAgKEJvdW5jaW5nU3ZnU2hhcGVz
QmVuY2htYXJrLnByb3RvdHlwZS5jcmVhdGVTdGFnZSk6IENyZWF0ZXMgYSBzdGFnZSBvZiB0eXBl
IEJvdW5jaW5nU3ZnU2hhcGVzU3RhZ2UuCiAgICAgICAgICh3aW5kb3cuYmVuY2htYXJrQ2xpZW50
LmNyZWF0ZSk6IENyZWF0ZXMgYSBiZW5jaG1hcmsgb2YgdHlwZSBCb3VuY2luZ1N2Z1NoYXBlc0Jl
bmNobWFyay4KLSAgICAgICAgCisKICAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5n
LXBhcnRpY2xlcy9yZXNvdXJjZXMvYm91bmNpbmctc3ZnLWltYWdlcy5qczogQWRkZWQuCiAgICAg
ICAgIChCb3VuY2luZ1N2Z0ltYWdlKTogQSBjb25jcmV0ZSBzdWItY2xhc3Mgb2YgQm91bmNpbmdT
VkdQYXJ0aWNsZSBmb3IgYW5pbWF0aW5nIFNWRyBpbWFnZXMuCi0gICAgICAgIAorCiAgICAgICAg
IChCb3VuY2luZ1N2Z0ltYWdlc1N0YWdlKTogQSBjb25jcmV0ZSBzdWItY2xhc3Mgb2YgQm91bmNp
bmdTVkdQYXJ0aWNsZXNCZW5jaG1hcmsgZm9yIGFuaW1hdGluZyBTVkcgaW1hZ2VzLgogICAgICAg
ICAoQm91bmNpbmdTdmdJbWFnZXNTdGFnZS5wcm90b3R5cGUuY3JlYXRlUGFydGljbGUpOiBDcmVh
dGVzIGEgcGFydGljbGUgb2YgdHlwZSBCb3VuY2luZ1N2Z0ltYWdlLgotICAgICAgICAKKwogICAg
ICAgICAoQm91bmNpbmdTdmdJbWFnZXNCZW5jaG1hcmspOiBBIGNvbmNyZXRlIHN1Yi1jbGFzcyBv
ZiBCb3VuY2luZ1BhcnRpY2xlc0JlbmNobWFyayBmb3IgYW5pbWF0aW5nIFNWRyBpbWFnZXMuCiAg
ICAgICAgIChCb3VuY2luZ1N2Z0ltYWdlc0JlbmNobWFyay5wcm90b3R5cGUuY3JlYXRlU3RhZ2Up
OiBDcmVhdGVzIGEgc3RhZ2Ugb2YgdHlwZSBCb3VuY2luZ1N2Z0ltYWdlc1N0YWdlLgogICAgICAg
ICAod2luZG93LmJlbmNobWFya0NsaWVudC5jcmVhdGUpOiBDcmVhdGVzIGEgYmVuY2htYXJrIG9m
IHR5cGUgQm91bmNpbmdTdmdJbWFnZXNCZW5jaG1hcmsuCkBAIC0yMDYxLDUyICsyMDg5LDUyIEBA
CiAgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9leGFtcGxlczogQWRkZWQuCiAgICAgICAgICog
QW5pbW9tZXRlci90ZXN0cy9leGFtcGxlcy9jYW52YXMtZWxlY3Ryb25zLmh0bWw6IEFkZGVkLgog
ICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvZXhhbXBsZXMvY2FudmFzLXN0YXJzLmh0bWw6IEFk
ZGVkLgotICAgICAgICBFeGFtcGxlcyB0ZXN0IHBhZ2VzLiAKLSAgICAgICAgCisgICAgICAgIEV4
YW1wbGVzIHRlc3QgcGFnZXMuCisKICAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL2V4YW1wbGVz
L3Jlc291cmNlczogQWRkZWQuCiAgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9leGFtcGxlcy9y
ZXNvdXJjZXMvY2FudmFzLWVsZWN0cm9ucy5qczogQWRkZWQuCiAgICAgICAgIChDYW52YXNFbGVj
dHJvbik6IEFuIG9iamVjdCB3aGljaCBkcmF3cyBhbmQgYW5pbWF0ZSBhIGVsZWN0cm9uIG9iamVj
dCBvbiBhIGNhbnZhcyBzdGFnZS4KICAgICAgICAgKENhbnZhc0VsZWN0cm9uLnByb3RvdHlwZS5f
ZHJhdyk6IERyYXdzIHRoZSBlbGVjdHJvbiBvYmplY3QuCiAgICAgICAgIChDYW52YXNFbGVjdHJv
bi5wcm90b3R5cGUuYW5pbWF0ZSk6IEFuaW1hdGVzIHRoZSBlbGVjdHJvbiBvYmplY3QuCi0gICAg
ICAgIAorCiAgICAgICAgIChDYW52YXNFbGVjdHJvbnNTdGFnZSk6IEEgY29uY3JldGUgc3ViLWNs
YXNzIG9mIFN0YWdlIGZvciBhbmltYXRpbmcgZWxlY3Ryb25zLgogICAgICAgICAoQ2FudmFzRWxl
Y3Ryb25zU3RhZ2UucHJvdG90eXBlLnR1bmUpOiBDaGFuZ2VzIHRoZSB0ZXN0IGJ5IGFkZGluZyBv
ciByZW1vdmluZyBlbGVtZW50cy4KICAgICAgICAgKENhbnZhc0VsZWN0cm9uc1N0YWdlLnByb3Rv
dHlwZS5hbmltYXRlKTogQW5pbWF0ZXMgdGhlIHRlc3QgZWxlbWVudHMuCi0gICAgICAgIAorCiAg
ICAgICAgIChDYW52YXNFbGVjdHJvbnNBbmltYXRvcik6IEEgY29uY3JldGUgc3ViLWNsYXNzIG9m
IFN0YWdlQW5pbWF0b3IgZm9yIGFuaW1hdGluZyBjYW52YXMgZWxlY3Ryb25zLgogICAgICAgICAo
Q2FudmFzRWxlY3Ryb25zQW5pbWF0b3IucHJvdG90eXBlLmFuaW1hdGUpOiBPdmVycmlkZXMgdGhl
IGJhc2UgY2xhc3MgbWV0aG9kIHRvIGNsZWFyIHRoZSBjYW52YXMgYmVmb3JlIHJlZHJhd2luZyB0
aGUgc3RhZ2UuCi0gICAgICAgIAorCiAgICAgICAgIChDYW52YXNFbGVjdHJvbnNCZW5jaG1hcmsp
OiBBIGNvbmNyZXRlIHN1Yi1jbGFzcyBvZiBTdGFnZUJlbmNobWFyayBmb3IgYW5pbWF0aW5nIGVs
ZWN0cm9ucy4KICAgICAgICAgKENhbnZhc0VsZWN0cm9uc0JlbmNobWFyay5wcm90b3R5cGUuY3Jl
YXRlU3RhZ2UpOiBDcmVhdGVzIGEgc3RhZ2Ugb2YgQ2FudmFzRWxlY3Ryb25zU3RhZ2UuCiAgICAg
ICAgIChDYW52YXNFbGVjdHJvbnNCZW5jaG1hcmsucHJvdG90eXBlLmNyZWF0ZUFuaW1hdG9yKTog
Q3JlYXRlcyBhbiBhbmltYXRvciBvZiB0eXBlIENhbnZhc0VsZWN0cm9uc0FuaW1hdG9yLgogICAg
ICAgICAod2luZG93LmJlbmNobWFya0NsaWVudC5jcmVhdGUpOiBDcmVhdGVzIGEgYmVuY2htYXJr
IG9mIHR5cGUgQ2FudmFzRWxlY3Ryb25zQmVuY2htYXJrLgotICAgICAgICAKKwogICAgICAgICAq
IEFuaW1vbWV0ZXIvdGVzdHMvZXhhbXBsZXMvcmVzb3VyY2VzL2NhbnZhcy1zdGFycy5qczogQWRk
ZWQuCiAgICAgICAgIChDYW52YXNTdGFyKTogQW4gb2JqZWN0IHdoaWNoIGRyYXdzIGFuZCBhbmlt
YXRlIGEgc3RhciBvYmplY3Qgb24gYSBjYW52YXMgc3RhZ2UuCiAgICAgICAgIChDYW52YXNTdGFy
LnByb3RvdHlwZS5fZHJhdyk6IERyYXdzIHRoZSBzdGFyIG9iamVjdC4KICAgICAgICAgKENhbnZh
c1N0YXIucHJvdG90eXBlLmFuaW1hdGUpOiBBbmltYXRlcyB0aGUgc3RhciBvYmplY3QuCi0gICAg
ICAgIAorCiAgICAgICAgIChDYW52YXNTdGFyc1N0YWdlKTogQSBjb25jcmV0ZSBzdWItY2xhc3Mg
b2YgU3RhZ2UgZm9yIGFuaW1hdGluZyBzdGFycy4KICAgICAgICAgKENhbnZhc1N0YXJzU3RhZ2Uu
cHJvdG90eXBlLnR1bmUpOiBDaGFuZ2VzIHRoZSB0ZXN0IGJ5IGFkZGluZyBvciByZW1vdmluZyBl
bGVtZW50cy4KICAgICAgICAgKENhbnZhc1N0YXJzU3RhZ2UucHJvdG90eXBlLmFuaW1hdGUpOiBB
bmltYXRlcyB0aGUgdGVzdCBlbGVtZW50cy4KLSAgICAgICAgCisKICAgICAgICAgKENhbnZhc1N0
YXJzQW5pbWF0b3IpOiBBIGNvbmNyZXRlIHN1Yi1jbGFzcyBvZiBTdGFnZUFuaW1hdG9yIGZvciBh
bmltYXRpbmcgY2FudmFzIHN0YXJzLgogICAgICAgICAoQ2FudmFzU3RhcnNBbmltYXRvci5wcm90
b3R5cGUuYW5pbWF0ZSk6IE92ZXJyaWRlcyB0aGUgYmFzZSBjbGFzcyBtZXRob2QgdG8gY2xlYXIg
dGhlIGNhbnZhcyBiZWZvcmUgcmVkcmF3aW5nIHRoZSBzdGFnZS4KLSAgICAgICAgCisKICAgICAg
ICAgKENhbnZhc1N0YXJzQmVuY2htYXJrKTogQSBjb25jcmV0ZSBzdWItY2xhc3Mgb2YgQmVuY2ht
YXJrIGZvciBhbmltYXRpbmcgc3RhcnMuCiAgICAgICAgIChDYW52YXNTdGFyc0JlbmNobWFyay5w
cm90b3R5cGUuY3JlYXRlU3RhZ2UpOiBDcmVhdGVzIGEgc3RhZ2Ugb2YgQ2FudmFzU3RhcnNTdGFn
ZS4KICAgICAgICAgKENhbnZhc1N0YXJzQmVuY2htYXJrLnByb3RvdHlwZS5jcmVhdGVBbmltYXRv
cik6IENyZWF0ZXMgYW4gYW5pbWF0b3Igb2YgdHlwZSBDYW52YXNTdGFyc0FuaW1hdG9yLgogICAg
ICAgICAod2luZG93LmJlbmNobWFya0NsaWVudC5jcmVhdGUpOiBDcmVhdGVzIGEgYmVuY2htYXJr
IG9mIHR5cGUgQ2FudmFzU3RhcnNCZW5jaG1hcmsuCiAKICAgICAgICAgKiBBbmltb21ldGVyL3Rl
c3RzL3Jlc291cmNlczogQWRkZWQuCi0gICAgICAgIFRoaXMgZGlyZWN0b3J5IGluY2x1ZGVzIHRo
ZSBzY3JpcHQgd2hpY2ggaXMgcmVxdWlyZWQgdG8gcnVuIGFuIGFkYXB0aXZlIAorICAgICAgICBU
aGlzIGRpcmVjdG9yeSBpbmNsdWRlcyB0aGUgc2NyaXB0IHdoaWNoIGlzIHJlcXVpcmVkIHRvIHJ1
biBhbiBhZGFwdGl2ZQogICAgICAgICBncmFwaGljcyBiZW5jaG1hcmsuIEZyb20gYW4gZW1wdHkg
dGVzdCBwYWdlLCB0aGUgc2V0IG9mIGNsYXNzZXMgaW4gdGhpcwogICAgICAgICBkaXJlY3Rvcnkg
YXJlIHJlc3BvbnNpYmxlIGZvciBtZWFzdXJpbmcgdGhlIGN1cnJlbnQgZnJhbWUgcmF0ZSBhbmQK
ICAgICAgICAgY2hhbmdpbmcgdGhlIHRlc3QgdG8gcmVhY2ggYSBkZXNpcmVkIEZQUy4gSXQga2Vl
cHMgYXNraW5nIHRoZSB0ZXN0IHBhZ2UKICAgICAgICAgdG8gdHVuZSBpdHNlbGYgYnkgYSBjZXJ0
YWluIHZhbHVlIHRvIGluY3JlYXNlIG9yIGRlY3JlYXNlIHRoZSBmcmFtZSByYXRlLgogICAgICAg
ICBJdCdzIGFsc28gcmVzcG9uc2libGUgZm9yIHNhbXBsaW5nIHRoZSB0ZXN0IHN0YXRlIGFuZCB0
aGUgY29ycmVzcG9uZGluZwogICAgICAgICBmcmFtZSByYXRlLgotICAgICAgICAKKwogICAgICAg
ICAqIEFuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL21haW4uanM6IEFkZGVkLgogICAgICAgICAo
QmVuY2htYXJrU3RhdGUpOiBUcmFja3MgdGhlIHN0YXRlIG9mIHRoZSBiZW5jaG1hcmsgdGVzdC4K
ICAgICAgICAgKEJlbmNobWFya1N0YXRlLnByb3RvdHlwZS5fdGltZU9mZnNldCk6IFJldHVybnMg
dGhlIHRpbWVPZmZzZXQgb2YgYSBzdGFnZS4KQEAgLTIxMTYsMTIgKzIxNDQsMTIgQEAKICAgICAg
ICAgKEJlbmNobWFya1N0YXRlLnByb3RvdHlwZS5jdXJyZW50U3RhZ2UpOiBSZXR1cm5zIHRoZSBj
dXJyZW50IHN0YWdlIG9mIHRoZSBiZW5jaG1hcmsuCiAgICAgICAgIChCZW5jaG1hcmtTdGF0ZS5w
cm90b3R5cGUuY3VycmVudE1lc3NhZ2UpOiBSZXR1cm5zIHRoZSBtZXNzYWdlIG9mIHRoZSBjdXJy
ZW50IHN0YWdlIGFuZCB0aW1lT2Zmc2V0LgogICAgICAgICAoQmVuY2htYXJrU3RhdGUucHJvdG90
eXBlLmN1cnJlbnRQcm9ncmVzcyk6IFJldHVybnMgYSBwZXJjZW50YWdlIG9mIGhvdyBtdWNoIHRo
ZSBiZW5jaG1hcmsgaXMgcnVubmluZy4KLSAgICAgICAgCisKICAgICAgICAgKEFuaW1hdG9yKTog
TWFuYWdlcyBhbmltYXRpbmcgdGhlIHRlc3QuCiAgICAgICAgIChBbmltYXRvci5wcm90b3R5cGUu
c3RhcnQpOiBDYWxsZWQgaWYgYW5pbWF0aW5nIHVzaW5nIHNldEludGVydmFsIGlzIHJlcXVlc3Rl
ZC4KLSAgICAgICAgKEFuaW1hdG9yLnByb3RvdHlwZS50aW1lRGVsdGEpOiBSZXR1cm5zIHRoZSBj
dXJyZW50IHRpbWVEZWx0YSAKKyAgICAgICAgKEFuaW1hdG9yLnByb3RvdHlwZS50aW1lRGVsdGEp
OiBSZXR1cm5zIHRoZSBjdXJyZW50IHRpbWVEZWx0YQogICAgICAgICAoQW5pbWF0b3IucHJvdG90
eXBlLmFuaW1hdGUpOiBNYW5hZ2VzIHRoZSB0ZXN0IGFuaW1hdGlvbi4KLSAgICAgICAgKEFuaW1h
dG9yLnByb3RvdHlwZS5hbmltYXRlTG9vcCk6IENhbGxlZCBpZiBhbmltYXRpbmcgdXNpbmcgcmVx
dWVzdEFuaW1hdGlvbkZyYW1lIGlzIHJlcXVlc3RlZC4gCisgICAgICAgIChBbmltYXRvci5wcm90
b3R5cGUuYW5pbWF0ZUxvb3ApOiBDYWxsZWQgaWYgYW5pbWF0aW5nIHVzaW5nIHJlcXVlc3RBbmlt
YXRpb25GcmFtZSBpcyByZXF1ZXN0ZWQuCiAKICAgICAgICAgKEJlbmNobWFyayk6IE1hbmFnZXMg
cnVubmluZyB0aGUgdGVzdCBiZW5jaG1hcmsgYW5kIHJlY29yZGluZyB0aGUgc2FtcGxlZCBkYXRh
LgogICAgICAgICAoQmVuY2htYXJrLnByb3RvdHlwZS5zdGFydCk6IFN0YXJ0cyB0aGUgYmVuY2ht
YXJrLgpAQCAtMjEzNSwxMSArMjE2MywxMSBAQAogICAgICAgICAoTWF0cml4KTogQSBtYXRyaXgg
b2JqZWN0LgogICAgICAgICAoVmVjdG9yMyk6IEEgdmVjdG9yIG9mIHNpemUgMyBvYmplY3QuCiAg
ICAgICAgIChNYXRyaXgzKTogQSBtYXRyaXggb2Ygc2l6ZSAzeDMgb2JqZWN0LgotICAgICAgICAK
KwogICAgICAgICAoUElEQ29udHJvbGxlcik6IENsb3NlZC1sb29wIGNvbnRyb2xsZXIgZm9yIGEg
c2V0LXBvaW50IHkuCiAgICAgICAgIChQSURDb250cm9sbGVyLnByb3RvdHlwZS5fc2F0KTogTGlt
aXRzIHRoZSBvdXRwdXQgdG8gYSBjZXJ0YWluIHJhbmdlLgogICAgICAgICAoUElEQ29udHJvbGxl
ci5wcm90b3R5cGUudHVuZSk6IEdpdmVuIHRoZSBjdXJyZW50IG91dHB1dCBvZiBhIHN5c3RlbSwg
aXQgcHJvZHVjZXMgYSBuZXcgcGlkIHZhbHVlIGZvciB0dW5pbmcgaXQuCi0gICAgICAgIAorCiAg
ICAgICAgIChLYWxtYW5Fc3RpbWF0b3IpOiBJbXBsZW1lbnQgS2FsbWFuIGZpbHRlciB0byBnZXQg
YW4gZXN0aW1hdGUgZm9yIGEgc2FtcGxlZCBkYXRhIHBvaW50LgogICAgICAgICAoS2FsbWFuRXN0
aW1hdG9yLnByb3RvdHlwZS5lc3RpbWF0ZSk6IFJldHVybnMgYW4gZXN0aW1hdGUgZm9yIGZvciBh
IHNhbXBsZWQgZGF0YSBwb2ludC4KIApAQCAtMjE1MSw3ICsyMTc5LDcgQEAKICAgICAgICAgKHdp
bmRvdy5VdGlsaXRpZXMuY29weU9iamVjdCk6IENvcGllcyB0aGUgYXR0cmlidXRlcyBhbmQgdGhl
aXIgdmFsdWVzIG9mIGFuIG9iamVjdCB0byBhIG5ldyBvYmplY3QuCiAgICAgICAgICh3aW5kb3cu
VXRpbGl0aWVzLm1lcmdlT2JqZWN0cyk6IENvcGllcyB0aGUgYXR0cmlidXRlcyBhbmQgdGhlaXIg
dmFsdWVzIG9mIHR3byBvYmplY3RzIHRvIGEgbmV3IG9iamVjdC4KICAgICAgICAgKHdpbmRvdy5V
dGlsaXRpZXMuY3JlYXRlU3ZnRWxlbWVudCk6IENyZWF0ZXMgYW4gU1ZHRWxlbWVudCBnaXZlbiBp
dHMgbmFtZSBhbmQgaXRzIGF0dHJpYnV0ZXMuCi0gICAgICAgIAorCiAgICAgICAgICogQW5pbW9t
ZXRlci90ZXN0cy9yZXNvdXJjZXMvc3RhZ2UuY3NzOiBBZGRlZC4KICAgICAgICAgKiBBbmltb21l
dGVyL3Rlc3RzL3Jlc291cmNlcy9zdGFnZS5qczogQWRkZWQuCiAgICAgICAgIChSb3RhdGVyKTog
TWFuYWdlcyByb3RhdGluZyBhbiBhbmdsZSB3aXRoaW4gYSBmaXhlZCB0aW1lIGludGVydmFsLgpA
QCAtMjE2MCw3ICsyMTg4LDcgQEAKICAgICAgICAgKFJvdGF0ZXIucHJvdG90eXBlLmRlZ3JlZSk6
IFJldHVybnMgdGhlIGN1cnJlbnQgcm90YXRpbmcgZGVncmVlLgogICAgICAgICAoUm90YXRlci5w
cm90b3R5cGUucm90YXRlWik6IFJldHVybnMgQ1NTIGZvcm1hdHRlZCB0cmFuc2Zvcm0gcm90YXRl
WigpIHN0cmluZyBmb3IgdGhlIGN1cnJlbnQgZGVncmVlLgogICAgICAgICAoUm90YXRlci5wcm90
b3R5cGUucm90YXRlKTogUmV0dXJucyBTVkcgZm9ybWF0dGVkIHRyYW5zZm9ybSByb3RhdGUoKSBz
dHJpbmcgZm9yIHRoZSBjdXJyZW50IGRlZ3JlZS4KLSAgICAgICAgCisKICAgICAgICAgKFN0YWdl
KTogQSBiYXNlIGNsYXNzIGZvciBtYW5hZ2luZyB0aGUgdGVzdCBjb21wbGV4aXR5IGFuZCB0ZXN0
IGFuaW1hdGlvbi4KICAgICAgICAgKFN0YWdlLnByb3RvdHlwZS5nZXQgc2l6ZSk6IFJldHVybnMg
dGhlIHNpemUgb2YgdGhlIHN0YWdlIGV4Y2x1ZGluZyB0aGUgQ1NTIHBhZGRpbmcuCiAgICAgICAg
IChTdGFnZS5wcm90b3R5cGUucmFuZG9tKTogUmV0dXJucyBhIHJhbmRvbSBmbG9hdC4KQEAgLTIx
NzQsMjEgKzIyMDIsMjEgQEAKICAgICAgICAgKFN0YWdlLnByb3RvdHlwZS50dW5lKTogQSBub3Qt
aW1wbGVtZW50ZWQgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uLgogICAgICAgICAoU3RhZ2UucHJv
dG90eXBlLmFuaW1hdGUpOiBBIG5vdC1pbXBsZW1lbnRlZCB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rp
b24uCiAgICAgICAgIChTdGFnZS5wcm90b3R5cGUuY2xlYXIpOiBDbGVhcnMgdGhlIHN0YWdlIGZy
b20gYWxsIGl0cyBhbmltYXRpb24gZWxlbWVudHMuCi0gICAgICAgIAorCiAgICAgICAgIChTdGFn
ZUFuaW1hdG9yKTogQSBiYXNlIGNsYXNzIGZvciB0aGUgc3RhZ2UtYmFzZWQgYW5pbWF0b3JzLgog
ICAgICAgICAoU3RhZ2VBbmltYXRvci5wcm90b3R5cGUuYW5pbWF0ZSk6IENhbGxzIEFuaW1hdG9y
LmFuaW1hdGUoKSB3aGljaCB1cGRhdGVzIHRoZSB0ZXN0IHBhZ2UgYW5kIHRoZW4gY2FsbHMgU3Rh
Z2UuYW5pbWF0ZSgpIHRvIGZvcmNlIHJlZHJhdy4KLSAgICAgICAgCisKICAgICAgICAgKFN0YWdl
QmVuY2htYXJrKTogQSBiYXNlIGNsYXNzIGZvciB0aGUgc3RhZ2UtYmFzZWQgYmVuY2htYXJrcy4K
ICAgICAgICAgKFN0YWdlQmVuY2htYXJrLnByb3RvdHlwZS5jcmVhdGVTdGFnZSk6IENyZWF0ZXMg
dGhlIGRlZmF1bHQgc3RhZ2UuCiAgICAgICAgIChTdGFnZUJlbmNobWFyay5wcm90b3R5cGUuY3Jl
YXRlQW5pbWF0b3IpOiBDcmVhdGVzIHRoZSBkZWZhdWx0IGFuaW1hdG9yLgogICAgICAgICAoU3Rh
Z2VCZW5jaG1hcmsucHJvdG90eXBlLnR1bmUpOiBEZWxlZ2F0ZXMgdGhlIGNhbGwgdG8gc3RhZ2Uu
CiAgICAgICAgIChTdGFnZUJlbmNobWFyay5wcm90b3R5cGUuY2xlYXIpOiBEZWxlZ2F0ZXMgdGhl
IGNhbGwgdG8gc3RhZ2UuCiAgICAgICAgIChTdGFnZUJlbmNobWFyay5wcm90b3R5cGUuc2hvd1Jl
c3VsdHMpOiBTaG93cyB0aGUgcmVzdWx0cy9wcm9ncmVzcyB0aHJvdWdoIGl0cyByZWNvcmRUYWJs
ZSBhbmQgcHJvZ3Jlc3NCYXIuCi0gICAgICAgIAorCiAgICAgICAgICogQW5pbW9tZXRlci90ZXN0
cy9yZXNvdXJjZXMveWluLXlhbmcucG5nOiBBZGRlZC4KICAgICAgICAgKiBBbmltb21ldGVyL3Rl
c3RzL3Jlc291cmNlcy95aW4teWFuZy5zdmc6IEFkZGVkLgogICAgICAgICBUaGVzZSBpbWFnZXMg
YXJlIHNoYXJlZCBhbW9uZyBhbGwgdGhlIHRlc3RzLgotICAgICAgICAKKwogICAgICAgICAqIEFu
aW1vbWV0ZXIvdGVzdHMvdGVtcGxhdGU6IEFkZGVkLgogICAgICAgICAqIEFuaW1vbWV0ZXIvdGVz
dHMvdGVtcGxhdGUvcmVzb3VyY2VzOiBBZGRlZC4KICAgICAgICAgVGhpcyBkaXJlY3RvcnkgaW5j
bHVkZXMgdGVtcGxhdGUgdGVzdHMgd2hpY2ggZG8gbm90aGluZy4gVGhleSBjYW4gYmUgdXNlZApA
QCAtMjIwMCwxNiArMjIyOCwxNiBAQAogICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvdGVtcGxh
dGUvdGVtcGxhdGUtc3ZnLmh0bWw6IEFkZGVkLgogICAgICAgICBUZW1wbGF0ZSB0ZXN0IHBhZ2Vz
LiBUaGV5IGNhbiBiZSB1c2VkIGFzIHRoZXkgYXJlLiBDU1MgYXR0cmlidXRlcyBvciBoaWRkZW4K
ICAgICAgICAgZWxlbWVudHMgY2FuIGJlIGFkZGVkIHRvIHRoZXNlIGRlcml2ZWQgdGVzdCBwYWdl
cyBpZiBuZWVkZWQuCi0gICAgICAgIAorCiAgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy90ZW1w
bGF0ZS9yZXNvdXJjZXMvdGVtcGxhdGUtY3NzLmpzOiBBZGRlZC4KLSAgICAgICAgCisKICAgICAg
ICAgKFRlbXBsYXRlQ3NzU3RhZ2UpOiBBIHN0YWdlIHRvIGNyZWF0ZSBhbmQgYW5pbWF0ZSBIVE1M
RWxlbWVudHMuCiAgICAgICAgIChUZW1wbGF0ZUNzc1N0YWdlLnByb3RvdHlwZS50dW5lKTogQ2hh
bmdlcyB0aGUgdGVzdCBieSBhZGRpbmcgb3IgcmVtb3ZpbmcgZWxlbWVudHMuCiAgICAgICAgIChU
ZW1wbGF0ZUNzc1N0YWdlLnByb3RvdHlwZS5hbmltYXRlKTogQW5pbWF0ZXMgdGhlIHRlc3QgZWxl
bWVudHMuCi0gICAgICAgIChUZW1wbGF0ZUNzc0JlbmNobWFyayk6IAorICAgICAgICAoVGVtcGxh
dGVDc3NCZW5jaG1hcmspOgogICAgICAgICAoVGVtcGxhdGVDc3NCZW5jaG1hcmsucHJvdG90eXBl
LmNyZWF0ZVN0YWdlKTogQ3JlYXRlcyB0aGUgdGVzdCBzdGFnZS4KICAgICAgICAgKHdpbmRvdy5i
ZW5jaG1hcmtDbGllbnQuY3JlYXRlKTogQ3JlYXRlcyBhIGJlbmNobWFyayBvZiB0eXBlIFRlbXBs
YXRlQ3NzQmVuY2htYXJrLgotICAgICAgICAKKwogICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMv
dGVtcGxhdGUvcmVzb3VyY2VzL3RlbXBsYXRlLWNhbnZhcy5qczogQWRkZWQuCiAgICAgICAgIChU
ZW1wbGF0ZUNhbnZhc09iamVjdCk6CiAgICAgICAgIChUZW1wbGF0ZUNhbnZhc09iamVjdC5wcm90
b3R5cGUuX2RyYXcpOiBEcmF3cyB0aGUgb2JqZWN0cyBvbiB0aGUgY2FudmFzIGNvbnRleHQuCkBA
IC0yMjE4LDI2ICsyMjQ2LDI2IEBACiAgICAgICAgIChUZW1wbGF0ZUNhbnZhc1N0YWdlLnByb3Rv
dHlwZS50dW5lKTogaGFuZ2VzIHRoZSB0ZXN0IGJ5IGFkZGluZyBvciByZW1vdmluZyBlbGVtZW50
cy4KICAgICAgICAgKFRlbXBsYXRlQ2FudmFzU3RhZ2UucHJvdG90eXBlLmFuaW1hdGUpOiAgQW5p
bWF0ZXMgdGhlIHRlc3QgZWxlbWVudHMuCiAgICAgICAgIChUZW1wbGF0ZUNhbnZhc0FuaW1hdG9y
LnByb3RvdHlwZS5hbmltYXRlKTogU3RhcnRzIHRoZSBhbmltYXRpb24gZXZlcnkgZnJhbWUuCi0g
ICAgICAgIChUZW1wbGF0ZUNhbnZhc0JlbmNobWFyayk6IAorICAgICAgICAoVGVtcGxhdGVDYW52
YXNCZW5jaG1hcmspOgogICAgICAgICAoVGVtcGxhdGVDYW52YXNCZW5jaG1hcmsucHJvdG90eXBl
LmNyZWF0ZVN0YWdlKTogQ3JlYXRlcyBhIHN0YWdlIG9mIHR5cGUgVGVtcGxhdGVDYW52YXNTdGFn
ZS4KICAgICAgICAgKFRlbXBsYXRlQ2FudmFzQmVuY2htYXJrLnByb3RvdHlwZS5jcmVhdGVBbmlt
YXRvcik6IENyZWF0ZXMgYSBhbmltYXRvciBvZiB0eXBlIFRlbXBsYXRlQ2FudmFzQW5pbWF0b3Iu
CiAgICAgICAgICh3aW5kb3cuYmVuY2htYXJrQ2xpZW50LmNyZWF0ZSk6IENyZWF0ZXMgYSBiZW5j
aG1hcmsgb2YgdHlwZSBUZW1wbGF0ZUNhbnZhc0JlbmNobWFyay4KLSAgICAgICAgCisKICAgICAg
ICAgKiBBbmltb21ldGVyL3Rlc3RzL3RlbXBsYXRlL3Jlc291cmNlcy90ZW1wbGF0ZS1zdmcuanM6
IEFkZGVkLgogICAgICAgICAoVGVtcGxhdGVTdmdTdGFnZSk6IEEgc3RhZ2UgdG8gY3JlYXRlIGFu
ZCBhbmltYXRlIFNWR0VsZW1lbnRzLgogICAgICAgICAoVGVtcGxhdGVTdmdTdGFnZS5wcm90b3R5
cGUudHVuZSk6IENoYW5nZXMgdGhlIHRlc3QgYnkgYWRkaW5nIG9yIHJlbW92aW5nIGVsZW1lbnRz
LgogICAgICAgICAoVGVtcGxhdGVTdmdTdGFnZS5wcm90b3R5cGUuYW5pbWF0ZSk6IEFuaW1hdGVz
IHRoZSB0ZXN0IGVsZW1lbnRzLgogICAgICAgICAoVGVtcGxhdGVTdmdCZW5jaG1hcmsucHJvdG90
eXBlLmNyZWF0ZVN0YWdlKTogQ3JlYXRlcyBhIHN0YWdlIG9mIHR5cGUgVGVtcGxhdGVTdmdTdGFn
ZS4KICAgICAgICAgKHdpbmRvdy5iZW5jaG1hcmtDbGllbnQuY3JlYXRlKTogQ3JlYXRlcyBhIGJl
bmNobWFyayBvZiB0eXBlIFRlbXBsYXRlU3ZnQmVuY2htYXJrLgotICAgICAgICAKKwogICAgICAg
ICAqIEFuaW1vbWV0ZXIvdGVzdHMvdGV4dDogQWRkZWQuCiAgICAgICAgICogQW5pbW9tZXRlci90
ZXN0cy90ZXh0L3Jlc291cmNlczogQWRkZWQuCiAgICAgICAgIFRoaXMgZGlyZWN0b3J5IGluY2x1
ZGVzIHRoZSB0ZXh0IGFuaW1hdGluZyB0ZXN0cyB3aGljaCBjdXJyZW50bHkgcnVucwogICAgICAg
ICBvbiBDU1Mgc3RhZ2Ugb25seS4KLSAgICAgICAgCisKICAgICAgICAgKiBBbmltb21ldGVyL3Rl
c3RzL3RleHQvbGF5ZXJpbmctdGV4dC5odG1sOiBBZGRlZC4KICAgICAgICAgVGV4dCB0ZXN0IHBh
Z2UuCi0gICAgICAgIAorCiAgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy90ZXh0L3Jlc291cmNl
cy9sYXllcmluZy10ZXh0LmpzOiBBZGRlZC4KICAgICAgICAgKExheWVyaW5nVGV4dFN0YWdlKTog
UmVwcmVzZW50cyB0aGUgY29udGFpbmVyIG9mIGFsbCB0aGUgc3RhY2tlZCB0ZXh0IGxheWVycy4K
ICAgICAgICAgKExheWVyaW5nVGV4dFN0YWdlLnBhcnNlVGV4dEl0ZW0pOiBQYXJzZXMgYSB0ZXh0
SXRlbSB3aGljaCBtYXkgYmUgYW4gb3BlbmluZyB0YWcsIGEgY2xvc2luZyB0YWcgb3IgYSBzZWxm
LWNsb3NpbmcgdGFnLgpAQCAtMjI5MCw3ICsyMzE4LDcgQEAKIAogICAgICAgICAoQWxnb3JpdGht
LmNyZWF0ZU1pbkhlYXApOiBDcmVhdGVzIGEgc2l6ZS1ib3VuZGVkIG1pbi1oZWFwIG9iamVjdC4K
ICAgICAgICAgKEFsZ29yaXRobS5jcmVhdGVNYXhIZWFwKTogQ3JlYXRlcyBhIHNpemUtYm91bmRl
ZCBtYXgtaGVhcCBvYmplY3QuCi0gICAgICAgIAorCiAgICAgICAgICogQW5pbW9tZXRlci9yZXNv
dXJjZXMvZXh0ZW5zaW9ucy5qczogQWRkZWQuCiAgICAgICAgIChQb2ludCk6IFBvaW50IG9iamVj
dCBidXQgY2FuIGJlIHVzZWQgYXMgc2l6ZSBhbHNvLgogICAgICAgICAoUG9pbnQucG9pbnRPbkNp
cmNsZSk6IEdpdmVuLCB0aGUgcmFkaXVzIG9mIHRoZSBjaXJjbGUgYW5kIHRoZSBhbmdsZSBvZiB0
aGUgcG9pbnQsIGl0IHJldHVybnMgYSBwb2ludCBvYmplY3QuCkBAIC0yMzI5LDE0ICsyMzU3LDE0
IEBACiAgICAgICAgIChSZWNvcmRUYWJsZS5wcm90b3R5cGUuX3Nob3dUZXN0KTogU2hvd3MgdGhl
IHJlc3VsdHMgb2YgYSBzaW5nbGUgdGVzdC4KICAgICAgICAgKFJlY29yZFRhYmxlLnByb3RvdHlw
ZS5fc2hvd1N1aXRlKTogU2hvd3MgdGhlIHJlc3VsdHMgb2YgYSBzaW5nbGUgc3VpdGUuCiAgICAg
ICAgIChSZWNvcmRUYWJsZS5wcm90b3R5cGUuc2hvd1JlY29yZCk6IFNob3dzIGEgc2luZ2xlIGl0
ZXJhdGlvbiBmb3IgYSBzaW5nbGUgdGVzdC4KLSAgICAgICAgKFJlY29yZFRhYmxlLnByb3RvdHlw
ZS5zaG93SXRlcmF0aW9ucyk6IFNob3dzIHRoZSByZXN1bHRzIG9mIGFsbCB0aGUgc3VpdGVzIG9m
IHRoZSBpdGVyYXRpb25zLiAKKyAgICAgICAgKFJlY29yZFRhYmxlLnByb3RvdHlwZS5zaG93SXRl
cmF0aW9ucyk6IFNob3dzIHRoZSByZXN1bHRzIG9mIGFsbCB0aGUgc3VpdGVzIG9mIHRoZSBpdGVy
YXRpb25zLgogCiAgICAgICAgICogQW5pbW9tZXRlci9yZXNvdXJjZXMvc2FtcGxlci5qczogQWRk
ZWQuCiAgICAgICAgIChTdGF0aXN0aWNzLnNhbXBsZU1lYW4pOiBSZXR1cm5zIHRoZSBzYW1wbGUg
bWVhbi4KICAgICAgICAgKFN0YXRpc3RpY3MudW5iaWFzZWRTYW1wbGVTdGFuZGFyZERldmlhdGlv
bik6IFJldHVybnMgdGhlIHVuYmlhc2VkIHNhbXBsZSB2YXJpYW5jZSAoaS5lLiB3aXRoIEJlc3Nl
bCdzIGNvcnJlY3Rpb24pCiAgICAgICAgIChTdGF0aXN0aWNzLmdlb21ldHJpY01lYW4pOiBSZXR1
cm5zIHRoZSBnZW9tZXRyaWMgbWVhbi4KIAotICAgICAgICAoRXhwZXJpbWVudCk6IFJlcHJlc2Vu
dHMgYSBzYW1wbGluZyBleHBlcmltZW50LiAKKyAgICAgICAgKEV4cGVyaW1lbnQpOiBSZXByZXNl
bnRzIGEgc2FtcGxpbmcgZXhwZXJpbWVudC4KICAgICAgICAgKEV4cGVyaW1lbnQucHJvdG90eXBl
Ll9pbml0KTogQ2FsbGVkIHdoZW4gdGhlIG9iamVjdCBpcyBjcmVhdGVkIGFuZCB3aGVuIHN0YXJ0
U2FtcGxpbmcoKSBpcyBjYWxsZWQuCiAgICAgICAgIChFeHBlcmltZW50LnByb3RvdHlwZS5zdGFy
dFNhbXBsaW5nKTogQ2FsbGVkIGFmdGVyIHdhcm11cCBwZXJpb2QuIFJlc3RhcnRzIGNvbGxlY3Rp
bmcgc2FtcGxlZCBkYXRhIHBvaW50cy4KICAgICAgICAgKEV4cGVyaW1lbnQucHJvdG90eXBlLnNh
bXBsZSk6IEFkZCBhIG5ldyBkYXRhIHBvaW50LgpAQCAtMjM1MCw3ICsyMzc4LDcgQEAKICAgICAg
ICAgKFNhbXBsZXIpOiBSZXByZXNlbnRzIGEgY29tcG91bmQgZXhwZXJpbWVudC4gSXQgbWFuYWdl
cyBzYW1wbGluZyBtdWx0aXBsZSBkYXRhIHBvaW50cyBhdCB0aGUgc2FtZSB0aW1lIG9mZnNldC4K
ICAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLnN0YXJ0U2FtcGxpbmcpOiBDYWxsZWQgYWZ0ZXIg
d2FybWluZyB1cCBwZXJpb2QuIFJlc3RhcnRzIGNvbGxlY3Rpbmcgc2FtcGxlZCBkYXRhIHBvaW50
cy4KICAgICAgICAgKFNhbXBsZXIucHJvdG90eXBlLnNhbXBsZSk6IEFkZCBhIG5ldyBkYXRhIHZl
Y3RvciBhdCBhIGdpdmVuIHRpbWUgb2Zmc2V0LgotICAgICAgICAKKwogMjAxNS0xMC0wMiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCB0
aGUgdGVzdCBydW5uZXIgZm9yIGEgbmV3IGEgZ3JhcGhpY3MgYmVuY2htYXJrCkBAIC0yMzY2LDcg
KzIzOTQsNyBAQAogICAgICAgICAqIEFuaW1vbWV0ZXI6IEFkZGVkLgogICAgICAgICAqIEFuaW1v
bWV0ZXIvcnVubmVyOiBBZGRlZC4KICAgICAgICAgKiBBbmltb21ldGVyL3J1bm5lci9yZXNvdXJj
ZXM6IEFkZGVkLgotICAgICAgICAKKwogICAgICAgICAqIEFuaW1vbWV0ZXIvcnVubmVyL2FuaW1v
bWV0ZXIuaHRtbDogQWRkZWQuCiAgICAgICAgICogQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2Vz
L2FuaW1vbWV0ZXIuY3NzOiBBZGRlZC4KICAgICAgICAgVGhlIGJlbmNobWFyayBydW5uZXIgcGFn
ZSBhbmQgY3NzLgpAQCAtMjM3NywxMiArMjQwNSwxMiBAQAogICAgICAgICAod2luZG93LmJlbmNo
bWFya1J1bm5lckNsaWVudC53aWxsU3RhcnRGaXJzdEl0ZXJhdGlvbik6IENhbGxlZCBhdCB0aGUg
YmVnaW5uaW5nIGJlZm9yZSBydW5uaW5nIGFueSB0ZXN0LgogICAgICAgICAod2luZG93LmJlbmNo
bWFya1J1bm5lckNsaWVudC5kaWRSdW5TdWl0ZXMpOiBDYWxsZWQgYWZ0ZXIgcnVubmluZyBhbGwg
dGVzdHMgb2YgYSBzdWl0ZS4KICAgICAgICAgKHdpbmRvdy5iZW5jaG1hcmtSdW5uZXJDbGllbnQu
ZGlkRmluaXNoTGFzdEl0ZXJhdGlvbik6IENhbGxlZCBhZnRlciBydW5uaW5nIHRoZSBsYXN0IHRl
c3QuCi0gICAgICAgIAorCiAgICAgICAgIChzaG93U2VjdGlvbik6IFNob3dzIGEgc2VjdGlvbiBp
biB0aGUgYW5pbW9tZXRlci5odG1sIHBhZ2UuCiAgICAgICAgIChzdGFydFRlc3QpOiBDYWxsZWQg
d2hlbiB0aGUgIlN0YXJ0IFRlc3QiIGJ1dHRvbiBpcyBjbGlja2VkLgogICAgICAgICAoc2hvd1Jl
c3VsdHMpOiBDYWxsZWQgYWZ0ZXIgZmluaXNoaW5nIGFsbCB0aGUgdGVzdHMuCiAgICAgICAgIChz
aG93R3JhcGgpOiBDYWxsZWQgd2hlbiAiQ2xpY2suLi4iIGJ1dHRvbiBpbiB0aGUgIlNhbXBsZXMi
IGNvbHVtbiBvZiB0aGUgcmVzdWx0cyB0YWJsZSBpcyBjbGlja2VkCi0gICAgICAgIAorCiAgICAg
ICAgICogQW5pbW9tZXRlci9ydW5uZXIvcmVzb3VyY2VzL2JlbmNobWFyay1ydW5uZXIuanM6IENv
cGllZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL2JlbmNobWFy
ay1ydW5uZXIuanMuCiAgICAgICAgIChCZW5jaG1hcmtSdW5uZXJTdGF0ZSk6IFRyYWNrcyB0aGUg
Y3VycmVudCBydW5uaW5nIDxzdWl0ZSwgdGVzdD4KICAgICAgICAgKEJlbmNobWFya1J1bm5lclN0
YXRlLnByb3RvdHlwZS5jdXJyZW50U3VpdGUpOiBSZXR1cm5zIHRoZSBjdXJyZW50IHJ1bm5pbmcg
c3VpdGUuCkBAIC0yMzkwLDcgKzI0MTgsNyBAQAogICAgICAgICAoQmVuY2htYXJrUnVubmVyU3Rh
dGUucHJvdG90eXBlLmlzRmlyc3RUZXN0KTogUmV0dXJucyB0cnVlIGlmIHdlIGFyZSBydW5uaW5n
IHRoZSBmaXJzdCB0ZXN0IGluIHRoZSBjdXJyZW50IHN1aXRlLgogICAgICAgICAoQmVuY2htYXJr
UnVubmVyU3RhdGUucHJvdG90eXBlLm5leHQpOiBBZHZhbmNlcyB0byB0aGUgbmV4dCB0ZXN0Lgog
ICAgICAgICAoQmVuY2htYXJrUnVubmVyU3RhdGUucHJvdG90eXBlLnByZXBhcmVDdXJyZW50VGVz
dCk6IENyZWF0ZXMgYSBuZXcgPGlmcmFtZT4gYW5kIHdhaXRzIGZvciBpdCB0byBsb2FkIGEgdGVz
dC4KLSAgICAgICAgCisKICAgICAgICAgKEJlbmNobWFya1J1bm5lcik6IE1hbmFnZXMgcnVubmlu
ZyB0aGUgdGVzdHMgYW5kIGNvbW11bmljYXRpbmcgd2l0aCB0aGUgYmVuY2htYXJrUnVubmVyQ2xp
ZW50LgogICAgICAgICAoQmVuY2htYXJrUnVubmVyLnByb3RvdHlwZS53YWl0Rm9yRWxlbWVudCk6
IFdhaXRzIGZvciBhbiBlbGVtZW50IHRvIGJlIGNyZWF0ZWQuCiAgICAgICAgIChCZW5jaG1hcmtS
dW5uZXIucHJvdG90eXBlLl9hcHBlbmRGcmFtZSk6IENyZWF0ZXMgYSBuZXcgPGlmcmFtZT4gZWxl
bWVudC4KQEAgLTI0MDgsNyArMjQzNiw3IEBACiAgICAgICAgIChCZW5jaG1hcmtUZXN0U3RlcCk6
IERlbGV0ZWQuCiAgICAgICAgIChGaWJvbmFjY2kpOiBEZWxldGVkLgogICAgICAgICBTaW1wbGVQ
cm9taXNlIHdhcyBtb3ZlZCB0IEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMgYmVj
YXVzZSBpdCBpcyB1c2VkIGJ5IHRoZSBydW5uZXIgYW5kIHRoZSB0ZXN0cy4KLSAgICAgICAgCisK
ICAgICAgICAgKEJlbmNobWFya1J1bm5lci5wcm90b3R5cGUuX3dhaXRBbmRXYXJtVXApOiBEZWxl
dGVkLgogICAgICAgICAoQmVuY2htYXJrUnVubmVyLnByb3RvdHlwZS5fcnVuVGVzdCk6IERlbGV0
ZWQuCiAgICAgICAgIChCZW5jaG1hcmtTdGF0ZS5wcm90b3R5cGUuY3VycmVudFN1aXRlKTogRGVs
ZXRlZC4KQEAgLTI0MTcsMTMgKzI0NDUsMTMgQEAKICAgICAgICAgKEJlbmNobWFya1N0YXRlLnBy
b3RvdHlwZS5pc0ZpcnN0VGVzdCk6IERlbGV0ZWQuCiAgICAgICAgIChCZW5jaG1hcmtTdGF0ZS5w
cm90b3R5cGUucHJlcGFyZUN1cnJlbnRTdWl0ZSk6IERlbGV0ZWQuCiAgICAgICAgIEJlbmNobWFy
a1N0YXRlIHdhcyByZW5hbWVkIHRvIEJlbmNobWFya1J1bm5lclN0YXRlIHRvIG5vdCBiZSBjb25m
dXNlZCB3aXRoIHRoZSB0ZXN0cyBCZW5jaG1hcmtTdGF0ZS4KLSAgICAgICAgCisKICAgICAgICAg
KiBBbmltb21ldGVyL3J1bm5lci9yZXNvdXJjZXMvZDMubWluLmpzOiBDb3BpZWQgZnJvbSBXZWJz
aXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YyL2pzL2QzL2QzLm1pbi5qcy4KICAgICAgICAg
TmVlZGVkIGZvciBkcmF3aW5nIGNoYXJ0cyBmb3IgdGhlIHNhbXBsZWQgc2NvcmVzIGFuZCBmcmFt
ZSByYXRlcy4KLSAgICAgICAgCisKICAgICAgICAgKiBBbmltb21ldGVyL3J1bm5lci9yZXNvdXJj
ZXMvZ3JhcGguanM6IEFkZGVkLgogICAgICAgICAoZ3JhcGgpOiBEcmF3cyBhIGNoYXJ0IGZvciBh
IHRlc3Qgc2FtcGxlZCBkYXRhLiBJdCBzaG93cyB0d28geS1heGVzOiBvbmUgZm9yIHRoZSBhbmlt
YXRlZCBpdGVtcyBhbmQgdGhlIHNlY29uZCBmb3IgRlBTLgotICAgICAgICAgICAgICAgIAorCiAg
ICAgICAgICogU2tpcHBlZDogU2tpcCB0aGUgQW5pbW9tZXRlciBiZW5jaG1hcmsgZm9yIG5vdy4K
IAogMjAxNS0wOC0yNyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgpAQCAt
MjUwMiw3ICsyNTMwLDcgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0NjM3OAogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgotICAgICAg
ICAKKwogICAgICAgICBUaGUgY3VycmVudCBwZXJjZW50aWxlIGlzIDk1JS4gIFdoZW4gSSBsb29r
ZWQgYXQgdGhlIHNhbXBsZSBsaXN0cyBpbiBvdXIgR0MsIGl0IHdhcwogICAgICAgICBjbGVhciB0
aGF0IHRoZSB3b3JzdCA1JSBzYW1wbGVzIGNvbXBsZXRlbHkgYW1vcnRpemUgb3VyIEdDIHBhdXNl
cy4gIE91ciBHQyBwYXVzZXMgY2FuCiAgICAgICAgIGJlIHF1aXRlIGJhZC4gIENsZWFybHksIHNw
bGF5LWxhdGVuY3kgaXMgbWVhbnQgdG8gdGVzdCB3aGV0aGVyIHdlIGhhdmUgYW4gaW5jcmVtZW50
YWwKQEAgLTI1NTQsMzQgKzI1ODIsMzQgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NjE1NgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5
IEdhcmVuLgotICAgICAgICAKKwogICAgICAgICBUaGlzIGFkZHMgYSBKYXZhU2NyaXB0IHBvcnQg
b2YgdGhlIENEeCByZWFsLXRpbWUgYmVuY2htYXJrIHRvIEpldFN0cmVhbSwgYW5kIHJldGlyZXMK
ICAgICAgICAgdGhlIGNvcmRpYyB0ZXN0IGJlY2F1c2UgaXQgd2FzIHByZXZpb3VzbHkgdGhlIHNt
YWxsZXN0IGFuZCBwcm9iYWJseSBsZWFzdCBpbnRlcmVzdGluZy4KLSAgICAgICAgCisKICAgICAg
ICAgVGhlIG5ldyB0ZXN0LCAiY2RqcyIsIGlzIG1vc3RseSBhIGZhaXRoZnVsIHJld3JpdGUgb2Yg
dGhlIEphdmEgY29kZSBpbnRvIEphdmFTY3JpcHQuCiAgICAgICAgIEkgZ290IHRoZSBKYXZhIGNv
ZGUgZnJvbSBodHRwczovL3d3dy5jcy5wdXJkdWUuZWR1L3Nzcy9wcm9qZWN0cy9jZHgvLgotICAg
ICAgICAKKwogICAgICAgICBUaGVyZSBhcmUgc29tZSBkaWZmZXJlbmNlczoKLSAgICAgICAgCisK
ICAgICAgICAgLSBJdCB1c2VzIFJlZEJsYWNrVHJlZSdzIGZvciBhbGwgc2V0cyBhbmQgbWFwcyBy
YXRoZXIgdGhhbiBoYXNodGFibGVzLiBUaGlzIGlzIGNsZWFybHkKICAgICAgICAgICBtb3JlIGlu
IHRoZSBzcGlyaXQgb2YgcmVhbC10aW1lIHRoYW4gdGhlIENEeCBiZW5jaG1hcmsuIEZXSVcsIENE
eCB1c2VkIHRvIHVzZSB0cmVlcwogICAgICAgICAgIGFuZCBJIGRvbid0IGtub3cgd2h5IHRoYXQg
Y2hhbmdlZCBpbiB0aGUgbGF0ZXN0IHZlcnNpb24uCi0gICAgICAgIAorCiAgICAgICAgIC0gQ0Rq
cyBkb2Vzbid0IGF0dGVtcHQgdG8gYXZvaWQgbWVtb3J5IGFsbG9jYXRpb25zLCB1bmxpa2UgdGhl
IHJlYWwtdGltZSBKYXZhIHZlcnNpb24uCiAgICAgICAgICAgSSB3cm90ZSB0aGUgY29kZSB0aGF0
IEkgd2FudGVkIHRvIHdyaXRlIGZvciBhZXN0aGV0aWNzLCByYXRoZXIgdGhhbiB0aGUgY29kZSB0
aGF0IEkKICAgICAgICAgICB3b3VsZCBoYXZlIHdyaXR0ZW4gaWYgSSB0cmllZCB0byB3cml0ZSB0
aGUgZmFzdGVzdCBjb2RlIHBvc3NpYmxlLiBBZ2FpbiwgSSBiZWxpZXZlCiAgICAgICAgICAgdGhh
dCB0aGlzIGlzIGluIHRoZSBzcGlyaXQgb2YgQ0RqIC0gaXQncyBtZWFudCB0byB0ZXN0IHdoYXQg
d291bGQgaGFwcGVuIGlmIHlvdSB3cm90ZQogICAgICAgICAgIHJlYWwtdGltZXkgc3R1ZmYgaW4g
YSBoaWdoIGxldmVsIGxhbmd1YWdlIGFuZCBhY3R1YWxseSB0b29rIGFkdmFudGFnZSBvZiB0aGF0
CiAgICAgICAgICAgbGFuZ3VhZ2UgdG8gYmUgbW9yZSBwcm9kdWN0aXZlLgotICAgICAgICAKKwog
ICAgICAgICBUaGUgdGVzdCBzY29yZSByZWZsZWN0cyB0aGUgYXZlcmFnZSBsYXRlbmN5IG9mIHRo
ZSB3b3JzdCAxMCBzYW1wbGVzIG91dCBvZiAyMDAgc2FtcGxlcy4KICAgICAgICAgVGhlIHNpbXVs
YXRpb24gdXNlcyAxMDAwIGFpcmNyYWZ0LCBmbHlpbmcgYWxvbmcgcGF0aHMgdGhhdCByZXN1bHQg
aW4gc29tZSBkZXRlY3RlZAogICAgICAgICBjb2xsaXNpb25zIGV2ZXJ5IG9uY2UgaW4gYSB3aGls
ZS4gVGhlIGJlbmNobWFyayB2YWxpZGF0ZXMgaXRzIHJlc3VsdHMgYnkgY2hlY2tpbmcgdGhlCiAg
ICAgICAgIHRvdGFsIG51bWJlciBvZiBjb2xsaXNpb25zIGRldGVjdGVkLgotICAgICAgICAKKwog
ICAgICAgICBBcGFydCBmcm9tIHRoZSBpbnRlZ3JhdGlvbiBpbnRvIHRoZSBKZXRTdHJlYW0gaGFy
bmVzcywgdGhlIENEanMgZGlyZWN0b3J5IGNvbnRhaW5zIGEKICAgICAgICAgZnVsbHkgc2VsZi1j
b250YWluZWQgYmVuY2htYXJrIHRoYXQgY291bGQgYmUgcnVuIGVpdGhlciBpbiB0aGUganNjIHNo
ZWxsIG9yIGluIGJyb3dzZXIuCi0gICAgICAgIAorCiAgICAgICAgIFRoaXMgbmV3IGNvZGUgdXNl
cyB0aGUgc2FtZSAzLWNsYXVzZSBCU0QgbGljZW5zZSBhcyB0aGUgUHVyZHVlIGNvZGUsIGFuZCBn
aXZlcwogICAgICAgICBhdHRyaWJ1dGlvbiB0byBQdXJkdWUgaW4gYWxtb3N0IGFsbCBmaWxlcy4g
SSBiZWxpZXZlIHRoYXQgaXMgYXBwcm9wcmlhdGUgc2luY2UgSSB3cm90ZQogICAgICAgICBtb3N0
IG9mIHRoZSBKUyBmaWxlcyBieSBsb29raW5nIGF0IHRoZSBQdXJkdWUgSmF2YSBjb2RlIGFuZCB0
cmFzY3JpYmluZyB0byBKYXZhU2NyaXB0LgpAQCAtMjY4OSw3ICsyNzE3LDcgQEAKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTc2MgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgotICAgICAgICAKKwogICAgICAgICBKZXRTdHJl
YW0gaGFzIHNvbWUgbGF0ZW5jeSB0ZXN0cyB0aGF0IGFyZSBtZWFudCB0byBtZWFzdXJlIGppdHRl
ci4gIFByaW9yIHRvIHRoaXMgY2hhbmdlLCB0aGV5CiAgICAgICAgIGRpZCB0aGlzIGJ5IGNvbXB1
dGluZyB0aGUgUk1TLiAgQnV0IHRoZSBSTVMgaXMgYSBwcmV0dHkgYmFkIG1ldHJpYy4gIFRoZSB0
aGluZyB0aGF0IGl0IHJld2FyZHMKICAgICAgICAgaXNuJ3QgcmVhbGx5IHRoZSB0aGluZyB0aGF0
IHlvdSdkIHdhbnQgeW91ciBicm93c2VyIHRvIGRvLiAgVGhlc2UgUk1TLWJhc2VkIHRlc3RzIGlu
dm9sdmUgdGFraW5nCkBAIC0yNzEwLDcgKzI3MzgsNyBAQAogICAgICAgICBUaGUgd29yc3QgMSUg
b3IgdGhlIHdvcnN0IDUlIHdvdWxkIGJlIGdvb2QgdGhpbmdzIHRvIGF2ZXJhZ2UuICBUaGlzIHdp
bGwgY2F0Y2ggY2FzZXMgd2hlcmUgdGhlIFZNCiAgICAgICAgIGppdHRlcmVkIGR1ZSB0byBKSVQg
b3IgR0MsIGJ1dCBpdCBuZXZlciBoYXZlIHRoZSBwYXRob2xvZ3kgdGhhdCB3ZSBlbmQgdXAgZ2l2
aW5nIHRoZSBiZXR0ZXIgc2NvcmUKICAgICAgICAgdG8gYSBWTSB3aG9zZSBiZXN0IGNhc2UgaXMg
d29yc3QgdGhhbiBhbm90aGVyIFZNJ3Mgd29yc3QgY2FzZS4KLSAgICAgICAgCisKICAgICAgICAg
Rm9yIG5vdywgdGhpcyBjaGFuZ2UgdXNlcyB0aGUgaGlnaGVzdCBzYW1wbGVzIGFib3ZlIHRoZSA5
NSUgcGVyY2VudGlsZS4gSSdtIG5vdCB5ZXQgc3VyZSBpZiB0aGF0CiAgICAgICAgIGlzIHRoZSBi
ZXN0IHRoaW5nIC0gaXQgbWlnaHQgaW5jbHVkZSB0b28gbWFueSBzY29yZXMgdGhhdCBhcmUgYXJv
dW5kIHRoZSBiZXN0LWNhc2UgcGVyZm9ybWFuY2UgLQogICAgICAgICBidXQgaXQncyBjZXJ0YWlu
bHkgYmV0dGVyIHRoYW4gUk1TIGFuZCBpdCBtaWdodCBiZSBnb29kIGVub3VnaCB0byBrZWVwLiBC
dXQgYmVjYXVzZSBvZiB0aGF0CkBAIC0yNzU0LDcgKzI3ODIsNyBAQAogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0NjE3CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCi0gICAgICAgIAorCiAgICAgICAgIEFkZCB0aGUgaGFzaC1t
YXAgYmVuY2htYXJrIHRvIExvbmdTcGlkZXIuIExvbmdTcGlkZXIgd2FzIGFscmVhZHkgbm90IGEg
cGVyZmVjdCBtYXRjaCBvZgogICAgICAgICBTdW5TcGlkZXIuIEl0J3Mgbm90IGFuIG9mZmljaWFs
IGJlbmNobWFyay4gSXQgY29udGFpbnMgYmVuY2htYXJrcyB0aGF0IGFyZSByZWxhdGl2ZWx5CiAg
ICAgICAgIGxvbmctcnVubmluZy4gU28sIGhhc2gtbWFwIHNvcnQgb2YgYmVsb25ncyBoZXJlLgpA
QCAtMjc2OSw3ICsyNzk3LDcgQEAKICAgICAgICAgRml4IHR5cG8gYnVnIGluIFNwZWVkb21ldGVy
L3Jlc291cmNlcy9tYWluLmpzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDQ1MDQKIAotICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuIAor
ICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCiAKICAgICAgICAgKiBTcGVlZG9tZXRl
ci9yZXNvdXJjZXMvbWFpbi5qczogRml4IHR5cG8uCiAgICAgICAgICh3aW5kb3cuYmVuY2htYXJr
Q2xpZW50LnRvdGFsVGltZUluRGlzcGxheVVuaXQpOgpAQCAtMjkyMCw3ICsyOTQ4LDcgQEAKICAg
ICAgICAgKiBTVkcvcmVzb3VyY2VzL1JlbmRlckFuaW1hdG9yLmpzOiBBZGRlZC4KICAgICAgICAg
VGhlc2UgYXJlIGJlbmNobWFya3MgZm9yIHRoZSBTVkcgcmVuZGVyaW5nLiBNYWlubHkgd2Ugd2Fu
dCB0byBtZWFzdXJlIGhvdyBmYXN0CiAgICAgICAgIHRoZSBTVkcgcmVuZGVyaW5nIHdpbGwgYmUg
d2hlbiBvbmx5IGEgc21hbGwgcGFydCBvZiBpdCBpcyBkcmF3bi4KLSAgICAgICAgCisKIDIwMTUt
MDEtMjEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBibWFs
bG9jOiBzdXBwb3J0IGFsaWduZWQgYWxsb2NhdGlvbgpAQCAtMzA0MSw3ICszMDY5LDcgQEAKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzI0NQogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgotICAgICAgICAKKwogICAgICAgICBUaGlz
IGFkZHMgdGhlIHNjYWZmb2xkaW5nIGZvciBydW5uaW5nIE9jdGFuZSB2ZXJzaW9uIDIgaW5zaWRl
IHJ1bi1qc2MtYmVuY2htYXJrcy4KICAgICAgICAgSW4gdGhlIGZ1dHVyZSB3ZSBzaG91bGQganVz
dCBsYW5kIE9jdGFuZTIgaW4gdGhpcyBkaXJlY3RvcnksIGFuZCBydW4tanNjLWJlbmNobWFya3MK
ICAgICAgICAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gcG9pbnQgZGlyZWN0bHkgYXQgdGhpcyBkaXJl
Y3RvcnkgaW5zdGVhZCBvZiByZXF1aXJpbmcgdGhlCkBAIC0zNzc2LDcgKzM4MDQsNyBAQAogCiAg
ICAgICAgIFtDU1MgU2hhcGVzXSBBZGQgbm8gc2hhcGVzIHZlcnNpb24gb2YgUmVnaW9uc1NoYXBl
cyBwZXJmb3JtYW5jZSB0ZXN0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzE0NTUKLSAgICAgICAgCisKICAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3Vr
ZSBOaXdhLgogCiAgICAgICAgIFRoaXMgaXMgYSBubyBzaGFwZXMgdmVyc2lvbiBvZiB0aGUgUmVn
aW9uc1NoYXBlcyBwZXJmb3JtYW5jZSB0ZXN0LiBBbGwgdGhlIGNvbnRlbnQKQEAgLTM5MjcsNyAr
Mzk1NSw3IEBACiAgICAgICAgIFRoZSBleGlzdGluZyB0ZXN0IGNoZWNrcyBpZiB0aGUgbGVhZGlu
ZyBkaWdpdCBvZiBhIHN1bSBzdGFydHMgd2l0aCAiLTEiLgogICAgICAgICBIb3dldmVyLCBpdCB0
dXJuZWQgb3V0IHRoYXQgdGhlIGV4cGVjdGVkIHN1bSBpcyBpbiB0aGUgb3JkZXIgb2YKICAgICAg
ICAgLTEuODczNTAxMzU0MDU0OTUxN2UtMTYgKGkuZS4gdmVyeSBjbG9zZSB0byAwKS4gIFdpdGgg
c21hbGwgZXJyb3JzIGluCi0gICAgICAgIHRoZSB0ZXJtcyBvZiB0aGUgc3VtIGFkZGluZyB1cCwg
aXQgaXMgdmVyeSBlYXN5IGZvciB0aGUgcmVzdWx0YW50IHN1bSAKKyAgICAgICAgdGhlIHRlcm1z
IG9mIHRoZSBzdW0gYWRkaW5nIHVwLCBpdCBpcyB2ZXJ5IGVhc3kgZm9yIHRoZSByZXN1bHRhbnQg
c3VtCiAgICAgICAgIHRvIGZsdWN0dWF0ZS4gIFRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRo
ZSByZXN1bHRhbnQgc3VtJ3MgbW9zdAogICAgICAgICBzaWduaWZpY2FudCBkaWdpdCB3aWxsIHN0
YXJ0IHdpdGggLTEgZWl0aGVyLgogCkBAIC00MDk2LDcgKzQxMjQsNyBAQAogCiAyMDE0LTAyLTEw
ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgogCi0gICAgICAgIFtDU1MgU2hh
cGVzXSBBZGQgaW5pdGlhbCBwZXJmb3JtYW5jZSB0ZXN0cyBmb3IgcG9seWdvbiBzaGFwZSAKKyAg
ICAgICAgW0NTUyBTaGFwZXNdIEFkZCBpbml0aWFsIHBlcmZvcm1hbmNlIHRlc3RzIGZvciBwb2x5
Z29uIHNoYXBlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjg1NTQKIAogICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCkBAIC00NTk1LDcg
KzQ2MjMsNyBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI2NTk2CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU3RlcGhhbmllIExld2lzLgotICAgICAg
ICAKKwogICAgICAgICBFeHRyYWN0ZWQgYmVuY2htYXJrLXJ1bm5lci5qcyBhbmQgdGVzdHMuanMg
b3V0IG9mIGJlbmNobWFyay5qcyBhbmQgYmVuY2htYXJrLmh0bWwuCiAKICAgICAgICAgQWRkZWQg
YSAiY2xpZW50IiBpbnRlcmZhY2UgdG8gQmVuY2htYXJrUnVubmVyIHNvIHRoYXQgYmVuY2htYXJr
Lmh0bWwgY291bGQgcmVnaXN0ZXIgbmVjZXNzYXJ5IGhvb2tzIHRvCkBAIC00NjI5LDcgKzQ2NTcs
NyBAQAogICAgICAgICAoQmVuY2htYXJrUnVubmVyLnN0ZXApOiBEaXR0by4KICAgICAgICAgKEJl
bmNobWFya1J1bm5lci5fcnVuVGVzdEFuZFJlY29yZFJlc3VsdHMpOiBEaXR0by4gTm90ZSB0aGUg
Y29kZSB0byB1cGRhdGUgdGhlIFVJIGhhcyBiZWVuIG1vdmUgdG8KICAgICAgICAgYmVuY2htYXJr
Lmh0bWwuIEFsc28gbW92ZWQgdGhlIGNvZGUgdG8gYWNjdW11bGF0ZSB0aGUgdG90YWxzIGhlcmUg
ZnJvbSBfZmluYWxpemUuCi0gICAgICAgIChCZW5jaG1hcmtSdW5uZXIuX2ZpbmFsaXplKTogTW92
ZWQuIAorICAgICAgICAoQmVuY2htYXJrUnVubmVyLl9maW5hbGl6ZSk6IE1vdmVkLgogCiAgICAg
ICAgICogRG9Zb3VFdmVuQmVuY2gvcmVzb3VyY2VzL3Rlc3RzLmpzOiBDb3BpZWQgZnJvbSBQZXJm
b3JtYW5jZVRlc3RzL0RvWW91RXZlbkJlbmNoL2JlbmNobWFyay5odG1sLgogICAgICAgICBVc2Vz
IEJlbmNobWFya1Rlc3RTdGVwIGluc3RlYWQgb2YgYW4gYXJyYXkgZm9yIGVhY2ggdGVzdCBzdGVw
LgpAQCAtNDYzOSwxMiArNDY2NywxMiBAQAogICAgICAgICBBbGxvdyBJbWFnZUJ1ZmZlciB0byBy
ZS11c2UgSU9TdXJmYWNlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI1NDc3CiAKLSAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4uIAorICAg
ICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICBUaGlzIHRlc3QgdGltZXMg
Y3JlYXRpbmcgYSB2YXJpZXR5IG9mIGRpZmZlcmVudCBzaXplcyBvZiBjYW52YXNlcworICAgICAg
ICBvbmNlIHNvbWUgaGF2ZSBhbHJlYWR5IGJlZW4gY3JlYXRlZC4gVGhlIHNlY29uZCBjcmVhdGlv
biBvZiB0aGUKKyAgICAgICAgY2FudmFzZXMgc2hvdWxkIHJlLXVzZSB0aGUgZXhpc3RpbmcgSU9T
dXJmYWNlcy4KIAotICAgICAgICBUaGlzIHRlc3QgdGltZXMgY3JlYXRpbmcgYSB2YXJpZXR5IG9m
IGRpZmZlcmVudCBzaXplcyBvZiBjYW52YXNlcyAKLSAgICAgICAgb25jZSBzb21lIGhhdmUgYWxy
ZWFkeSBiZWVuIGNyZWF0ZWQuIFRoZSBzZWNvbmQgY3JlYXRpb24gb2YgdGhlIAotICAgICAgICBj
YW52YXNlcyBzaG91bGQgcmUtdXNlIHRoZSBleGlzdGluZyBJT1N1cmZhY2VzLiAKLSAgICAgICAg
CiAgICAgICAgICogQ2FudmFzL3JldXNlLmh0bWw6IEFkZGVkLgogCiAyMDEzLTEyLTIzICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KQEAgLTQ5OTMsMTMgKzUwMjEsMTMg
QEAKIAogICAgICAgICBBZGQgbGluZSBsYXlvdXQgcGVyZm9ybWFuY2UgdGVzdCB0aGF0IGV4ZXJj
aXNlcyBtb3JlIGNhc2VzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjQwNDEKLSAgICAgICAgCisKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENh
cmxzc29uLgogCiAgICAgICAgIFRoZSBleGlzdGluZyBsaW5lLWxheW91dC5odG1sIGNvdmVycyB0
aGUgbW9zdCBiYXNpYyBsZWZ0LWFsaWduZWQgY2FzZSBvbmx5LgogICAgICAgICBBZGQgYSB0ZXN0
IHdpdGggbW9yZSBjb3ZlcmFnZSBmb3IgdGhpbmdzIHRoYXQgYXJlIG1vc3RseSBub3QgeWV0IHN1
cHBvcnRlZCBieSB0aGUgc2ltcGxlCiAgICAgICAgIGxpbmUgbGF5b3V0IHBhdGg6Ci0gICAgICAg
IAorCiAgICAgICAgIC0gY2VudGVyZWQgdGV4dAogICAgICAgICAtIHJpZ2h0IGFsaWduZWQgdGV4
dAogICAgICAgICAtIGp1c3RpZmllZCB0ZXh0CkBAIC01Mjg0LDcgKzUzMTIsNyBAQAogICAgICAg
ICAqIERvWW91RXZlbkJlbmNoOiBBZGRlZC4KICAgICAgICAgKiBEb1lvdUV2ZW5CZW5jaC9iZW5j
aG1hcmsuaHRtbDogQWRkZWQuCiAgICAgICAgICogRG9Zb3VFdmVuQmVuY2gvYmVuY2htYXJrLmpz
OiBBZGRlZC4KLSAgICAgICAgKFNpbXBsZVByb21pc2UpOiAKKyAgICAgICAgKFNpbXBsZVByb21p
c2UpOgogICAgICAgICAoU2ltcGxlUHJvbWlzZS5wcm90b3R5cGUudGhlbik6CiAgICAgICAgIChT
aW1wbGVQcm9taXNlLnByb3RvdHlwZS5yZXNvbHZlLmVsc2UpOgogICAgICAgICAoU2ltcGxlUHJv
bWlzZS5wcm90b3R5cGUucmVzb2x2ZSk6CkBAIC01NDExLDcgKzU0MzksNyBAQAogICAgICAgICBJ
bnRyb2R1Y2UgYSB2ZXJzaW9uIG9mIFN1blNwaWRlciB0aGF0IHJ1bnMgZm9yIGEgcmVhbGx5IGxv
bmcgdGltZSAoYWJvdXQgMSBzZWMgb24gbXkgbWFjaGluZSkKIAogICAgICAgICBSdWJiZXIgc3Rh
bXBlZCBieSBNYXJrIEhhaG5lbmJlcmcuCi0gICAgICAgIAorCiAgICAgICAgIFRoaXMgaXNuJ3Qg
bWVhbnQgZm9yIHNlcmlvdXMgVk0tdG8tVk0gcGVyZm9ybWFuY2UgY29tcGFyaXNvbnMsIGJ1dCBp
dCBpcyB1c2VmdWwKICAgICAgICAgdG8gc2VlIGhvdyB0aGVzZSBiZW5jaG1hcmtzIGJlaGF2ZSB3
aGVuIHRoZXkncmUgY29tcGxldGVseSB3YXJtZWQgdXAuCiAKQEAgLTU5MDQsNyArNTkzMiw3IEBA
CiAgICAgICAgIHNpbmNlIHN1Y2ggdGVzdHMgbm8gbG9uZ2VyIGV4aXN0LiBBbHNvIGZpeGVkIHVw
IHRoZSBjb2RlIGNvbXB1dGUgeS1heGlzIHJhbmdlLgogCiAgICAgICAgIChjcmVhdGVUYWJsZVJv
dy5tYXJrdXBGb3JSdW4pOiBVcGRhdGVkIHRvIHVzZSBjb25maWRlbmNlSW50ZXJ2YWxEZWx0YSgp
IGluc3RlYWQgb2Ygc3RkZXYoKS4KLSAgICAgICAgCisKICAgICAgICAgKGluaXQuYWRkVGVzdHMp
OiBBZGRlZC4gUmVjdXJzaXZlbHkgYWRkIG1ldHJpY3MuCiAKICAgICAgICAgKiByZXNvdXJjZXMv
c3RhdGlzdGljcy5qczogQWRkZWQuIEltcG9ydGVkIGZyb20gcGVyZi53ZWJraXQub3JnLgpAQCAt
NjI5Nyw3ICs2MzI1LDcgQEAKIAogMjAxMi0xMC0yOSAgWm9sdGFuIEhvcnZhdGggIDx6b2x0YW5A
d2Via2l0Lm9yZz4KIAotICAgICAgICBUdXJuIFBhZ2VMb2FkIHRlc3RzIGludG8gc2ltcGxlIHBl
cmZvcm1hbmNldGVzdHMsIGNvbW1pdCAjNyAobGFzdCkgCisgICAgICAgIFR1cm4gUGFnZUxvYWQg
dGVzdHMgaW50byBzaW1wbGUgcGVyZm9ybWFuY2V0ZXN0cywgY29tbWl0ICM3IChsYXN0KQogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk4OTkKIAogICAg
ICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCkBAIC02MzQxLDcgKzYzNjksNyBAQAogCiAy
MDEyLTEwLTI2ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgogCi0gICAgICAg
IFR1cm4gUGFnZUxvYWQgdGVzdHMgaW50byBzaW1wbGUgcGVyZm9ybWFuY2V0ZXN0cywgY29tbWl0
ICM2IAorICAgICAgICBUdXJuIFBhZ2VMb2FkIHRlc3RzIGludG8gc2ltcGxlIHBlcmZvcm1hbmNl
dGVzdHMsIGNvbW1pdCAjNgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTk4OTkKIAogICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCkBAIC02
MzY1LDcgKzYzOTMsNyBAQAogCiAyMDEyLTEwLTI2ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3
ZWJraXQub3JnPgogCi0gICAgICAgIFR1cm4gUGFnZUxvYWQgdGVzdHMgaW50byBzaW1wbGUgcGVy
Zm9ybWFuY2V0ZXN0cywgY29tbWl0ICM1IAorICAgICAgICBUdXJuIFBhZ2VMb2FkIHRlc3RzIGlu
dG8gc2ltcGxlIHBlcmZvcm1hbmNldGVzdHMsIGNvbW1pdCAjNQogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk4OTkKIAogICAgICAgICBSZXZpZXdlZCBi
eSBSeW9zdWtlIE5pd2EuCkBAIC02MzkxLDcgKzY0MTksNyBAQAogCiAyMDEyLTEwLTI1ICBab2x0
YW4gSG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgogCi0gICAgICAgIFR1cm4gUGFnZUxvYWQg
dGVzdHMgaW50byBzaW1wbGUgcGVyZm9ybWFuY2V0ZXN0cywgY29tbWl0ICM0IAorICAgICAgICBU
dXJuIFBhZ2VMb2FkIHRlc3RzIGludG8gc2ltcGxlIHBlcmZvcm1hbmNldGVzdHMsIGNvbW1pdCAj
NAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk4OTkK
IAogICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCkBAIC02NDEyLDcgKzY0NDAsNyBA
QAogCiAyMDEyLTEwLTI1ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgogCi0g
ICAgICAgIFR1cm4gUGFnZUxvYWQgdGVzdHMgaW50byBzaW1wbGUgcGVyZm9ybWFuY2V0ZXN0cywg
Y29tbWl0ICMzIAorICAgICAgICBUdXJuIFBhZ2VMb2FkIHRlc3RzIGludG8gc2ltcGxlIHBlcmZv
cm1hbmNldGVzdHMsIGNvbW1pdCAjMwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTk4OTkKIAogICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2Eu
CkBAIC02NDM4LDcgKzY0NjYsNyBAQAogCiAyMDEyLTEwLTI0ICBab2x0YW4gSG9ydmF0aCAgPHpv
bHRhbkB3ZWJraXQub3JnPgogCi0gICAgICAgIFR1cm4gUGFnZUxvYWQgdGVzdHMgaW50byBzaW1w
bGUgcGVyZm9ybWFuY2V0ZXN0cywgY29tbWl0ICMyIAorICAgICAgICBUdXJuIFBhZ2VMb2FkIHRl
c3RzIGludG8gc2ltcGxlIHBlcmZvcm1hbmNldGVzdHMsIGNvbW1pdCAjMgogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk4OTkKIAogICAgICAgICBSZXZp
ZXdlZCBieSBSeW9zdWtlIE5pd2EuCkBAIC02NDYyLDcgKzY0OTAsNyBAQAogCiAyMDEyLTEwLTI0
ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgogCi0gICAgICAgIFR1cm4gUGFn
ZUxvYWQgdGVzdHMgaW50byBzaW1wbGUgcGVyZm9ybWFuY2V0ZXN0cywgY29tbWl0ICMxIAorICAg
ICAgICBUdXJuIFBhZ2VMb2FkIHRlc3RzIGludG8gc2ltcGxlIHBlcmZvcm1hbmNldGVzdHMsIGNv
bW1pdCAjMQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTk4OTkKIAogICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCkBAIC05NzQxLDcgKzk3
NjksNyBAQAogMjAwNi0xMi0yNiAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgYnJhZGVlLW9oLgotICAgICAgICAKKwogICAgICAgICBBZGQgbmV3
IFBhZ2VMb2FkVGVzdHMgZGlyZWN0b3J5ICh0aGlzIG9uZSkKICAgICAgICAgQWRkIExJQ0VOU0VT
IGZpbGUgdG8gZXhwbGFpbiB3aGVyZSBlYWNoIFNWRyBjYW1lIGZyb20uCiAKLS0gCjIuNS40IChB
cHBsZSBHaXQtNjEpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268524</attachid>
            <date>2016-01-07 19:00:12 -0800</date>
            <delta_ts>2016-01-07 20:26:03 -0800</delta_ts>
            <desc>3. Add new test (Take 2)</desc>
            <filename>0001-Update-benchmark-test-suite.patch</filename>
            <type>text/plain</type>
            <size>13573</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSAxY2QyNTFmMjFmYTc1ZTA5NDYyNGI1ZDVkZDUwMjhkNDBmNjdhZTRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDcgSmFuIDIwMTYgMTg6NTU6MjcgLTA4MDAKU3ViamVjdDogW1BBVENIXSBVcGRhdGUgYmVuY2ht
YXJrIHRlc3Qgc3VpdGUKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTI2NzkKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRkIGEgbmV3IHRlc3QuIFRoZSB0
ZXN0IGhhcyBhIHJvdGF0aW5nIGJhY2tncm91bmQKZ3JhZGllbnQsIGFuZCBkb2VzIGEgYmV0dGVy
IGpvYiBwaHlzaWNhbGx5IHNpbXVsYXRpbmcKcGFydGljbGVzLgoKKiBBbmltb21ldGVyL3Jlc291
cmNlcy9leHRlbnNpb25zLmpzOiBUZWFjaCBQb2ludCB0byB0YWtlIGNvbnN0YW50cyBhcyB3ZWxs
IGFzIG90aGVyIFBvaW50cy4KKFBvaW50LnByb3RvdHlwZS5sZW5ndGgpOiBBZGRlZC4KKFBvaW50
LnByb3RvdHlwZS5ub3JtYWxpemUpOiBBZGRlZC4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5u
ZXIvdGVzdHMuanM6IEFkZCB0aGUgdGVzdCB0byB0aGUgbWFzdGVyIHN1aXRlLgoqIEFuaW1vbWV0
ZXIvdGVzdHMvbWFzdGVyL3BhcnRpY2xlcy5odG1sOiBBZGRlZC4KKiBBbmltb21ldGVyL3Rlc3Rz
L21hc3Rlci9yZXNvdXJjZXMvcGFydGljbGVzLmpzOiBBZGRlZC4gUGFyZW50IGNsYXNzIGZvciBk
aWZmZXJlbnQga2luZHMgb2YgcGFydGljbGVzLgooUGFydGljbGUpOgooUGFydGljbGUucHJvdG90
eXBlLnJlc2V0KTogSWYgdGhlIHBhcnRpY2xlIHN0YXJ0cyBzbG93aW5nIGRvd24gaW4gdGVybXMg
b2YgaXRzIGFuaW1hdGlvbiwKcmVzZXQgaXQuCihQYXJ0aWNsZS5wcm90b3R5cGUuYW5pbWF0ZSk6
IEJvdW5jZSBvZmYgdGhlIHdhbGxzIGVsYXN0aWNhbGx5LCBhbmQgaW5jbHVkZSBncmF2aXR5Lgoo
UGFydGljbGUucHJvdG90eXBlLm1vdmUpOiBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZS4KKFBh
cnRpY2xlc1N0YWdlKTogU3RhZ2UgaW5jbHVkZXMgYSByb3RhdGluZyBncmFkaWVudCBiYWNrZ3Jv
dW5kLgoqIEFuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9kb20tcGFydGljbGVzLmpz
OiBBZGRlZC4gQ3JlYXRlcyBhIDxkaXY+IGFuZCBhZGRzIGl0IHRvCnRoZSBzdGFnZS4KKiBBbmlt
b21ldGVyL3Rlc3RzL3Jlc291cmNlcy9zdGFyLnN2ZzogQWRkZWQuCi0tLQogLi4uL0FuaW1vbWV0
ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMgICAgICAgICAgICAgfCAgMTkgKystCiAuLi4vQW5p
bW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzICAgICAgICAgICB8ICAgNCArCiAuLi4v
QW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcGFydGljbGVzLmh0bWwgICAgICAgICB8ICAyNCArKysr
CiAuLi4vdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9kb20tcGFydGljbGVzLmpzICAgICAgICB8ICA1
NSArKysrKysrKysKIC4uLi9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvcGFydGlj
bGVzLmpzIHwgMTMzICsrKysrKysrKysrKysrKysrKysrKwogLi4uL0FuaW1vbWV0ZXIvdGVzdHMv
cmVzb3VyY2VzL3N0YXIuc3ZnICAgICAgICAgICAgfCAgIDggKysKIFBlcmZvcm1hbmNlVGVzdHMv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI3ICsrKysrCiA3IGZpbGVzIGNo
YW5nZWQsIDI2OSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2
NDQgUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9wYXJ0aWNsZXMuaHRt
bAogY3JlYXRlIG1vZGUgMTAwNjQ0IFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9t
YXN0ZXIvcmVzb3VyY2VzL2RvbS1wYXJ0aWNsZXMuanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBQZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9wYXJ0aWNsZXMu
anMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMv
cmVzb3VyY2VzL3N0YXIuc3ZnCgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21l
dGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Jlc291cmNlcy9leHRlbnNpb25zLmpzCmluZGV4IDcwODI5NzEuLjdhMjQ1NDUgMTAwNjQ0Ci0t
LSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcwor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMK
QEAgLTkyLDI0ICs5Miw0MSBAQCBQb2ludC5wcm90b3R5cGUgPQogCiAgICAgYWRkOiBmdW5jdGlv
bihvdGhlcikKICAgICB7CisgICAgICAgIGlmKGlzTmFOKG90aGVyLngpKQorICAgICAgICAgICAg
cmV0dXJuIG5ldyBQb2ludCh0aGlzLnggKyBvdGhlciwgdGhpcy55ICsgb3RoZXIpOwogICAgICAg
ICByZXR1cm4gbmV3IFBvaW50KHRoaXMueCArIG90aGVyLngsIHRoaXMueSArIG90aGVyLnkpOwog
ICAgIH0sCiAKICAgICBzdWJ0cmFjdDogZnVuY3Rpb24ob3RoZXIpCiAgICAgeworICAgICAgICBp
Zihpc05hTihvdGhlci54KSkKKyAgICAgICAgICAgIHJldHVybiBuZXcgUG9pbnQodGhpcy54IC0g
b3RoZXIsIHRoaXMueSAtIG90aGVyKTsKICAgICAgICAgcmV0dXJuIG5ldyBQb2ludCh0aGlzLngg
LSBvdGhlci54LCB0aGlzLnkgLSBvdGhlci55KTsKICAgICB9LAogCiAgICAgbXVsdGlwbHk6IGZ1
bmN0aW9uKG90aGVyKQogICAgIHsKKyAgICAgICAgaWYoaXNOYU4ob3RoZXIueCkpCisgICAgICAg
ICAgICByZXR1cm4gbmV3IFBvaW50KHRoaXMueCAqIG90aGVyLCB0aGlzLnkgKiBvdGhlcik7CiAg
ICAgICAgIHJldHVybiBuZXcgUG9pbnQodGhpcy54ICogb3RoZXIueCwgdGhpcy55ICogb3RoZXIu
eSk7CiAgICAgfSwKIAogICAgIG1vdmU6IGZ1bmN0aW9uKGFuZ2xlLCB2ZWxvY2l0eSwgdGltZURl
bHRhKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuYWRkKFBvaW50LnBvaW50T25DaXJjbGUo
YW5nbGUsIHZlbG9jaXR5ICogKHRpbWVEZWx0YSAvIDEwMDApKSk7CisgICAgfSwKKworICAgIGxl
bmd0aDogZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiBNYXRoLnNxcnQoIHRoaXMueCAqIHRo
aXMueCArIHRoaXMueSAqIHRoaXMueSApOworICAgIH0sCisKKyAgICBub3JtYWxpemU6IGZ1bmN0
aW9uKCkgeworICAgICAgICB2YXIgbCA9IE1hdGguc3FydCggdGhpcy54ICogdGhpcy54ICsgdGhp
cy55ICogdGhpcy55ICk7CisgICAgICAgIHRoaXMueCAvPSBsOworICAgICAgICB0aGlzLnkgLz0g
bDsKKyAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgfQotfQorfTsKIAogZnVuY3Rpb24gSW5zZXRz
KHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCkKIHsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzIGIvUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanMKaW5kZXggZmYwOGZhYS4uYzZk
Y2E2ZSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9y
dW5uZXIvdGVzdHMuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNl
cy9ydW5uZXIvdGVzdHMuanMKQEAgLTI0LDYgKzI0LDEwIEBAIFN1aXRlcy5wdXNoKG5ldyBTdWl0
ZSgiQW5pbW9tZXRlciIsCiAgICAgICAgICAgICB1cmw6ICJtYXN0ZXIvY2FudmFzLXN0YWdlLmh0
bWw/cGF0aFR5cGU9bGluZSZsaW5lQ2FwPXNxdWFyZSIsCiAgICAgICAgICAgICBuYW1lOiAiQ2Fu
dmFzIGxpbmUgc2VnbWVudHMiCiAgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIHVy
bDogIm1hc3Rlci9zdmctc3RhZ2UuaHRtbCIsCisgICAgICAgICAgICBuYW1lOiAiU1ZHIGNsaXBw
ZWQgcmVjdHMiCisgICAgICAgIH0sCiAgICAgXQogKSk7CiAKZGlmZiAtLWdpdCBhL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcGFydGljbGVzLmh0bWwgYi9QZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3BhcnRpY2xlcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNmNjYjcKLS0tIC9kZXYvbnVsbAorKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3BhcnRpY2xlcy5odG1sCkBA
IC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bGlu
ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJyZXNvdXJjZXMvc3RhZ2Uu
Y3NzIj4KKyAgICA8c3R5bGU+CisgICAgICAgICNzdGFnZSBkaXYgeworICAgICAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoLi4v
cmVzb3VyY2VzL3N0YXIuc3ZnKTsKKyAgICAgICAgICAgIG1hc2s6IHVybCguLi9yZXNvdXJjZXMv
c3Rhci5zdmcjc3Rhci1tYXNrKTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8ZGl2IGlkPSJzdGFnZSI+PC9kaXY+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9zdHJpbmdzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2V4dGVuc2lvbnMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvYWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvbWF0aC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWlu
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3BhcnRpY2xlcy5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdmctcGFydGljbGVzLmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMv
QW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvcmVzb3VyY2VzL2RvbS1wYXJ0aWNsZXMuanMgYi9QZXJm
b3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9kb20tcGFydGlj
bGVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1NjI0MjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jl
c291cmNlcy9kb20tcGFydGljbGVzLmpzCkBAIC0wLDAgKzEsNTUgQEAKKyhmdW5jdGlvbigpIHsK
KworRE9NUGFydGljbGUgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoUGFydGljbGUsCisgICAg
ZnVuY3Rpb24oc3RhZ2UpCisgICAgeworICAgICAgICBQYXJ0aWNsZS5jYWxsKHRoaXMsIHN0YWdl
KTsKKyAgICAgICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CisgICAgICAgIHN0YWdlLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50KTsKKworICAg
ICAgICB0aGlzLl9hcHBseUF0dHJpYnV0ZXMoKTsKKyAgICAgICAgdGhpcy5tb3ZlKCk7CisgICAg
fSwgeworCisgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFBhcnRpY2xlLnBy
b3RvdHlwZS5yZXNldC5jYWxsKHRoaXMpOworICAgICAgICBpZiAodGhpcy5lbGVtZW50KQorICAg
ICAgICAgICAgdGhpcy5fYXBwbHlBdHRyaWJ1dGVzKCk7CisgICAgfSwKKworICAgIF9hcHBseUF0
dHJpYnV0ZXM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS53
aWR0aCA9IHRoaXMuc2l6ZS54ICsgInB4IjsKKyAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmhl
aWdodCA9IHRoaXMuc2l6ZS55ICsgInB4IjsKKyAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmJh
Y2tncm91bmRDb2xvciA9ICJoc2woIiArICgoKERhdGUubm93KCkvMjAwMCklMSkqMzYwKSArICIs
IDcwJSwgNDUlKSI7CisgICAgfSwKKworICAgIG1vdmU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHRoaXMuZWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAidHJhbnNsYXRlKCIgKyB0aGlzLnBv
c2l0aW9uLnggKyAicHgsICIgKyB0aGlzLnBvc2l0aW9uLnkgKyAicHgpIiArIHRoaXMucm90YXRl
ci5yb3RhdGVaKCk7CisgICAgfQorfSk7CisKK1V0aWxpdGllcy5leHRlbmRPYmplY3QoUGFydGlj
bGVzU3RhZ2UucHJvdG90eXBlLCB7CisgICAgY3JlYXRlUGFydGljbGU6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBuZXcgRE9NUGFydGljbGUodGhpcyk7CisgICAgfSwKKworICAg
IHdpbGxSZW1vdmVQYXJ0aWNsZTogZnVuY3Rpb24ocGFydGljbGUpCisgICAgeworICAgICAgICBw
YXJ0aWNsZS5lbGVtZW50LnJlbW92ZSgpOworICAgIH0KK30pOworCitQYXJ0aWNsZXNCZW5jaG1h
cmsgPSBVdGlsaXRpZXMuY3JlYXRlU3ViY2xhc3MoQmVuY2htYXJrLAorICAgIGZ1bmN0aW9uKG9w
dGlvbnMpCisgICAgeworICAgICAgICBCZW5jaG1hcmsuY2FsbCh0aGlzLCBuZXcgUGFydGljbGVz
U3RhZ2UoKSwgb3B0aW9ucyk7CisgICAgfQorKTsKKword2luZG93LmJlbmNobWFya0NsYXNzID0g
UGFydGljbGVzQmVuY2htYXJrOworCit9KSgpOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0
cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvcGFydGljbGVzLmpzIGIvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvcGFydGljbGVzLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3MjBiNTkKLS0tIC9kZXYvbnVs
bAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNl
cy9wYXJ0aWNsZXMuanMKQEAgLTAsMCArMSwxMzMgQEAKK2Z1bmN0aW9uIFBhcnRpY2xlKHN0YWdl
KQoreworICAgIHRoaXMuc3RhZ2UgPSBzdGFnZTsKKyAgICB0aGlzLnJvdGF0ZXIgPSB0aGlzLnN0
YWdlLnJhbmRvbVJvdGF0ZXIoKTsKKyAgICB0aGlzLnJlc2V0KCk7Cit9CisKK1BhcnRpY2xlLnBy
b3RvdHlwZSA9Cit7CisgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBy
YW5kU2l6ZSA9IE1hdGgucG93KE1hdGgucmFuZG9tKCksIDQpICogMjUgKyAxNTsKKyAgICAgICAg
dGhpcy5zaXplID0gbmV3IFBvaW50KHJhbmRTaXplLCByYW5kU2l6ZSk7CisgICAgICAgIHRoaXMu
bWF4UG9zaXRpb24gPSB0aGlzLnN0YWdlLnNpemUuc3VidHJhY3QodGhpcy5zaXplKTsKKyAgICAg
ICAgdGhpcy5wb3NpdGlvbiA9IG5ldyBQb2ludCh0aGlzLnN0YWdlLnNpemUueCAvIDIsIHRoaXMu
c3RhZ2Uuc2l6ZS55IC8gNCk7CisKKyAgICAgICAgdmFyIGFuZ2xlID0gdGhpcy5zdGFnZS5yYW5k
b21JbnQoMCwgdGhpcy5zdGFnZS5lbWl0U3RlcHMpIC8gdGhpcy5zdGFnZS5lbWl0U3RlcHMgKiBN
YXRoLlBJICogMiArIERhdGUubm93KCkvMTAwMCp0aGlzLnN0YWdlLmVtaXNzaW9uU3BpbjsKKyAg
ICAgICAgdGhpcy5fdmVsb2NpdHkgPSBuZXcgUG9pbnQoTWF0aC5zaW4oYW5nbGUpLCBNYXRoLmNv
cyhhbmdsZSkpCisgICAgICAgICAgICAubXVsdGlwbHkodGhpcy5zdGFnZS5yYW5kb20oLjgsIDEu
MikpOworICAgIH0sCisKKyAgICBhbmltYXRlOiBmdW5jdGlvbih0aW1lRGVsdGEpCisgICAgewor
ICAgICAgICB0aGlzLnJvdGF0ZXIubmV4dCh0aW1lRGVsdGEpOworCisgICAgICAgIHRoaXMucG9z
aXRpb24gPSB0aGlzLnBvc2l0aW9uLmFkZCh0aGlzLl92ZWxvY2l0eS5tdWx0aXBseSh0aW1lRGVs
dGEpKTsKKyAgICAgICAgdGhpcy5fdmVsb2NpdHkueSArPSAwLjAzOworCisgICAgICAgIC8vIElm
IHBhcnRpY2xlIGlzIGdvaW5nIHRvIG1vdmUgb2ZmIHJpZ2h0IHNpZGUKKyAgICAgICAgdmFyIG1h
eFggPSB0aGlzLnN0YWdlLnNpemUueCAtIHRoaXMuc2l6ZS54OworICAgICAgICBpZiAodGhpcy5w
b3NpdGlvbi54ID4gdGhpcy5tYXhQb3NpdGlvbi54KSB7CisgICAgICAgICAgICBpZiAodGhpcy5f
dmVsb2NpdHkueCA+IDApCisgICAgICAgICAgICAgICAgdGhpcy5fdmVsb2NpdHkueCAqPSAtMTsK
KyAgICAgICAgICAgIHRoaXMucG9zaXRpb24ueCA9IHRoaXMubWF4UG9zaXRpb24ueDsKKyAgICAg
ICAgfSBlbHNlIGlmICh0aGlzLnBvc2l0aW9uLnggPCAwKSB7CisgICAgICAgICAgICAvLyBJZiBw
YXJ0aWNsZSBpcyBnb2luZyB0byBtb3ZlIG9mZiBsZWZ0IHNpZGUKKyAgICAgICAgICAgIGlmICh0
aGlzLl92ZWxvY2l0eS54IDwgMCkKKyAgICAgICAgICAgICAgICB0aGlzLl92ZWxvY2l0eS54ICo9
IC0xOworICAgICAgICAgICAgdGhpcy5wb3NpdGlvbi54ID0gMDsKKyAgICAgICAgfQorCisgICAg
ICAgIC8vIElmIHBhcnRpY2xlIGlzIGdvaW5nIHRvIG1vdmUgb2ZmIGJvdHRvbSBzaWRlCisgICAg
ICAgIGlmICh0aGlzLnBvc2l0aW9uLnkgPiB0aGlzLm1heFBvc2l0aW9uLnkpIHsKKyAgICAgICAg
ICAgIC8vIEFkanVzdCBkaXJlY3Rpb24gYnV0IG1haW50YWluIG1hZ25pdHVkZQorICAgICAgICAg
ICAgdmFyIG1hZ25pdHVkZSA9IHRoaXMuX3ZlbG9jaXR5Lmxlbmd0aCgpOworICAgICAgICAgICAg
dGhpcy5fdmVsb2NpdHkueCAqPSAxLjUgKyAuMDA1ICogdGhpcy5zaXplLng7CisgICAgICAgICAg
ICB0aGlzLl92ZWxvY2l0eSA9IHRoaXMuX3ZlbG9jaXR5Lm5vcm1hbGl6ZSgpLm11bHRpcGx5KG1h
Z25pdHVkZSk7CisgICAgICAgICAgICBpZiAoTWF0aC5hYnModGhpcy5fdmVsb2NpdHkueSkgPCAw
LjcpCisgICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpOworICAgICAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICAgICAgaWYgKHRoaXMuX3ZlbG9jaXR5LnkgPiAwKQorICAgICAgICAgICAgICAg
ICAgICB0aGlzLl92ZWxvY2l0eS55ICo9IC0wLjk5OTsKKyAgICAgICAgICAgICAgICB0aGlzLnBv
c2l0aW9uLnkgPSB0aGlzLm1heFBvc2l0aW9uLnk7CisgICAgICAgICAgICB9CisgICAgICAgIH0g
ZWxzZSBpZiAodGhpcy5wb3NpdGlvbi55IDwgMCkgeworICAgICAgICAgICAgLy8gSWYgcGFydGlj
bGUgaXMgZ29pbmcgdG8gbW92ZSBvZmYgdG9wIHNpZGUKKyAgICAgICAgICAgIHZhciBtYWduaXR1
ZGUgPSB0aGlzLl92ZWxvY2l0eS5sZW5ndGgoKTsKKyAgICAgICAgICAgIHRoaXMuX3ZlbG9jaXR5
LnggKj0gMS41ICsgLjAwNSAqIHRoaXMuc2l6ZS54OworICAgICAgICAgICAgdGhpcy5fdmVsb2Np
dHkgPSB0aGlzLl92ZWxvY2l0eS5ub3JtYWxpemUoKS5tdWx0aXBseShtYWduaXR1ZGUpOworICAg
ICAgICAgICAgaWYgKHRoaXMuX3ZlbG9jaXR5LnkgPCAwKQorICAgICAgICAgICAgICAgIHRoaXMu
X3ZlbG9jaXR5LnkgKj0gLTAuOTk4OworICAgICAgICAgICAgdGhpcy5wb3NpdGlvbi55ID0gMDsK
KyAgICAgICAgfQorCisgICAgICAgIHRoaXMubW92ZSgpOworICAgIH0sCisKKyAgICBtb3ZlOiBm
dW5jdGlvbigpCisgICAgeworICAgIH0KK30KKworUGFydGljbGVzU3RhZ2UgPSBVdGlsaXRpZXMu
Y3JlYXRlU3ViY2xhc3MoU3RhZ2UsCisgICAgZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgU3Rh
Z2UuY2FsbCh0aGlzKTsKKyAgICAgICAgdGhpcy5wYXJ0aWNsZXMgPSBbXTsKKyAgICB9LCB7CisK
KyAgICBpbml0aWFsaXplOiBmdW5jdGlvbihiZW5jaG1hcmspCisgICAgeworICAgICAgICBTdGFn
ZS5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMsIGJlbmNobWFyayk7CisgICAgICAgIHRo
aXMuZW1pc3Npb25TcGluID0gdGhpcy5yYW5kb20oMCwgMyk7CisgICAgICAgIHRoaXMuZW1pdFN0
ZXBzID0gdGhpcy5yYW5kb21JbnQoNCwgNik7CisgICAgfSwKKworICAgIGFuaW1hdGU6IGZ1bmN0
aW9uKHRpbWVEZWx0YSkKKyAgICB7CisgICAgICAgIHZhciBvZmZzZXQgPSAoRGF0ZS5ub3coKSAv
IDIwMDApICUgMTsKKyAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmJhY2tncm91bmQgPSBbCisg
ICAgICAgICAgICAibGluZWFyLWdyYWRpZW50KCIsCisgICAgICAgICAgICBvZmZzZXQgKiAzNjAs
CisgICAgICAgICAgICAiZGVnLCBoc2woIiwKKyAgICAgICAgICAgIG9mZnNldCAqIDM2MCwKKyAg
ICAgICAgICAgICIsIDUwJSwgODAlKSwgaHNsKCIsCisgICAgICAgICAgICAob2Zmc2V0ICsgLjEp
ICogMzYwLAorICAgICAgICAgICAgIiwgNTAlLCA4MCUpKSIKKyAgICAgICAgXS5qb2luKCIiKTsK
KworICAgICAgICB0aW1lRGVsdGEgLz0gNDsKKyAgICAgICAgdGhpcy5wYXJ0aWNsZXMuZm9yRWFj
aChmdW5jdGlvbihwYXJ0aWNsZSkgeworICAgICAgICAgICAgcGFydGljbGUuYW5pbWF0ZSh0aW1l
RGVsdGEpOworICAgICAgICB9KTsKKyAgICB9LAorCisgICAgdHVuZTogZnVuY3Rpb24oY291bnQp
CisgICAgeworICAgICAgICBpZiAoY291bnQgPT0gMCkKKyAgICAgICAgICAgIHJldHVybiB0aGlz
LnBhcnRpY2xlcy5sZW5ndGg7CisKKyAgICAgICAgaWYgKGNvdW50ID4gMCkgeworICAgICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgKytpKQorICAgICAgICAgICAgICAgIHRoaXMu
cGFydGljbGVzLnB1c2godGhpcy5jcmVhdGVQYXJ0aWNsZSgpKTsKKyAgICAgICAgICAgIHJldHVy
biB0aGlzLnBhcnRpY2xlcy5sZW5ndGg7CisgICAgICAgIH0KKworICAgICAgICBjb3VudCA9IE1h
dGgubWluKC1jb3VudCwgdGhpcy5wYXJ0aWNsZXMubGVuZ3RoKTsKKworICAgICAgICBpZiAodHlw
ZW9mKHRoaXMud2lsbFJlbW92ZVBhcnRpY2xlKSA9PSAiZnVuY3Rpb24iKSB7CisgICAgICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGNvdW50OyArK2kpCisgICAgICAgICAgICAgICAgdGhpcy53
aWxsUmVtb3ZlUGFydGljbGUodGhpcy5wYXJ0aWNsZXNbaV0pOworICAgICAgICB9CisKKyAgICAg
ICAgdGhpcy5wYXJ0aWNsZXMuc3BsaWNlKDAsIGNvdW50KTsKKyAgICAgICAgcmV0dXJuIHRoaXMu
cGFydGljbGVzLmxlbmd0aDsKKyAgICB9LAorCisgICAgY29tcGxleGl0eTogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgLy8gV2UgYWRkIG9uZSB0byByZXByZXNlbnQgdGhlIGdyYWRpZW50IGJh
Y2tncm91bmQuCisgICAgICAgIHJldHVybiB0aGlzLnBhcnRpY2xlcy5sZW5ndGggKyAxOworICAg
IH0KK30pOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Jl
c291cmNlcy9zdGFyLnN2ZyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNv
dXJjZXMvc3Rhci5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M0NmFl
MAotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9y
ZXNvdXJjZXMvc3Rhci5zdmcKQEAgLTAsMCArMSw4IEBACis8c3ZnIHZlcnNpb249IjEuMSIgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94bGluayIgdmlld0JveD0iMCAwIDEgMSI+CisgICAgPGRlZnM+CisgICAgICAg
IDxtYXNrIGlkPSJzdGFyLW1hc2siIG1hc2tVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIG1hc2tD
b250ZW50VW5pdHM9Im9iamVjdEJvdW5kaW5nQm94Ij4KKyAgICAgICAgICAgIDxwYXRoIGZpbGw9
IndoaXRlIiBkPSJNLjUwLDBMLjM4LC4zOEwwLC4zOEwuMzAsLjYwTC4xOCwxTC41MCwuNzVMLjgy
LDFMLjcwLC42MEwxLC4zOEwuNjIsLjM4eiIgLz4KKyAgICAgICAgPC9tYXNrPgorICAgIDwvZGVm
cz4KKyAgICA8cGF0aCBkPSJNLjUwLDBMLjM4LC4zOEwwLC4zOEwuMzAsLjYwTC4xOCwxTC41MCwu
NzVMLjgyLDFMLjcwLC42MEwxLC4zOEwuNjIsLjM4eiIgZmlsbD0id2hpdGUiIC8+Cis8L3N2Zz4K
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYzllNzUyYy4uOThiNTU2MyAxMDA2NDQKLS0tIGEvUGVyZm9ybWFu
Y2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxNi0wMS0wNyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXBkYXRlIGJlbmNobWFyayB0ZXN0IHN1aXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgdGVzdC4gVGhlIHRlc3QgaGFzIGEg
cm90YXRpbmcgYmFja2dyb3VuZAorICAgICAgICBncmFkaWVudCwgYW5kIGRvZXMgYSBiZXR0ZXIg
am9iIHBoeXNpY2FsbHkgc2ltdWxhdGluZworICAgICAgICBwYXJ0aWNsZXMuCisKKyAgICAgICAg
KiBBbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzOiBUZWFjaCBQb2ludCB0byB0YWtl
IGNvbnN0YW50cyBhcyB3ZWxsIGFzIG90aGVyIFBvaW50cy4KKyAgICAgICAgKFBvaW50LnByb3Rv
dHlwZS5sZW5ndGgpOiBBZGRlZC4KKyAgICAgICAgKFBvaW50LnByb3RvdHlwZS5ub3JtYWxpemUp
OiBBZGRlZC4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvdGVzdHMuanM6
IEFkZCB0aGUgdGVzdCB0byB0aGUgbWFzdGVyIHN1aXRlLgorICAgICAgICAqIEFuaW1vbWV0ZXIv
dGVzdHMvbWFzdGVyL3BhcnRpY2xlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBBbmltb21ldGVy
L3Rlc3RzL21hc3Rlci9yZXNvdXJjZXMvcGFydGljbGVzLmpzOiBBZGRlZC4gUGFyZW50IGNsYXNz
IGZvciBkaWZmZXJlbnQga2luZHMgb2YgcGFydGljbGVzLgorICAgICAgICAoUGFydGljbGUpOgor
ICAgICAgICAoUGFydGljbGUucHJvdG90eXBlLnJlc2V0KTogSWYgdGhlIHBhcnRpY2xlIHN0YXJ0
cyBzbG93aW5nIGRvd24gaW4gdGVybXMgb2YgaXRzIGFuaW1hdGlvbiwKKyAgICAgICAgcmVzZXQg
aXQuCisgICAgICAgIChQYXJ0aWNsZS5wcm90b3R5cGUuYW5pbWF0ZSk6IEJvdW5jZSBvZmYgdGhl
IHdhbGxzIGVsYXN0aWNhbGx5LCBhbmQgaW5jbHVkZSBncmF2aXR5LgorICAgICAgICAoUGFydGlj
bGUucHJvdG90eXBlLm1vdmUpOiBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZS4KKyAgICAgICAg
KFBhcnRpY2xlc1N0YWdlKTogU3RhZ2UgaW5jbHVkZXMgYSByb3RhdGluZyBncmFkaWVudCBiYWNr
Z3JvdW5kLgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL3Jlc291cmNlcy9kb20t
cGFydGljbGVzLmpzOiBBZGRlZC4gQ3JlYXRlcyBhIDxkaXY+IGFuZCBhZGRzIGl0IHRvCisgICAg
ICAgIHRoZSBzdGFnZS4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9zdGFy
LnN2ZzogQWRkZWQuCisKIDIwMTYtMDEtMDMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgog
CiAgICAgICAgIFVwZGF0ZSBiZW5jaG1hcmsgdGVzdCBzdWl0ZQotLSAKMi41LjQgKEFwcGxlIEdp
dC02MSkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268526</attachid>
            <date>2016-01-07 19:02:58 -0800</date>
            <delta_ts>2016-01-07 19:54:54 -0800</delta_ts>
            <desc>1. Fix tests for other browsers (Take 2)</desc>
            <filename>0001-Update-benchmark-test-suite.patch</filename>
            <type>text/plain</type>
            <size>3361</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBiMzMxZTliYmYyOGE5YWZkM2Q1MmZiZWRhYjM5MDg5MTA2YTk1Y2VjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBTdW4s
IDMgSmFuIDIwMTYgMTg6NDE6MjggLTA4MDAKU3ViamVjdDogW1BBVENIIDEvMl0gVXBkYXRlIGJl
bmNobWFyayB0ZXN0IHN1aXRlCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUyNjc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkZpeCB0ZXN0cyBmb3Igb3Ro
ZXIgYnJvd3NlcnMuCgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanM6CihQb2lu
dC5lbGVtZW50Q2xpZW50U2l6ZSk6IFNvbWUgYnJvd3NlcnMgcmV0dXJuIDAgZm9yIFNWRyBjbGll
bnRXaWR0aCBhbmQgY2xpZW50SGVpZ2h0LgpVc2UgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgaW5z
dGVhZC4KKiBBbmltb21ldGVyL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMu
anM6CihDYW52YXNFbGVjdHJvbi5wcm90b3R5cGUuX2RyYXcpOiBTb21lIGJyb3dzZXJzIGRvbid0
IHN1cHBvcnQgZWxsaXBzZS4KLS0tCiBQZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL2V4dGVuc2lvbnMuanMgICAgICAgfCAgMyArKy0KIC4uLi9Bbmltb21ldGVyL3Rlc3RzL21p
c2MvcmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMuanMgICB8ICA4ICsrKysrLS0tCiBQZXJmb3Jt
YW5jZVRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNSAr
KysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgNCBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL2V4dGVuc2lvbnMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2Vz
L2V4dGVuc2lvbnMuanMKaW5kZXggZjM5YmNhZi4uZjMxYjgwZSAxMDA2NDQKLS0tIGEvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcwpAQCAtNjYsNyAr
NjYsOCBAQCBQb2ludC5wb2ludE9uRWxsaXBzZSA9IGZ1bmN0aW9uKGFuZ2xlLCByYWRpdXNlcykK
IAogUG9pbnQuZWxlbWVudENsaWVudFNpemUgPSBmdW5jdGlvbihlbGVtZW50KQogewotICAgIHJl
dHVybiBuZXcgUG9pbnQoZWxlbWVudC5jbGllbnRXaWR0aCwgZWxlbWVudC5jbGllbnRIZWlnaHQp
OworICAgIHZhciByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBy
ZXR1cm4gbmV3IFBvaW50KHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0KTsKIH0KIAogUG9pbnQucHJv
dG90eXBlID0KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9t
aXNjL3Jlc291cmNlcy9jYW52YXMtZWxlY3Ryb25zLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmlt
b21ldGVyL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMuanMKaW5kZXggZjdi
MGE2NS4uZWQ4NGZhMCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rl
c3RzL21pc2MvcmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMuanMKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJvbnMuanMK
QEAgLTM0LDkgKzM0LDExIEBAIENhbnZhc0VsZWN0cm9uLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIHRoaXMuX2NvbnRleHQuZmlsbFN0eWxlID0gdGhpcy5fY29sb3I7CiAKICAgICAgICAgICAg
IC8vIERyYXcgdGhlIG9yYml0IG9mIHRoZSBvYmplY3QuCi0gICAgICAgICAgICB0aGlzLl9jb250
ZXh0LmJlZ2luUGF0aCgpOwotICAgICAgICAgICAgdGhpcy5fY29udGV4dC5lbGxpcHNlKHRoaXMu
X3N0YWdlU2l6ZS5jZW50ZXIueCwgdGhpcy5fc3RhZ2VTaXplLmNlbnRlci55LCB0aGlzLl9vcmJp
dFJhZGl1c2VzLngsIHRoaXMuX29yYml0UmFkaXVzZXMueSwgMCwgMCwgMiAqIE1hdGguUEkpOwot
ICAgICAgICAgICAgdGhpcy5fY29udGV4dC5zdHJva2UoKTsKKyAgICAgICAgICAgIGlmICh0aGlz
Ll9jb250ZXh0LmVsbGlwc2UpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9jb250ZXh0LmJlZ2lu
UGF0aCgpOworICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRleHQuZWxsaXBzZSh0aGlzLl9zdGFn
ZVNpemUuY2VudGVyLngsIHRoaXMuX3N0YWdlU2l6ZS5jZW50ZXIueSwgdGhpcy5fb3JiaXRSYWRp
dXNlcy54LCB0aGlzLl9vcmJpdFJhZGl1c2VzLnksIDAsIDAsIDIgKiBNYXRoLlBJKTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9jb250ZXh0LnN0cm9rZSgpOworICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAvLyBEcmF3IHRoZSBvYmplY3QuCiAgICAgICAgICAgICB0aGlzLl9jb250ZXh0LmJl
Z2luUGF0aCgpOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cgYi9QZXJm
b3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCBjMWNjYTVmLi42M2E0OThmIDEwMDY0NAotLS0g
YS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE2LTAxLTAzICBKb24gTGVlICA8am9ubGVlQGFwcGxl
LmNvbT4KKworICAgICAgICBVcGRhdGUgYmVuY2htYXJrIHRlc3Qgc3VpdGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjY3OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0ZXN0cyBmb3Igb3RoZXIg
YnJvd3NlcnMuCisKKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpz
OgorICAgICAgICAoUG9pbnQuZWxlbWVudENsaWVudFNpemUpOiBTb21lIGJyb3dzZXJzIHJldHVy
biAwIGZvciBTVkcgY2xpZW50V2lkdGggYW5kIGNsaWVudEhlaWdodC4KKyAgICAgICAgVXNlIGdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpIGluc3RlYWQuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0
cy9taXNjL3Jlc291cmNlcy9jYW52YXMtZWxlY3Ryb25zLmpzOgorICAgICAgICAoQ2FudmFzRWxl
Y3Ryb24ucHJvdG90eXBlLl9kcmF3KTogU29tZSBicm93c2VycyBkb24ndCBzdXBwb3J0IGVsbGlw
c2UuCisKIDIwMTYtMDEtMDcgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBhIHdhaXRVbnRpbFJlYWR5KCkgc3RlcAotLSAKMi41LjQgKEFwcGxlIEdpdC02MSkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268527</attachid>
            <date>2016-01-07 19:03:49 -0800</date>
            <delta_ts>2016-01-07 19:13:30 -0800</delta_ts>
            <desc>2. Move algorithm.js and sampler.js (Take 2)</desc>
            <filename>0002-Update-benchmark-test-suite.patch</filename>
            <type>text/plain</type>
            <size>49995</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBkNTM5MDI1MmYxZGVhN2M4Njk5YmQzMTVhMTEwNWQ0MzNlYTVmOWFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBTdW4s
IDMgSmFuIDIwMTYgMjM6MDc6NDIgLTA4MDAKU3ViamVjdDogW1BBVENIIDIvMl0gVXBkYXRlIGJl
bmNobWFyayB0ZXN0IHN1aXRlCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUyNjc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCk1vdmUgYWxnb3JpdGhtLmpz
IGFuZCBzYW1wbGVyLmpzIHRvIHRlc3RzLyBhbmQgYmVuY2htYXJrLXJ1bm5lci5qcyB0byBydW5u
ZXIvLgoKTmVlZGVkIGJ5IGJvdGggaGFybmVzc2VzLgoqIEFuaW1vbWV0ZXIvcmVzb3VyY2VzL3J1
bm5lci9iZW5jaG1hcmstcnVubmVyLmpzOiBSZW5hbWVkIGZyb20gUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYmVuY2htYXJrLXJ1bm5lci5qcy4KKiBB
bmltb21ldGVyL2RldmVsb3Blci5odG1sOgoqIEFuaW1vbWV0ZXIvaW5kZXguaHRtbDoKCk5lZWRl
ZCBvbmx5IGJ5IHRoZSB0ZXN0cy4gTW92ZSB0byB0ZXN0cy8uIFN0YXRpc3RpY3MsIGluIHNhbXBs
ZXIuanMsIGlzIHVzZWQgYnkgUmVzdWx0c0Rhc2hib2FyZCwgc28gbW92ZSB0aGF0CmludG8gZXh0
ZW5zaW9ucy5qcy4KKiBBbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpzOgoqIEFuaW1v
bWV0ZXIvdGVzdHMvcmVzb3VyY2VzL2FsZ29yaXRobS5qczogUmVuYW1lZCBmcm9tIFBlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvYWxnb3JpdGhtLmpzLgoqIEFuaW1vbWV0ZXIv
dGVzdHMvcmVzb3VyY2VzL3NhbXBsZXIuanM6IFJlbmFtZWQgZnJvbSBQZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvcmVzb3VyY2VzL3NhbXBsZXIuanMuCiogQW5pbW9tZXRlci90ZXN0cy9ib3Vu
Y2luZy1wYXJ0aWNsZXMvYm91bmNpbmctY2FudmFzLWltYWdlcy5odG1sOgoqIEFuaW1vbWV0ZXIv
dGVzdHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNhbnZhcy1zaGFwZXMuaHRtbDoKKiBB
bmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jc3MtaW1hZ2VzLmh0
bWw6CiogQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNpbmctY3NzLXNo
YXBlcy5odG1sOgoqIEFuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5n
LXN2Zy1pbWFnZXMuaHRtbDoKKiBBbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9i
b3VuY2luZy1zdmctc2hhcGVzLmh0bWw6CiogQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvY2FudmFz
LXN0YWdlLmh0bWw6CiogQW5pbW9tZXRlci90ZXN0cy9taXNjL2NhbnZhcy1lbGVjdHJvbnMuaHRt
bDoKKiBBbmltb21ldGVyL3Rlc3RzL21pc2MvY2FudmFzLXN0YXJzLmh0bWw6CiogQW5pbW9tZXRl
ci90ZXN0cy9taXNjL2NvbXBvc2l0aW5nLXRyYW5zZm9ybXMuaHRtbDoKKiBBbmltb21ldGVyL3Rl
c3RzL3NpbXBsZS9zaW1wbGUtY2FudmFzLXBhdGhzLmh0bWw6CiogQW5pbW9tZXRlci90ZXN0cy90
ZW1wbGF0ZS90ZW1wbGF0ZS1jYW52YXMuaHRtbDoKKiBBbmltb21ldGVyL3Rlc3RzL3RlbXBsYXRl
L3RlbXBsYXRlLWNzcy5odG1sOgoqIEFuaW1vbWV0ZXIvdGVzdHMvdGVtcGxhdGUvdGVtcGxhdGUt
c3ZnLmh0bWw6CiogQW5pbW9tZXRlci90ZXN0cy90ZXh0L2xheWVyaW5nLXRleHQuaHRtbDoKKiBB
bmltb21ldGVyL3Rlc3RzL3RleHQvdGV4dC1ib3hlcy5odG1sOgotLS0KIFBlcmZvcm1hbmNlVGVz
dHMvQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbCAgICAgICAgIHwgICAzICstCiBQZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvaW5kZXguaHRtbCAgICAgICAgICAgICB8ICAgMyArLQogUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9hbGdvcml0aG0uanMgfCAxMzQgLS0tLS0t
LS0tLS0tLS0tLQogLi4uL3Jlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYmVuY2htYXJrLXJ1bm5lci5q
cyAgICAgfCAxNzYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vQW5pbW9tZXRlci9yZXNvdXJj
ZXMvZXh0ZW5zaW9ucy5qcyAgICAgICAgICAgICB8ICAyNyArKysrCiAuLi4vcmVzb3VyY2VzL3J1
bm5lci9iZW5jaG1hcmstcnVubmVyLmpzICAgICAgICAgICB8IDE3NiArKysrKysrKysrKysrKysr
KysrKysKIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvc2FtcGxlci5qcyAg
IHwgMTI5IC0tLS0tLS0tLS0tLS0tLQogLi4uL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1j
YW52YXMtaW1hZ2VzLmh0bWwgfCAgIDQgKy0KIC4uLi9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNp
bmctY2FudmFzLXNoYXBlcy5odG1sIHwgICA0ICstCiAuLi4vYm91bmNpbmctcGFydGljbGVzL2Jv
dW5jaW5nLWNzcy1pbWFnZXMuaHRtbCAgICB8ICAgNCArLQogLi4uL2JvdW5jaW5nLXBhcnRpY2xl
cy9ib3VuY2luZy1jc3Mtc2hhcGVzLmh0bWwgICAgfCAgIDQgKy0KIC4uLi9ib3VuY2luZy1wYXJ0
aWNsZXMvYm91bmNpbmctc3ZnLWltYWdlcy5odG1sICAgIHwgICA0ICstCiAuLi4vYm91bmNpbmct
cGFydGljbGVzL2JvdW5jaW5nLXN2Zy1zaGFwZXMuaHRtbCAgICB8ICAgNCArLQogLi4uL0FuaW1v
bWV0ZXIvdGVzdHMvbWFzdGVyL2NhbnZhcy1zdGFnZS5odG1sICAgICAgfCAgIDQgKy0KIC4uLi9B
bmltb21ldGVyL3Rlc3RzL21pc2MvY2FudmFzLWVsZWN0cm9ucy5odG1sICAgIHwgICA0ICstCiAu
Li4vQW5pbW9tZXRlci90ZXN0cy9taXNjL2NhbnZhcy1zdGFycy5odG1sICAgICAgICB8ICAgNCAr
LQogLi4uL3Rlc3RzL21pc2MvY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5odG1sICAgICAgICAgfCAg
IDQgKy0KIC4uLi9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9hbGdvcml0aG0uanMgICAgICAg
IHwgMTM0ICsrKysrKysrKysrKysrKysKIC4uLi9Bbmltb21ldGVyL3Rlc3RzL3Jlc291cmNlcy9z
YW1wbGVyLmpzICAgICAgICAgIHwgMTAyICsrKysrKysrKysrKwogLi4uL3Rlc3RzL3NpbXBsZS9z
aW1wbGUtY2FudmFzLXBhdGhzLmh0bWwgICAgICAgICAgfCAgIDQgKy0KIC4uLi9Bbmltb21ldGVy
L3Rlc3RzL3RlbXBsYXRlL3RlbXBsYXRlLWNhbnZhcy5odG1sIHwgICA0ICstCiAuLi4vQW5pbW9t
ZXRlci90ZXN0cy90ZW1wbGF0ZS90ZW1wbGF0ZS1jc3MuaHRtbCAgICB8ICAgNCArLQogLi4uL0Fu
aW1vbWV0ZXIvdGVzdHMvdGVtcGxhdGUvdGVtcGxhdGUtc3ZnLmh0bWwgICAgfCAgIDQgKy0KIC4u
Li9Bbmltb21ldGVyL3Rlc3RzL3RleHQvbGF5ZXJpbmctdGV4dC5odG1sICAgICAgIHwgICA0ICst
CiAuLi4vQW5pbW9tZXRlci90ZXN0cy90ZXh0L3RleHQtYm94ZXMuaHRtbCAgICAgICAgICB8ICAg
NCArLQogUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgMzYgKysrKysKIDI2IGZpbGVzIGNoYW5nZWQsIDUwOSBpbnNlcnRpb25zKCspLCA0NzUgZGVs
ZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Jlc291cmNlcy9hbGdvcml0aG0uanMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBQZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9iZW5jaG1hcmstcnVubmVyLmpz
CiBjcmVhdGUgbW9kZSAxMDA2NDQgUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNl
cy9ydW5uZXIvYmVuY2htYXJrLXJ1bm5lci5qcwogZGVsZXRlIG1vZGUgMTAwNjQ0IFBlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvc2FtcGxlci5qcwogY3JlYXRlIG1vZGUgMTAw
NjQ0IFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvYWxnb3JpdGht
LmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L3Jlc291cmNlcy9zYW1wbGVyLmpzCgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmlt
b21ldGVyL2RldmVsb3Blci5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2RldmVs
b3Blci5odG1sCmluZGV4IDIwMDE2ZmEuLmQxYjQ1ODEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNl
VGVzdHMvQW5pbW9tZXRlci9kZXZlbG9wZXIuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0Fu
aW1vbWV0ZXIvZGV2ZWxvcGVyLmh0bWwKQEAgLTUsNyArNSw2IEBACiAgICAgPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcnVubmVyL2FuaW1vbWV0ZXIuY3NzIj4KICAgICA8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9t
ZXRlci5jc3MiPgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zYW1wbGVyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V4dGVuc2lvbnMuanMiIGNoYXJzZXQ9InV0Zi04Ij48
L3NjcmlwdD4KIAogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyL3Rlc3RzLmpzIiBj
aGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+CkBAIC0xMyw3ICsxMiw3IEBACiAgICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy9ydW5uZXIvYW5pbW9tZXRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy9kZWJ1Zy1ydW5uZXIvYW5pbW9tZXRlci5qcyI+PC9zY3JpcHQ+CiAK
LSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RlYnVnLXJ1bm5lci9iZW5jaG1hcmstcnVubmVy
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3J1bm5lci9iZW5jaG1h
cmstcnVubmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2RlYnVn
LXJ1bm5lci9kMy5taW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
ZGVidWctcnVubmVyL2dyYXBoLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9pbmRleC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9B
bmltb21ldGVyL2luZGV4Lmh0bWwKaW5kZXggMGMzMDFlMy4uZTE2NGRiNSAxMDA2NDQKLS0tIGEv
UGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL2luZGV4Lmh0bWwKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL2luZGV4Lmh0bWwKQEAgLTUsMTMgKzUsMTIgQEAKICAgICA8bWV0YSBu
YW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCB1c2VyLXNjYWxhYmxl
PW5vIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9ydW5uZXIv
YW5pbW9tZXRlci5jc3MiPgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3RyaW5ncy5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zYW1wbGVyLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V4dGVuc2lvbnMuanMiIGNoYXJzZXQ9InV0
Zi04Ij48L3NjcmlwdD4KIAogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnVubmVyL3Rlc3Rz
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3J1bm5lci9hbmltb21l
dGVyLmpzIj48L3NjcmlwdD4KIAotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZGVidWctcnVu
bmVyL2JlbmNobWFyay1ydW5uZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcnVubmVyL2JlbmNobWFyay1ydW5uZXIuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+CiAgICAgPG1haW4+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIv
cmVzb3VyY2VzL2FsZ29yaXRobS5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNv
dXJjZXMvYWxnb3JpdGhtLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZWYyMWE5
Li4wMDAwMDAwCi0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvYWxn
b3JpdGhtLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTM0ICswLDAgQEAKLWZ1bmN0aW9uIEhlYXAo
bWF4U2l6ZSwgY29tcGFyZSkKLXsKLSAgICB0aGlzLl9tYXhTaXplID0gbWF4U2l6ZTsKLSAgICB0
aGlzLl9jb21wYXJlID0gY29tcGFyZTsKLSAgICB0aGlzLl9zaXplID0gMDsKLSAgICB0aGlzLl92
YWx1ZXMgPSBuZXcgQXJyYXkodGhpcy5fbWF4U2l6ZSk7Ci19Ci0KLUhlYXAucHJvdG90eXBlID0K
LXsKLSAgICAvLyBUaGlzIGlzIGEgYmluYXJ5IGhlYXAgcmVwcmVzZW50ZWQgaW4gYW4gYXJyYXku
IFRoZSByb290IGVsZW1lbnQgaXMgc3RvcmVkCi0gICAgLy8gaW4gdGhlIGZpcnN0IGVsZW1lbnQg
aW4gdGhlIGFycmF5LiBUaGUgcm9vdCBpcyBmb2xsb3dlZCBieSBpdHMgdHdvIGNoaWxkcmVuLgot
ICAgIC8vIFRoZW4gaXRzIGZvdXIgZ3JhbmRjaGlsZHJlbiBhbmQgc28gb24uIFNvIGV2ZXJ5IGxl
dmVsIGluIHRoZSBiaW5hcnkgaGVhcCBpcwotICAgIC8vIGRvdWJsZWQgaW4gdGhlIGZvbGxvd2lu
ZyBsZXZlbC4gSGVyZSBpcyBhbiBleGFtcGxlIG9mIHRoZSBub2RlIGluZGljZXMgYW5kCi0gICAg
Ly8gaG93IHRoZXkgYXJlIHJlbGF0ZWQgdG8gdGhlaXIgcGFyZW50cyBhbmQgY2hpbGRyZW4uCi0g
ICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0gICAgLy8gICAgICAgICAgICAgIDAgICAgICAgMSAg
ICAgICAyICAgICAgIDMgICAgICAgNCAgICAgICA1ICAgICAgIDYKLSAgICAvLyBQQVJFTlQgICAg
ICAgLTEgICAgICAwICAgICAgIDAgICAgICAgMSAgICAgICAxICAgICAgIDIgICAgICAgMgotICAg
IC8vIExFRlQgICAgICAgICAxICAgICAgIDMgICAgICAgNSAgICAgICA3ICAgICAgIDkgICAgICAg
MTEgICAgICAxMwotICAgIC8vIFJJR0hUICAgICAgICAyICAgICAgIDQgICAgICAgNiAgICAgICA4
ICAgICAgIDEwICAgICAgMTIgICAgICAxNAotICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAg
IF9wYXJlbnRJbmRleDogZnVuY3Rpb24oaSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBpID4gMCA/
IE1hdGguZmxvb3IoKGkgLSAxKSAvIDIpIDogLTE7Ci0gICAgfSwKLSAgICAKLSAgICBfbGVmdElu
ZGV4OiBmdW5jdGlvbihpKQotICAgIHsKLSAgICAgICAgdmFyIGxlZnRJbmRleCA9IGkgKiAyICsg
MTsKLSAgICAgICAgcmV0dXJuIGxlZnRJbmRleCA8IHRoaXMuX3NpemUgPyBsZWZ0SW5kZXggOiAt
MTsKLSAgICB9LAotICAgIAotICAgIF9yaWdodEluZGV4OiBmdW5jdGlvbihpKQotICAgIHsKLSAg
ICAgICAgdmFyIHJpZ2h0SW5kZXggPSBpICogMiArIDI7Ci0gICAgICAgIHJldHVybiByaWdodElu
ZGV4IDwgdGhpcy5fc2l6ZSA/IHJpZ2h0SW5kZXggOiAtMTsKLSAgICB9LAotICAgIAotICAgIC8v
IFJldHVybiB0aGUgY2hpbGQgaW5kZXggdGhhdCBtYXkgdmlvbGF0ZSB0aGUgaGVhcCBwcm9wZXJ0
eSBhdCBpbmRleCBpLgotICAgIF9jaGlsZEluZGV4OiBmdW5jdGlvbihpKQotICAgIHsKLSAgICAg
ICAgdmFyIGxlZnQgPSB0aGlzLl9sZWZ0SW5kZXgoaSk7Ci0gICAgICAgIHZhciByaWdodCA9IHRo
aXMuX3JpZ2h0SW5kZXgoaSk7Ci0KLSAgICAgICAgaWYgKGxlZnQgIT0gLTEgJiYgcmlnaHQgIT0g
LTEpCi0gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29tcGFyZSh0aGlzLl92YWx1ZXNbbGVmdF0s
IHRoaXMuX3ZhbHVlc1tyaWdodF0pID4gMCA/IGxlZnQgOiByaWdodDsKLSAgICAgICAgCi0gICAg
ICAgIHJldHVybiBsZWZ0ICE9IC0xID8gbGVmdCA6IHJpZ2h0OwotICAgIH0sCi0gICAgCi0gICAg
aW5pdDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5fc2l6ZSA9IDA7Ci0gICAgfSwK
LSAgICAKLSAgICB0b3A6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9z
aXplID8gdGhpcy5fdmFsdWVzWzBdIDogTmFOOwotICAgIH0sCi0gICAgCi0gICAgcHVzaDogZnVu
Y3Rpb24odmFsdWUpCi0gICAgewotICAgICAgICBpZiAodGhpcy5fc2l6ZSA9PSB0aGlzLl9tYXhT
aXplKSB7Ci0gICAgICAgICAgICAvLyBJZiBzaXplIGlzIGJvdW5kZWQgYW5kIHRoZSBuZXcgdmFs
dWUgY2FuIGJlIGEgcGFyZW50IG9mIHRoZSB0b3AoKQotICAgICAgICAgICAgLy8gaWYgdGhlIHNp
emUgd2VyZSB1bmJvdW5kZWQsIGp1c3QgaWdub3JlIHRoZSBuZXcgdmFsdWUuCi0gICAgICAgICAg
ICBpZiAodGhpcy5fY29tcGFyZSh2YWx1ZSwgdGhpcy50b3AoKSkgPiAwKQotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIHRoaXMucG9wKCk7Ci0gICAgICAgIH0KLSAgICAgICAg
dGhpcy5fdmFsdWVzW3RoaXMuX3NpemUrK10gPSB2YWx1ZTsKLSAgICAgICAgdGhpcy5fYnViYmxl
KHRoaXMuX3NpemUgLSAxKTsKLSAgICB9LAotCi0gICAgcG9wOiBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICBpZiAoIXRoaXMuX3NpemUpCi0gICAgICAgICAgICByZXR1cm4gTmFOOwotICAgICAg
ICAKLSAgICAgICAgdGhpcy5fdmFsdWVzWzBdID0gdGhpcy5fdmFsdWVzWy0tdGhpcy5fc2l6ZV07
Ci0gICAgICAgIHRoaXMuX3NpbmsoMCk7Ci0gICAgfSwKLSAgICAKLSAgICBfYnViYmxlOiBmdW5j
dGlvbihpKQotICAgIHsKLSAgICAgICAgLy8gRml4IHRoZSBoZWFwIHByb3BlcnR5IGF0IGluZGV4
IGkgZ2l2ZW4gdGhhdCBwYXJlbnQgaXMgdGhlIG9ubHkgbm9kZSB0aGF0Ci0gICAgICAgIC8vIG1h
eSB2aW9sYXRlIHRoZSBoZWFwIHByb3BlcnR5LgotICAgICAgICBmb3IgKHZhciBwaSA9IHRoaXMu
X3BhcmVudEluZGV4KGkpOyBwaSAhPSAtMTsgaSA9IHBpLCBwaSA9IHRoaXMuX3BhcmVudEluZGV4
KHBpKSkgewotICAgICAgICAgICAgaWYgKHRoaXMuX2NvbXBhcmUodGhpcy5fdmFsdWVzW3BpXSwg
dGhpcy5fdmFsdWVzW2ldKSA+IDApCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICB0aGlzLl92YWx1ZXMuc3dhcChwaSwgaSk7Ci0gICAgICAgIH0K
LSAgICB9LAotICAgIAotICAgIF9zaW5rOiBmdW5jdGlvbihpKQotICAgIHsKLSAgICAgICAgLy8g
Rml4IHRoZSBoZWFwIHByb3BlcnR5IGF0IGluZGV4IGkgZ2l2ZW4gdGhhdCBlYWNoIG9mIHRoZSBs
ZWZ0IGFuZCB0aGUgcmlnaHQKLSAgICAgICAgLy8gc3ViLXRyZWVzIHNhdGlzZmllcyB0aGUgaGVh
cCBwcm9wZXJ0eS4KLSAgICAgICAgZm9yICh2YXIgY2kgPSB0aGlzLl9jaGlsZEluZGV4KGkpOyBj
aSAhPSAtMTsgaSA9IGNpLCBjaSA9IHRoaXMuX2NoaWxkSW5kZXgoY2kpKSB7Ci0gICAgICAgICAg
ICBpZiAodGhpcy5fY29tcGFyZSh0aGlzLl92YWx1ZXNbaV0sIHRoaXMuX3ZhbHVlc1tjaV0pID4g
MCkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgdGhp
cy5fdmFsdWVzLnN3YXAoY2ksIGkpOwotICAgICAgICB9Ci0gICAgfSwKLSAgICAKLSAgICBzdHI6
IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBvdXQgPSAiSGVhcFsiICsgdGhpcy5fc2l6
ZSArICJdID0gWyI7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc2l6ZTsgKytp
KSB7Ci0gICAgICAgICAgICBvdXQgKz0gdGhpcy5fdmFsdWVzW2ldOwotICAgICAgICAgICAgaWYg
KGkgPCB0aGlzLl9zaXplIC0gMSkKLSAgICAgICAgICAgICAgICBvdXQgKz0gIiwgIjsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gb3V0ICsgIl0iOwotICAgIH0sCi0gICAgCi0gICAgdmFsdWVz
OiBmdW5jdGlvbihzaXplKSB7Ci0gICAgICAgIC8vIFJldHVybiB0aGUgbGFzdCAic2l6ZSIgaGVh
cCBlbGVtZW50cyB2YWx1ZXMuCi0gICAgICAgIHZhciB2YWx1ZXMgPSB0aGlzLl92YWx1ZXMuc2xp
Y2UoMCwgdGhpcy5fc2l6ZSk7Ci0gICAgICAgIHJldHVybiB2YWx1ZXMuc29ydCh0aGlzLl9jb21w
YXJlKS5zbGljZSgwLCBNYXRoLm1pbihzaXplLCB0aGlzLl9zaXplKSk7Ci0gICAgfQotfQotCi12
YXIgQWxnb3JpdGhtID0gewotICAgIGNyZWF0ZU1pbkhlYXA6IGZ1bmN0aW9uKG1heFNpemUpCi0g
ICAgewotICAgICAgICByZXR1cm4gbmV3IEhlYXAobWF4U2l6ZSwgZnVuY3Rpb24oYSwgYikgeyBy
ZXR1cm4gYiAtIGE7IH0pOwotICAgIH0sCi0gICAgCi0gICAgY3JlYXRlTWF4SGVhcDogZnVuY3Rp
b24obWF4U2l6ZSkgewotICAgICAgICByZXR1cm4gbmV3IEhlYXAobWF4U2l6ZSwgZnVuY3Rpb24o
YSwgYikgeyByZXR1cm4gYSAtIGI7IH0pOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZGVidWctcnVubmVyL2JlbmNobWFyay1ydW5u
ZXIuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvcmVzb3VyY2VzL2RlYnVnLXJ1bm5l
ci9iZW5jaG1hcmstcnVubmVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmQx
NmY1Li4wMDAwMDAwCi0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMv
ZGVidWctcnVubmVyL2JlbmNobWFyay1ydW5uZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzYg
KzAsMCBAQAotZnVuY3Rpb24gQmVuY2htYXJrUnVubmVyU3RhdGUoc3VpdGVzKQotewotICAgIHRo
aXMuX3N1aXRlcyA9IHN1aXRlczsKLSAgICB0aGlzLl9zdWl0ZUluZGV4ID0gLTE7Ci0gICAgdGhp
cy5fdGVzdEluZGV4ID0gMDsKLSAgICB0aGlzLm5leHQoKTsKLX0KLQotQmVuY2htYXJrUnVubmVy
U3RhdGUucHJvdG90eXBlID0gewotICAgIGN1cnJlbnRTdWl0ZTogZnVuY3Rpb24oKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX3N1aXRlc1t0aGlzLl9zdWl0ZUluZGV4XTsKLSAgICB9LAot
Ci0gICAgY3VycmVudFRlc3Q6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBzdWl0ZSA9
IHRoaXMuY3VycmVudFN1aXRlKCk7Ci0gICAgICAgIHJldHVybiBzdWl0ZSA/IHN1aXRlLnRlc3Rz
W3RoaXMuX3Rlc3RJbmRleF0gOiBudWxsOwotICAgIH0sCi0KLSAgICBpc0ZpcnN0VGVzdDogZnVu
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuICF0aGlzLl90ZXN0SW5kZXg7Ci0gICAgfSwK
LQotICAgIG5leHQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Rlc3RJbmRleCsr
OwotCi0gICAgICAgIHZhciBzdWl0ZSA9IHRoaXMuX3N1aXRlc1t0aGlzLl9zdWl0ZUluZGV4XTsK
LSAgICAgICAgaWYgKHN1aXRlICYmIHRoaXMuX3Rlc3RJbmRleCA8IHN1aXRlLnRlc3RzLmxlbmd0
aCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl90ZXN0SW5kZXggPSAwOwot
ICAgICAgICBkbyB7Ci0gICAgICAgICAgICB0aGlzLl9zdWl0ZUluZGV4Kys7Ci0gICAgICAgIH0g
d2hpbGUgKHRoaXMuX3N1aXRlSW5kZXggPCB0aGlzLl9zdWl0ZXMubGVuZ3RoICYmIHRoaXMuX3N1
aXRlc1t0aGlzLl9zdWl0ZUluZGV4XS5kaXNhYmxlZCk7Ci0gICAgfSwKLQotICAgIHByZXBhcmVD
dXJyZW50VGVzdDogZnVuY3Rpb24ocnVubmVyLCBmcmFtZSkKLSAgICB7Ci0gICAgICAgIHZhciB0
ZXN0ID0gdGhpcy5jdXJyZW50VGVzdCgpOwotICAgICAgICB2YXIgcHJvbWlzZSA9IG5ldyBTaW1w
bGVQcm9taXNlOwotCi0gICAgICAgIGZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgZnJhbWUuc3Jj
ID0gInRlc3RzLyIgKyB0ZXN0LnVybDsKLSAgICAgICAgcmV0dXJuIHByb21pc2U7Ci0gICAgfQot
fTsKLQotZnVuY3Rpb24gQmVuY2htYXJrUnVubmVyKHN1aXRlcywgZnJhbWVDb250YWluZXIsIGNs
aWVudCkKLXsKLSAgICB0aGlzLl9zdWl0ZXMgPSBzdWl0ZXM7Ci0gICAgdGhpcy5fY2xpZW50ID0g
Y2xpZW50OwotICAgIHRoaXMuX2ZyYW1lQ29udGFpbmVyID0gZnJhbWVDb250YWluZXI7Ci19Ci0K
LUJlbmNobWFya1J1bm5lci5wcm90b3R5cGUgPSB7Ci0gICAgX2FwcGVuZEZyYW1lOiBmdW5jdGlv
bigpCi0gICAgewotICAgICAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
ZnJhbWUiKTsKLSAgICAgICAgZnJhbWUuc2V0QXR0cmlidXRlKCJzY3JvbGxpbmciLCAibm8iKTsK
LQotICAgICAgICB0aGlzLl9mcmFtZUNvbnRhaW5lci5pbnNlcnRCZWZvcmUoZnJhbWUsIHRoaXMu
X2ZyYW1lQ29udGFpbmVyLmZpcnN0Q2hpbGQpOwotICAgICAgICB0aGlzLl9mcmFtZSA9IGZyYW1l
OwotICAgICAgICByZXR1cm4gZnJhbWU7Ci0gICAgfSwKLQotICAgIF9yZW1vdmVGcmFtZTogZnVu
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2ZyYW1lKSB7Ci0gICAgICAgICAgICB0
aGlzLl9mcmFtZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuX2ZyYW1lKTsKLSAgICAgICAg
ICAgIHRoaXMuX2ZyYW1lID0gbnVsbDsKLSAgICAgICAgfQotICAgIH0sCi0KLSAgICBfcnVuQmVu
Y2htYXJrQW5kUmVjb3JkUmVzdWx0czogZnVuY3Rpb24oc3RhdGUpCi0gICAgewotICAgICAgICB2
YXIgcHJvbWlzZSA9IG5ldyBTaW1wbGVQcm9taXNlOwotICAgICAgICB2YXIgc3VpdGUgPSBzdGF0
ZS5jdXJyZW50U3VpdGUoKTsKLSAgICAgICAgdmFyIHRlc3QgPSBzdGF0ZS5jdXJyZW50VGVzdCgp
OwotCi0gICAgICAgIGlmICh0aGlzLl9jbGllbnQgJiYgdGhpcy5fY2xpZW50LndpbGxSdW5UZXN0
KQotICAgICAgICAgICAgdGhpcy5fY2xpZW50LndpbGxSdW5UZXN0KHN1aXRlLCB0ZXN0KTsKLQot
ICAgICAgICB2YXIgY29udGVudFdpbmRvdyA9IHRoaXMuX2ZyYW1lLmNvbnRlbnRXaW5kb3c7Ci0g
ICAgICAgIHZhciBzZWxmID0gdGhpczsKLQotICAgICAgICB2YXIgb3B0aW9ucyA9IHsgY29tcGxl
eGl0eTogdGVzdC5jb21wbGV4aXR5IH07Ci0gICAgICAgIFV0aWxpdGllcy5leHRlbmRPYmplY3Qo
b3B0aW9ucywgdGhpcy5fY2xpZW50Lm9wdGlvbnMpOwotICAgICAgICBVdGlsaXRpZXMuZXh0ZW5k
T2JqZWN0KG9wdGlvbnMsIGNvbnRlbnRXaW5kb3cuVXRpbGl0aWVzLnBhcnNlUGFyYW1ldGVycygp
KTsKLQotICAgICAgICB2YXIgYmVuY2htYXJrID0gbmV3IGNvbnRlbnRXaW5kb3cuYmVuY2htYXJr
Q2xhc3Mob3B0aW9ucyk7Ci0gICAgICAgIGJlbmNobWFyay5ydW4oKS50aGVuKGZ1bmN0aW9uKHNh
bXBsZXIpIHsKLSAgICAgICAgICAgIHZhciBzYW1wbGVycyA9IHNlbGYuX3N1aXRlc1NhbXBsZXJz
W3N1aXRlLm5hbWVdIHx8IHt9OwotICAgICAgICAgICAgc2FtcGxlcnNbdGVzdC5uYW1lXSA9IHNh
bXBsZXIucHJvY2VzcyhvcHRpb25zKTsKLSAgICAgICAgICAgIHNlbGYuX3N1aXRlc1NhbXBsZXJz
W3N1aXRlLm5hbWVdID0gc2FtcGxlcnM7Ci0KLSAgICAgICAgICAgIGlmIChzZWxmLl9jbGllbnQg
JiYgc2VsZi5fY2xpZW50LmRpZFJ1blRlc3QpCi0gICAgICAgICAgICAgICAgc2VsZi5fY2xpZW50
LmRpZFJ1blRlc3Qoc3VpdGUsIHRlc3QpOwotCi0gICAgICAgICAgICBzdGF0ZS5uZXh0KCk7Ci0g
ICAgICAgICAgICBpZiAoc3RhdGUuY3VycmVudFN1aXRlKCkgIT0gc3VpdGUpCi0gICAgICAgICAg
ICAgICAgc2VsZi5fcmVtb3ZlRnJhbWUoKTsKLSAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShz
dGF0ZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHJldHVybiBwcm9taXNlOwotICAgIH0sCi0K
LSAgICBzdGVwOiBmdW5jdGlvbihzdGF0ZSkKLSAgICB7Ci0gICAgICAgIGlmICghc3RhdGUpIHsK
LSAgICAgICAgICAgIHN0YXRlID0gbmV3IEJlbmNobWFya1J1bm5lclN0YXRlKHRoaXMuX3N1aXRl
cyk7Ci0gICAgICAgICAgICB0aGlzLl9zdWl0ZXNTYW1wbGVycyA9IHt9OwotICAgICAgICB9Ci0K
LSAgICAgICAgdmFyIHN1aXRlID0gc3RhdGUuY3VycmVudFN1aXRlKCk7Ci0gICAgICAgIGlmICgh
c3VpdGUpIHsKLSAgICAgICAgICAgIHRoaXMuX2ZpbmFsaXplKCk7Ci0gICAgICAgICAgICB2YXIg
cHJvbWlzZSA9IG5ldyBTaW1wbGVQcm9taXNlOwotICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZl
KCk7Ci0gICAgICAgICAgICByZXR1cm4gcHJvbWlzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlm
IChzdGF0ZS5pc0ZpcnN0VGVzdCgpKSB7Ci0gICAgICAgICAgICB0aGlzLl9hcHBlbmRGcmFtZSgp
OwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHN0YXRlLnByZXBhcmVDdXJyZW50VGVzdCh0
aGlzLCB0aGlzLl9mcmFtZSkudGhlbihmdW5jdGlvbihwcmVwYXJlUmV0dXJuVmFsdWUpIHsKLSAg
ICAgICAgICAgIHJldHVybiB0aGlzLl9ydW5CZW5jaG1hcmtBbmRSZWNvcmRSZXN1bHRzKHN0YXRl
KTsKLSAgICAgICAgfS5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgcnVuQWxsU3RlcHM6IGZ1
bmN0aW9uKHN0YXJ0aW5nU3RhdGUpCi0gICAgewotICAgICAgICB2YXIgbmV4dENhbGxlZSA9IHRo
aXMucnVuQWxsU3RlcHMuYmluZCh0aGlzKTsKLSAgICAgICAgdGhpcy5zdGVwKHN0YXJ0aW5nU3Rh
dGUpLnRoZW4oZnVuY3Rpb24obmV4dFN0YXRlKSB7Ci0gICAgICAgICAgICBpZiAobmV4dFN0YXRl
KQotICAgICAgICAgICAgICAgIG5leHRDYWxsZWUobmV4dFN0YXRlKTsKLSAgICAgICAgfSk7Ci0g
ICAgfSwKLQotICAgIHJ1bk11bHRpcGxlSXRlcmF0aW9uczogZnVuY3Rpb24oKQotICAgIHsKLSAg
ICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgICAgICB2YXIgY3VycmVudEl0ZXJhdGlvbiA9IDA7
Ci0KLSAgICAgICAgdGhpcy5fcnVuTmV4dEl0ZXJhdGlvbiA9IGZ1bmN0aW9uKCkgewotICAgICAg
ICAgICAgY3VycmVudEl0ZXJhdGlvbisrOwotICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVyYXRp
b24gPCBzZWxmLl9jbGllbnQuaXRlcmF0aW9uQ291bnQpCi0gICAgICAgICAgICAgICAgc2VsZi5y
dW5BbGxTdGVwcygpOwotICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5fY2xpZW50ICYmIHRoaXMu
X2NsaWVudC5kaWRGaW5pc2hMYXN0SXRlcmF0aW9uKQotICAgICAgICAgICAgICAgIHNlbGYuX2Ns
aWVudC5kaWRGaW5pc2hMYXN0SXRlcmF0aW9uKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAo
dGhpcy5fY2xpZW50ICYmIHRoaXMuX2NsaWVudC53aWxsU3RhcnRGaXJzdEl0ZXJhdGlvbikKLSAg
ICAgICAgICAgIHRoaXMuX2NsaWVudC53aWxsU3RhcnRGaXJzdEl0ZXJhdGlvbigpOwotCi0gICAg
ICAgIHRoaXMucnVuQWxsU3RlcHMoKTsKLSAgICB9LAotCi0gICAgX2ZpbmFsaXplOiBmdW5jdGlv
bigpCi0gICAgewotICAgICAgICB0aGlzLl9yZW1vdmVGcmFtZSgpOwotCi0gICAgICAgIGlmICh0
aGlzLl9jbGllbnQgJiYgdGhpcy5fY2xpZW50LmRpZFJ1blN1aXRlcykKLSAgICAgICAgICAgIHRo
aXMuX2NsaWVudC5kaWRSdW5TdWl0ZXModGhpcy5fc3VpdGVzU2FtcGxlcnMpOwotCi0gICAgICAg
IGlmICh0aGlzLl9ydW5OZXh0SXRlcmF0aW9uKQotICAgICAgICAgICAgdGhpcy5fcnVuTmV4dEl0
ZXJhdGlvbigpOwotICAgIH0KLX07CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1v
bWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0
ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMKaW5kZXggZjMxYjgwZS4uNzA4Mjk3MSAxMDA2NDQK
LS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9leHRlbnNpb25zLmpz
CisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5q
cwpAQCAtMTgzLDYgKzE4MywzMyBAQCBTaW1wbGVQcm9taXNlLnByb3RvdHlwZS5yZXNvbHZlID0g
ZnVuY3Rpb24gKHZhbHVlKQogICAgICAgICB0aGlzLl9jaGFpbmVkUHJvbWlzZS5yZXNvbHZlKHJl
c3VsdCk7CiB9CiAKK3ZhciBTdGF0aXN0aWNzID0KK3sKKyAgICBzYW1wbGVNZWFuOiBmdW5jdGlv
bihudW1iZXJPZlNhbXBsZXMsIHN1bSkKKyAgICB7CisgICAgICAgIGlmIChudW1iZXJPZlNhbXBs
ZXMgPCAxKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBzdW0gLyBudW1i
ZXJPZlNhbXBsZXM7CisgICAgfSwKKworICAgIC8vIFdpdGggc3VtIGFuZCBzdW0gb2Ygc3F1YXJl
cywgd2UgY2FuIGNvbXB1dGUgdGhlIHNhbXBsZSBzdGFuZGFyZCBkZXZpYXRpb24gaW4gTygxKS4K
KyAgICAvLyBTZWUgaHR0cHM6Ly9ybml3YS5jb20vMjAxMi0xMS0xMC9zYW1wbGUtc3RhbmRhcmQt
ZGV2aWF0aW9uLWluLXRlcm1zLW9mLXN1bS1hbmQtc3F1YXJlLXN1bS1vZi1zYW1wbGVzLworICAg
IHVuYmlhc2VkU2FtcGxlU3RhbmRhcmREZXZpYXRpb246IGZ1bmN0aW9uKG51bWJlck9mU2FtcGxl
cywgc3VtLCBzcXVhcmVTdW0pCisgICAgeworICAgICAgICBpZiAobnVtYmVyT2ZTYW1wbGVzIDwg
MikKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KChzcXVh
cmVTdW0gLSBzdW0gKiBzdW0gLyBudW1iZXJPZlNhbXBsZXMpIC8gKG51bWJlck9mU2FtcGxlcyAt
IDEpKTsKKyAgICB9LAorCisgICAgZ2VvbWV0cmljTWVhbjogZnVuY3Rpb24odmFsdWVzKQorICAg
IHsKKyAgICAgICAgaWYgKCF2YWx1ZXMubGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIHZhciByb290cyA9IHZhbHVlcy5tYXAoZnVuY3Rpb24odmFsdWUpIHsgcmV0dXJuICBN
YXRoLnBvdyh2YWx1ZSwgMSAvIHZhbHVlcy5sZW5ndGgpOyB9KQorICAgICAgICByZXR1cm4gcm9v
dHMucmVkdWNlKGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEgKiBiOyB9KTsKKyAgICB9Cit9Owor
CiB3aW5kb3cuRG9jdW1lbnRFeHRlbnNpb24gPQogewogICAgIGNyZWF0ZUVsZW1lbnQ6IGZ1bmN0
aW9uKG5hbWUsIGF0dHJzLCBwYXJlbnRFbGVtZW50KQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VU
ZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYmVuY2htYXJrLXJ1bm5lci5qcyBiL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVyL2JlbmNobWFyay1ydW5u
ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZkMTZmNQotLS0gL2Rl
di9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvcnVubmVy
L2JlbmNobWFyay1ydW5uZXIuanMKQEAgLTAsMCArMSwxNzYgQEAKK2Z1bmN0aW9uIEJlbmNobWFy
a1J1bm5lclN0YXRlKHN1aXRlcykKK3sKKyAgICB0aGlzLl9zdWl0ZXMgPSBzdWl0ZXM7CisgICAg
dGhpcy5fc3VpdGVJbmRleCA9IC0xOworICAgIHRoaXMuX3Rlc3RJbmRleCA9IDA7CisgICAgdGhp
cy5uZXh0KCk7Cit9CisKK0JlbmNobWFya1J1bm5lclN0YXRlLnByb3RvdHlwZSA9IHsKKyAgICBj
dXJyZW50U3VpdGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zdWl0
ZXNbdGhpcy5fc3VpdGVJbmRleF07CisgICAgfSwKKworICAgIGN1cnJlbnRUZXN0OiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICB2YXIgc3VpdGUgPSB0aGlzLmN1cnJlbnRTdWl0ZSgpOworICAg
ICAgICByZXR1cm4gc3VpdGUgPyBzdWl0ZS50ZXN0c1t0aGlzLl90ZXN0SW5kZXhdIDogbnVsbDsK
KyAgICB9LAorCisgICAgaXNGaXJzdFRlc3Q6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiAhdGhpcy5fdGVzdEluZGV4OworICAgIH0sCisKKyAgICBuZXh0OiBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICB0aGlzLl90ZXN0SW5kZXgrKzsKKworICAgICAgICB2YXIgc3VpdGUgPSB0
aGlzLl9zdWl0ZXNbdGhpcy5fc3VpdGVJbmRleF07CisgICAgICAgIGlmIChzdWl0ZSAmJiB0aGlz
Ll90ZXN0SW5kZXggPCBzdWl0ZS50ZXN0cy5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgdGhpcy5fdGVzdEluZGV4ID0gMDsKKyAgICAgICAgZG8geworICAgICAgICAgICAg
dGhpcy5fc3VpdGVJbmRleCsrOworICAgICAgICB9IHdoaWxlICh0aGlzLl9zdWl0ZUluZGV4IDwg
dGhpcy5fc3VpdGVzLmxlbmd0aCAmJiB0aGlzLl9zdWl0ZXNbdGhpcy5fc3VpdGVJbmRleF0uZGlz
YWJsZWQpOworICAgIH0sCisKKyAgICBwcmVwYXJlQ3VycmVudFRlc3Q6IGZ1bmN0aW9uKHJ1bm5l
ciwgZnJhbWUpCisgICAgeworICAgICAgICB2YXIgdGVzdCA9IHRoaXMuY3VycmVudFRlc3QoKTsK
KyAgICAgICAgdmFyIHByb21pc2UgPSBuZXcgU2ltcGxlUHJvbWlzZTsKKworICAgICAgICBmcmFt
ZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOwor
ICAgICAgICB9OworCisgICAgICAgIGZyYW1lLnNyYyA9ICJ0ZXN0cy8iICsgdGVzdC51cmw7Cisg
ICAgICAgIHJldHVybiBwcm9taXNlOworICAgIH0KK307CisKK2Z1bmN0aW9uIEJlbmNobWFya1J1
bm5lcihzdWl0ZXMsIGZyYW1lQ29udGFpbmVyLCBjbGllbnQpCit7CisgICAgdGhpcy5fc3VpdGVz
ID0gc3VpdGVzOworICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDsKKyAgICB0aGlzLl9mcmFtZUNv
bnRhaW5lciA9IGZyYW1lQ29udGFpbmVyOworfQorCitCZW5jaG1hcmtSdW5uZXIucHJvdG90eXBl
ID0geworICAgIF9hcHBlbmRGcmFtZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIGZy
YW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGZyYW1lLnNl
dEF0dHJpYnV0ZSgic2Nyb2xsaW5nIiwgIm5vIik7CisKKyAgICAgICAgdGhpcy5fZnJhbWVDb250
YWluZXIuaW5zZXJ0QmVmb3JlKGZyYW1lLCB0aGlzLl9mcmFtZUNvbnRhaW5lci5maXJzdENoaWxk
KTsKKyAgICAgICAgdGhpcy5fZnJhbWUgPSBmcmFtZTsKKyAgICAgICAgcmV0dXJuIGZyYW1lOwor
ICAgIH0sCisKKyAgICBfcmVtb3ZlRnJhbWU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlm
ICh0aGlzLl9mcmFtZSkgeworICAgICAgICAgICAgdGhpcy5fZnJhbWUucGFyZW50Tm9kZS5yZW1v
dmVDaGlsZCh0aGlzLl9mcmFtZSk7CisgICAgICAgICAgICB0aGlzLl9mcmFtZSA9IG51bGw7Cisg
ICAgICAgIH0KKyAgICB9LAorCisgICAgX3J1bkJlbmNobWFya0FuZFJlY29yZFJlc3VsdHM6IGZ1
bmN0aW9uKHN0YXRlKQorICAgIHsKKyAgICAgICAgdmFyIHByb21pc2UgPSBuZXcgU2ltcGxlUHJv
bWlzZTsKKyAgICAgICAgdmFyIHN1aXRlID0gc3RhdGUuY3VycmVudFN1aXRlKCk7CisgICAgICAg
IHZhciB0ZXN0ID0gc3RhdGUuY3VycmVudFRlc3QoKTsKKworICAgICAgICBpZiAodGhpcy5fY2xp
ZW50ICYmIHRoaXMuX2NsaWVudC53aWxsUnVuVGVzdCkKKyAgICAgICAgICAgIHRoaXMuX2NsaWVu
dC53aWxsUnVuVGVzdChzdWl0ZSwgdGVzdCk7CisKKyAgICAgICAgdmFyIGNvbnRlbnRXaW5kb3cg
PSB0aGlzLl9mcmFtZS5jb250ZW50V2luZG93OworICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CisK
KyAgICAgICAgdmFyIG9wdGlvbnMgPSB7IGNvbXBsZXhpdHk6IHRlc3QuY29tcGxleGl0eSB9Owor
ICAgICAgICBVdGlsaXRpZXMuZXh0ZW5kT2JqZWN0KG9wdGlvbnMsIHRoaXMuX2NsaWVudC5vcHRp
b25zKTsKKyAgICAgICAgVXRpbGl0aWVzLmV4dGVuZE9iamVjdChvcHRpb25zLCBjb250ZW50V2lu
ZG93LlV0aWxpdGllcy5wYXJzZVBhcmFtZXRlcnMoKSk7CisKKyAgICAgICAgdmFyIGJlbmNobWFy
ayA9IG5ldyBjb250ZW50V2luZG93LmJlbmNobWFya0NsYXNzKG9wdGlvbnMpOworICAgICAgICBi
ZW5jaG1hcmsucnVuKCkudGhlbihmdW5jdGlvbihzYW1wbGVyKSB7CisgICAgICAgICAgICB2YXIg
c2FtcGxlcnMgPSBzZWxmLl9zdWl0ZXNTYW1wbGVyc1tzdWl0ZS5uYW1lXSB8fCB7fTsKKyAgICAg
ICAgICAgIHNhbXBsZXJzW3Rlc3QubmFtZV0gPSBzYW1wbGVyLnByb2Nlc3Mob3B0aW9ucyk7Cisg
ICAgICAgICAgICBzZWxmLl9zdWl0ZXNTYW1wbGVyc1tzdWl0ZS5uYW1lXSA9IHNhbXBsZXJzOwor
CisgICAgICAgICAgICBpZiAoc2VsZi5fY2xpZW50ICYmIHNlbGYuX2NsaWVudC5kaWRSdW5UZXN0
KQorICAgICAgICAgICAgICAgIHNlbGYuX2NsaWVudC5kaWRSdW5UZXN0KHN1aXRlLCB0ZXN0KTsK
KworICAgICAgICAgICAgc3RhdGUubmV4dCgpOworICAgICAgICAgICAgaWYgKHN0YXRlLmN1cnJl
bnRTdWl0ZSgpICE9IHN1aXRlKQorICAgICAgICAgICAgICAgIHNlbGYuX3JlbW92ZUZyYW1lKCk7
CisgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoc3RhdGUpOworICAgICAgICB9KTsKKworICAg
ICAgICByZXR1cm4gcHJvbWlzZTsKKyAgICB9LAorCisgICAgc3RlcDogZnVuY3Rpb24oc3RhdGUp
CisgICAgeworICAgICAgICBpZiAoIXN0YXRlKSB7CisgICAgICAgICAgICBzdGF0ZSA9IG5ldyBC
ZW5jaG1hcmtSdW5uZXJTdGF0ZSh0aGlzLl9zdWl0ZXMpOworICAgICAgICAgICAgdGhpcy5fc3Vp
dGVzU2FtcGxlcnMgPSB7fTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBzdWl0ZSA9IHN0YXRl
LmN1cnJlbnRTdWl0ZSgpOworICAgICAgICBpZiAoIXN1aXRlKSB7CisgICAgICAgICAgICB0aGlz
Ll9maW5hbGl6ZSgpOworICAgICAgICAgICAgdmFyIHByb21pc2UgPSBuZXcgU2ltcGxlUHJvbWlz
ZTsKKyAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgICAgICAgICAgcmV0dXJuIHBy
b21pc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc3RhdGUuaXNGaXJzdFRlc3QoKSkgewor
ICAgICAgICAgICAgdGhpcy5fYXBwZW5kRnJhbWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJl
dHVybiBzdGF0ZS5wcmVwYXJlQ3VycmVudFRlc3QodGhpcywgdGhpcy5fZnJhbWUpLnRoZW4oZnVu
Y3Rpb24ocHJlcGFyZVJldHVyblZhbHVlKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fcnVu
QmVuY2htYXJrQW5kUmVjb3JkUmVzdWx0cyhzdGF0ZSk7CisgICAgICAgIH0uYmluZCh0aGlzKSk7
CisgICAgfSwKKworICAgIHJ1bkFsbFN0ZXBzOiBmdW5jdGlvbihzdGFydGluZ1N0YXRlKQorICAg
IHsKKyAgICAgICAgdmFyIG5leHRDYWxsZWUgPSB0aGlzLnJ1bkFsbFN0ZXBzLmJpbmQodGhpcyk7
CisgICAgICAgIHRoaXMuc3RlcChzdGFydGluZ1N0YXRlKS50aGVuKGZ1bmN0aW9uKG5leHRTdGF0
ZSkgeworICAgICAgICAgICAgaWYgKG5leHRTdGF0ZSkKKyAgICAgICAgICAgICAgICBuZXh0Q2Fs
bGVlKG5leHRTdGF0ZSk7CisgICAgICAgIH0pOworICAgIH0sCisKKyAgICBydW5NdWx0aXBsZUl0
ZXJhdGlvbnM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBzZWxmID0gdGhpczsKKyAg
ICAgICAgdmFyIGN1cnJlbnRJdGVyYXRpb24gPSAwOworCisgICAgICAgIHRoaXMuX3J1bk5leHRJ
dGVyYXRpb24gPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGN1cnJlbnRJdGVyYXRpb24rKzsK
KyAgICAgICAgICAgIGlmIChjdXJyZW50SXRlcmF0aW9uIDwgc2VsZi5fY2xpZW50Lml0ZXJhdGlv
bkNvdW50KQorICAgICAgICAgICAgICAgIHNlbGYucnVuQWxsU3RlcHMoKTsKKyAgICAgICAgICAg
IGVsc2UgaWYgKHRoaXMuX2NsaWVudCAmJiB0aGlzLl9jbGllbnQuZGlkRmluaXNoTGFzdEl0ZXJh
dGlvbikKKyAgICAgICAgICAgICAgICBzZWxmLl9jbGllbnQuZGlkRmluaXNoTGFzdEl0ZXJhdGlv
bigpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMuX2NsaWVudCAmJiB0aGlzLl9jbGll
bnQud2lsbFN0YXJ0Rmlyc3RJdGVyYXRpb24pCisgICAgICAgICAgICB0aGlzLl9jbGllbnQud2ls
bFN0YXJ0Rmlyc3RJdGVyYXRpb24oKTsKKworICAgICAgICB0aGlzLnJ1bkFsbFN0ZXBzKCk7Cisg
ICAgfSwKKworICAgIF9maW5hbGl6ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5f
cmVtb3ZlRnJhbWUoKTsKKworICAgICAgICBpZiAodGhpcy5fY2xpZW50ICYmIHRoaXMuX2NsaWVu
dC5kaWRSdW5TdWl0ZXMpCisgICAgICAgICAgICB0aGlzLl9jbGllbnQuZGlkUnVuU3VpdGVzKHRo
aXMuX3N1aXRlc1NhbXBsZXJzKTsKKworICAgICAgICBpZiAodGhpcy5fcnVuTmV4dEl0ZXJhdGlv
bikKKyAgICAgICAgICAgIHRoaXMuX3J1bk5leHRJdGVyYXRpb24oKTsKKyAgICB9Cit9OwpkaWZm
IC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zYW1wbGVyLmpz
IGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jlc291cmNlcy9zYW1wbGVyLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDFlZmZmLi4wMDAwMDAwCi0tLSBhL1BlcmZvcm1h
bmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMvc2FtcGxlci5qcworKysgL2Rldi9udWxsCkBA
IC0xLDEyOSArMCwwIEBACi12YXIgU3RhdGlzdGljcyA9Ci17Ci0gICAgc2FtcGxlTWVhbjogZnVu
Y3Rpb24obnVtYmVyT2ZTYW1wbGVzLCBzdW0pCi0gICAgewotICAgICAgICBpZiAobnVtYmVyT2ZT
YW1wbGVzIDwgMSkKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1cm4gc3VtIC8g
bnVtYmVyT2ZTYW1wbGVzOwotICAgIH0sCi0KLSAgICAvLyBXaXRoIHN1bSBhbmQgc3VtIG9mIHNx
dWFyZXMsIHdlIGNhbiBjb21wdXRlIHRoZSBzYW1wbGUgc3RhbmRhcmQgZGV2aWF0aW9uIGluIE8o
MSkuCi0gICAgLy8gU2VlIGh0dHBzOi8vcm5pd2EuY29tLzIwMTItMTEtMTAvc2FtcGxlLXN0YW5k
YXJkLWRldmlhdGlvbi1pbi10ZXJtcy1vZi1zdW0tYW5kLXNxdWFyZS1zdW0tb2Ytc2FtcGxlcy8K
LSAgICB1bmJpYXNlZFNhbXBsZVN0YW5kYXJkRGV2aWF0aW9uOiBmdW5jdGlvbihudW1iZXJPZlNh
bXBsZXMsIHN1bSwgc3F1YXJlU3VtKQotICAgIHsKLSAgICAgICAgaWYgKG51bWJlck9mU2FtcGxl
cyA8IDIpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgcmV0dXJuIE1hdGguc3FydCgo
c3F1YXJlU3VtIC0gc3VtICogc3VtIC8gbnVtYmVyT2ZTYW1wbGVzKSAvIChudW1iZXJPZlNhbXBs
ZXMgLSAxKSk7Ci0gICAgfSwKLQotICAgIGdlb21ldHJpY01lYW46IGZ1bmN0aW9uKHZhbHVlcykK
LSAgICB7Ci0gICAgICAgIGlmICghdmFsdWVzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiAw
OwotICAgICAgICB2YXIgcm9vdHMgPSB2YWx1ZXMubWFwKGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVy
biAgTWF0aC5wb3codmFsdWUsIDEgLyB2YWx1ZXMubGVuZ3RoKTsgfSkKLSAgICAgICAgcmV0dXJu
IHJvb3RzLnJlZHVjZShmdW5jdGlvbihhLCBiKSB7IHJldHVybiBhICogYjsgfSk7Ci0gICAgfQot
fQotCi1mdW5jdGlvbiBFeHBlcmltZW50KCkKLXsKLSAgICB0aGlzLl9zdW0gPSAwOwotICAgIHRo
aXMuX3NxdWFyZVN1bSA9IDA7Ci0gICAgdGhpcy5fbnVtYmVyT2ZTYW1wbGVzID0gMDsKLSAgICB0
aGlzLl9tYXhIZWFwID0gQWxnb3JpdGhtLmNyZWF0ZU1heEhlYXAoRXhwZXJpbWVudC5kZWZhdWx0
cy5DT05DRVJOX1NJWkUpOwotfQotCi1FeHBlcmltZW50LmRlZmF1bHRzID0KLXsKLSAgICBDT05D
RVJOOiA1LAotICAgIENPTkNFUk5fU0laRTogMTAwLAotfQotCi1FeHBlcmltZW50LnByb3RvdHlw
ZSA9Ci17Ci0gICAgc2FtcGxlOiBmdW5jdGlvbih2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMu
X3N1bSArPSB2YWx1ZTsKLSAgICAgICAgdGhpcy5fc3F1YXJlU3VtICs9IHZhbHVlICogdmFsdWU7
Ci0gICAgICAgIHRoaXMuX21heEhlYXAucHVzaCh2YWx1ZSk7Ci0gICAgICAgICsrdGhpcy5fbnVt
YmVyT2ZTYW1wbGVzOwotICAgIH0sCi0KLSAgICBtZWFuOiBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICByZXR1cm4gU3RhdGlzdGljcy5zYW1wbGVNZWFuKHRoaXMuX251bWJlck9mU2FtcGxlcywg
dGhpcy5fc3VtKTsKLSAgICB9LAotCi0gICAgc3RhbmRhcmREZXZpYXRpb246IGZ1bmN0aW9uKCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBTdGF0aXN0aWNzLnVuYmlhc2VkU2FtcGxlU3RhbmRhcmRE
ZXZpYXRpb24odGhpcy5fbnVtYmVyT2ZTYW1wbGVzLCB0aGlzLl9zdW0sIHRoaXMuX3NxdWFyZVN1
bSk7Ci0gICAgfSwKLQotICAgIHBlcmNlbnRhZ2U6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAg
IHZhciBtZWFuID0gdGhpcy5tZWFuKCk7Ci0gICAgICAgIHJldHVybiBtZWFuID8gdGhpcy5zdGFu
ZGFyZERldmlhdGlvbigpICogMTAwIC8gbWVhbiA6IDA7Ci0gICAgfSwKLQotICAgIGNvbmNlcm46
IGZ1bmN0aW9uKHBlcmNlbnRhZ2UpCi0gICAgewotICAgICAgICB2YXIgc2l6ZSA9IE1hdGguY2Vp
bCh0aGlzLl9udW1iZXJPZlNhbXBsZXMgKiBwZXJjZW50YWdlIC8gMTAwKTsKLSAgICAgICAgdmFy
IHZhbHVlcyA9IHRoaXMuX21heEhlYXAudmFsdWVzKHNpemUpOwotICAgICAgICByZXR1cm4gdmFs
dWVzLmxlbmd0aCA/IHZhbHVlcy5yZWR1Y2UoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYSArIGI7
IH0pIC8gdmFsdWVzLmxlbmd0aCA6IDA7Ci0gICAgfSwKLQotICAgIHNjb3JlOiBmdW5jdGlvbihw
ZXJjZW50YWdlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFN0YXRpc3RpY3MuZ2VvbWV0cmljTWVh
bihbdGhpcy5tZWFuKCksIE1hdGgubWF4KHRoaXMuY29uY2VybihwZXJjZW50YWdlKSwgMSldKTsK
LSAgICB9Ci19Ci0KLWZ1bmN0aW9uIFNhbXBsZXIoc2VyaWVzQ291bnQsIGV4cGVjdGVkU2FtcGxl
Q291bnQsIHByb2Nlc3NvcikKLXsKLSAgICB0aGlzLl9wcm9jZXNzb3IgPSBwcm9jZXNzb3I7Ci0K
LSAgICB0aGlzLnNhbXBsZXMgPSBbXTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlcmllc0Nv
dW50OyArK2kpIHsKLSAgICAgICAgdmFyIGFycmF5ID0gbmV3IEFycmF5KGV4cGVjdGVkU2FtcGxl
Q291bnQpOwotICAgICAgICBhcnJheS5maWxsKDApOwotICAgICAgICB0aGlzLnNhbXBsZXNbaV0g
PSBhcnJheTsKLSAgICB9Ci0gICAgdGhpcy5zYW1wbGVDb3VudCA9IDA7Ci0gICAgdGhpcy5tYXJr
cyA9IHt9OwotfQotCi1TYW1wbGVyLnByb3RvdHlwZSA9Ci17Ci0gICAgcmVjb3JkOiBmdW5jdGlv
bigpIHsKLSAgICAgICAgLy8gQXNzdW1lIHRoYXQgYXJndW1lbnRzLmxlbmd0aCA9PSB0aGlzLnNh
bXBsZXMubGVuZ3RoCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0
aDsgaSsrKSB7Ci0gICAgICAgICAgICB0aGlzLnNhbXBsZXNbaV1bdGhpcy5zYW1wbGVDb3VudF0g
PSBhcmd1bWVudHNbaV07Ci0gICAgICAgIH0KLSAgICAgICAgKyt0aGlzLnNhbXBsZUNvdW50Owot
ICAgIH0sCi0KLSAgICBtYXJrOiBmdW5jdGlvbihjb21tZW50LCBkYXRhKSB7Ci0gICAgICAgIGRh
dGEgPSBkYXRhIHx8IHt9OwotICAgICAgICAvLyBUaGUgbWFyayBleGlzdHMgYWZ0ZXIgdGhlIGxh
c3QgcmVjb3JkZWQgc2FtcGxlCi0gICAgICAgIGRhdGEuaW5kZXggPSB0aGlzLnNhbXBsZUNvdW50
OwotCi0gICAgICAgIHRoaXMubWFya3NbY29tbWVudF0gPSBkYXRhOwotICAgIH0sCi0KLSAgICBw
cm9jZXNzOiBmdW5jdGlvbihvcHRpb25zKQotICAgIHsKLSAgICAgICAgdmFyIHJlc3VsdHMgPSB7
fTsKLQotICAgICAgICBpZiAob3B0aW9uc1siYWRqdXN0bWVudCJdID09ICJhZGFwdGl2ZSIpCi0g
ICAgICAgICAgICByZXN1bHRzW1N0cmluZ3MuanNvbi50YXJnZXRGUFNdID0gK29wdGlvbnNbImZy
YW1lLXJhdGUiXTsKLQotICAgICAgICAvLyBSZW1vdmUgdW51c2VkIGNhcGFjaXR5Ci0gICAgICAg
IHRoaXMuc2FtcGxlcyA9IHRoaXMuc2FtcGxlcy5tYXAoZnVuY3Rpb24oYXJyYXkpIHsKLSAgICAg
ICAgICAgIHJldHVybiBhcnJheS5zbGljZSgwLCB0aGlzLnNhbXBsZUNvdW50KTsKLSAgICAgICAg
fSwgdGhpcyk7Ci0KLSAgICAgICAgdGhpcy5fcHJvY2Vzc29yLnByb2Nlc3NTYW1wbGVzKHJlc3Vs
dHMpOwotCi0gICAgICAgIHJldHVybiByZXN1bHRzOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1Bl
cmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNp
bmctY2FudmFzLWltYWdlcy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jYW52YXMtaW1hZ2VzLmh0bWwKaW5kZXggNjAw
NDg1Zi4uODRiY2YxOCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rl
c3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jYW52YXMtaW1hZ2VzLmh0bWwKKysrIGIv
UGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3Vu
Y2luZy1jYW52YXMtaW1hZ2VzLmh0bWwKQEAgLTEzLDEwICsxMywxMCBAQAogICAgIDxpbWcgY2xh
c3M9ImhpZGRlbiIgc3JjPSIuLi9yZXNvdXJjZXMveWluLXlhbmcuc3ZnIj4KICAgICA8aW1nIGNs
YXNzPSJoaWRkZW4iIHNyYz0iLi4vcmVzb3VyY2VzL3lpbi15YW5nLnBuZyI+CiAgICAgPGNhbnZh
cyBpZD0ic3RhZ2UiPjwvY2FudmFzPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
YWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3N0cmluZ3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
c2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9l
eHRlbnNpb25zLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2Fs
Z29yaXRobS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zYW1w
bGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21hdGguanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWFpbi5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ib3VuY2luZy1wYXJ0aWNsZXMuanMiPjwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2Jv
dW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jYW52YXMtc2hhcGVzLmh0bWwgYi9QZXJmb3JtYW5j
ZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNhbnZh
cy1zaGFwZXMuaHRtbAppbmRleCAxNzBlZGY4Li5hYzQ3ZmM2YSAxMDA2NDQKLS0tIGEvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1j
YW52YXMtc2hhcGVzLmh0bWwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jYW52YXMtc2hhcGVzLmh0bWwKQEAgLTUsMTAg
KzUsMTAgQEAKIDwvaGVhZD4KIDxib2R5PgogICAgIDxjYW52YXMgaWQ9InN0YWdlIj48L2NhbnZh
cz4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2FsZ29yaXRobS5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdHJpbmdzLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hbGdvcml0aG0uanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYXRoLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL21haW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvYm91bmNpbmctcGFydGljbGVzLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91
bmNpbmctY3NzLWltYWdlcy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jc3MtaW1hZ2VzLmh0bWwKaW5kZXggYjNhN2Jk
YS4uYmZhY2E0OSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jc3MtaW1hZ2VzLmh0bWwKKysrIGIvUGVyZm9y
bWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1j
c3MtaW1hZ2VzLmh0bWwKQEAgLTEwLDEwICsxMCwxMCBAQAogPC9oZWFkPgogPGJvZHk+CiAgICAg
PGRpdiBpZD0ic3RhZ2UiPjwvZGl2PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
YWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3N0cmluZ3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
c2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9l
eHRlbnNpb25zLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2Fs
Z29yaXRobS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zYW1w
bGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21hdGguanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWFpbi5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9ib3VuY2luZy1wYXJ0aWNsZXMuanMiPjwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL2Jv
dW5jaW5nLXBhcnRpY2xlcy9ib3VuY2luZy1jc3Mtc2hhcGVzLmh0bWwgYi9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNzcy1zaGFw
ZXMuaHRtbAppbmRleCAzOWE0MjhjLi4wZjBmNTc5IDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRl
c3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLWNzcy1zaGFw
ZXMuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmct
cGFydGljbGVzL2JvdW5jaW5nLWNzcy1zaGFwZXMuaHRtbApAQCAtMjEsMTAgKzIxLDEwIEBACiA8
L2hlYWQ+CiA8Ym9keT4KICAgICA8ZGl2IGlkPSJzdGFnZSI+PC9kaXY+Ci0gICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9hbGdvcml0aG0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9zYW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvYWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvbWF0aC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9tYWluLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JvdW5j
aW5nLXBhcnRpY2xlcy5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0FuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLXN2Zy1pbWFnZXMu
aHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNs
ZXMvYm91bmNpbmctc3ZnLWltYWdlcy5odG1sCmluZGV4IDIzZGE3MzUuLmJiMjkwNTAgMTAwNjQ0
Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNs
ZXMvYm91bmNpbmctc3ZnLWltYWdlcy5odG1sCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNpbmctc3ZnLWltYWdlcy5odG1sCkBA
IC01LDEwICs1LDEwIEBACiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8c3ZnIGlkPSJzdGFnZSI+PC9z
dmc+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9hbGdvcml0aG0uanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zYW1wbGVyLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWxnb3JpdGhtLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2JvdW5jaW5nLXBhcnRpY2xlcy5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2Jv
dW5jaW5nLXN2Zy1zaGFwZXMuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0
cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNpbmctc3ZnLXNoYXBlcy5odG1sCmluZGV4IDdkMzJi
NGUuLmFlNTE5M2UgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0
cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNpbmctc3ZnLXNoYXBlcy5odG1sCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNpbmct
c3ZnLXNoYXBlcy5odG1sCkBAIC01LDEwICs1LDEwIEBACiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8
c3ZnIGlkPSJzdGFnZSI+PC9zdmc+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9h
bGdvcml0aG0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
c3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9z
YW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2V4
dGVuc2lvbnMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWxn
b3JpdGhtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NhbXBs
ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JvdW5jaW5nLXBhcnRpY2xlcy5qcyI+PC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFz
dGVyL2NhbnZhcy1zdGFnZS5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L21hc3Rlci9jYW52YXMtc3RhZ2UuaHRtbAppbmRleCBjZDA2MzQ2Li4zNmZjMmY3IDEwMDY0NAot
LS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWFzdGVyL2NhbnZhcy1zdGFn
ZS5odG1sCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9tYXN0ZXIvY2Fu
dmFzLXN0YWdlLmh0bWwKQEAgLTUsMTAgKzUsMTAgQEAKIDwvaGVhZD4KIDxib2R5PgogICAgIDxj
YW52YXMgaWQ9InN0YWdlIj48L2NhbnZhcz4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2FsZ29yaXRobS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9zdHJpbmdzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9hbGdvcml0aG0uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
c2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYXRo
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21haW4uanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FudmFzLXN0YWdlLmpzIj48L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNj
L2NhbnZhcy1lbGVjdHJvbnMuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0
cy9taXNjL2NhbnZhcy1lbGVjdHJvbnMuaHRtbAppbmRleCAzNGRhMDNhLi4wZDFlOWQ1IDEwMDY0
NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWlzYy9jYW52YXMtZWxl
Y3Ryb25zLmh0bWwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21pc2Mv
Y2FudmFzLWVsZWN0cm9ucy5odG1sCkBAIC01LDEwICs1LDEwIEBACiA8L2hlYWQ+CiA8Ym9keT4K
ICAgICA8Y2FudmFzIGlkPSJzdGFnZSI+PC9jYW52YXM+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9hbGdvcml0aG0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9zYW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2V4dGVuc2lvbnMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvYWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvbWF0aC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWlu
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhbnZhcy1lbGVjdHJv
bnMuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVy
L3Rlc3RzL21pc2MvY2FudmFzLXN0YXJzLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0
ZXIvdGVzdHMvbWlzYy9jYW52YXMtc3RhcnMuaHRtbAppbmRleCAxYWJjYjExLi5jYTIwYzgxIDEw
MDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWlzYy9jYW52YXMt
c3RhcnMuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWlzYy9j
YW52YXMtc3RhcnMuaHRtbApAQCAtMiwxMCArMiwxMCBAQAogPGh0bWw+CiA8aGVhZD4KICAgICA8
bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9yZXNvdXJjZXMv
c3RhZ2UuY3NzIj4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2FsZ29yaXRobS5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zdHJpbmdzLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3NhbXBsZXIuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hbGdvcml0aG0uanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2FtcGxlci5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYXRoLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21haW4uanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FudmFzLXN0YXJzLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL2NvbXBvc2l0aW5nLXRy
YW5zZm9ybXMuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9taXNjL2Nv
bXBvc2l0aW5nLXRyYW5zZm9ybXMuaHRtbAppbmRleCA2YzA3NzhjLi45Y2NiMDQ1IDEwMDY0NAot
LS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvbWlzYy9jb21wb3NpdGluZy10
cmFuc2Zvcm1zLmh0bWwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL21p
c2MvY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5odG1sCkBAIC0xMiwxMCArMTIsMTAgQEAKIDwvaGVh
ZD4KIDxib2R5PgogICAgIDxkaXYgaWQ9InN0YWdlIj48L2Rpdj4KLSAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2FsZ29yaXRobS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9zdHJpbmdzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9hbGdvcml0aG0uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvc2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9tYXRoLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L21haW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9ib3VuY2luZy1wYXJ0aWNs
ZXMvcmVzb3VyY2VzL2JvdW5jaW5nLXBhcnRpY2xlcy5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL2FsZ29yaXRobS5q
cyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvYWxnb3JpdGht
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMTg4YjEKLS0tIC9kZXYv
bnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL2Fs
Z29yaXRobS5qcwpAQCAtMCwwICsxLDEzNCBAQAorZnVuY3Rpb24gSGVhcChtYXhTaXplLCBjb21w
YXJlKQoreworICAgIHRoaXMuX21heFNpemUgPSBtYXhTaXplOworICAgIHRoaXMuX2NvbXBhcmUg
PSBjb21wYXJlOworICAgIHRoaXMuX3NpemUgPSAwOworICAgIHRoaXMuX3ZhbHVlcyA9IG5ldyBB
cnJheSh0aGlzLl9tYXhTaXplKTsKK30KKworSGVhcC5wcm90b3R5cGUgPQoreworICAgIC8vIFRo
aXMgaXMgYSBiaW5hcnkgaGVhcCByZXByZXNlbnRlZCBpbiBhbiBhcnJheS4gVGhlIHJvb3QgZWxl
bWVudCBpcyBzdG9yZWQKKyAgICAvLyBpbiB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgYXJyYXku
IFRoZSByb290IGlzIGZvbGxvd2VkIGJ5IGl0cyB0d28gY2hpbGRyZW4uCisgICAgLy8gVGhlbiBp
dHMgZm91ciBncmFuZGNoaWxkcmVuIGFuZCBzbyBvbi4gU28gZXZlcnkgbGV2ZWwgaW4gdGhlIGJp
bmFyeSBoZWFwIGlzCisgICAgLy8gZG91YmxlZCBpbiB0aGUgZm9sbG93aW5nIGxldmVsLiBIZXJl
IGlzIGFuIGV4YW1wbGUgb2YgdGhlIG5vZGUgaW5kaWNlcyBhbmQKKyAgICAvLyBob3cgdGhleSBh
cmUgcmVsYXRlZCB0byB0aGVpciBwYXJlbnRzIGFuZCBjaGlsZHJlbi4KKyAgICAvLyA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKyAgICAvLyAgICAgICAgICAgICAgMCAgICAgICAxICAgICAgIDIgICAgICAg
MyAgICAgICA0ICAgICAgIDUgICAgICAgNgorICAgIC8vIFBBUkVOVCAgICAgICAtMSAgICAgIDAg
ICAgICAgMCAgICAgICAxICAgICAgIDEgICAgICAgMiAgICAgICAyCisgICAgLy8gTEVGVCAgICAg
ICAgIDEgICAgICAgMyAgICAgICA1ICAgICAgIDcgICAgICAgOSAgICAgICAxMSAgICAgIDEzCisg
ICAgLy8gUklHSFQgICAgICAgIDIgICAgICAgNCAgICAgICA2ICAgICAgIDggICAgICAgMTAgICAg
ICAxMiAgICAgIDE0CisgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX3BhcmVudEluZGV4
OiBmdW5jdGlvbihpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGkgPiAwID8gTWF0aC5mbG9vcigo
aSAtIDEpIC8gMikgOiAtMTsKKyAgICB9LAorCisgICAgX2xlZnRJbmRleDogZnVuY3Rpb24oaSkK
KyAgICB7CisgICAgICAgIHZhciBsZWZ0SW5kZXggPSBpICogMiArIDE7CisgICAgICAgIHJldHVy
biBsZWZ0SW5kZXggPCB0aGlzLl9zaXplID8gbGVmdEluZGV4IDogLTE7CisgICAgfSwKKworICAg
IF9yaWdodEluZGV4OiBmdW5jdGlvbihpKQorICAgIHsKKyAgICAgICAgdmFyIHJpZ2h0SW5kZXgg
PSBpICogMiArIDI7CisgICAgICAgIHJldHVybiByaWdodEluZGV4IDwgdGhpcy5fc2l6ZSA/IHJp
Z2h0SW5kZXggOiAtMTsKKyAgICB9LAorCisgICAgLy8gUmV0dXJuIHRoZSBjaGlsZCBpbmRleCB0
aGF0IG1heSB2aW9sYXRlIHRoZSBoZWFwIHByb3BlcnR5IGF0IGluZGV4IGkuCisgICAgX2NoaWxk
SW5kZXg6IGZ1bmN0aW9uKGkpCisgICAgeworICAgICAgICB2YXIgbGVmdCA9IHRoaXMuX2xlZnRJ
bmRleChpKTsKKyAgICAgICAgdmFyIHJpZ2h0ID0gdGhpcy5fcmlnaHRJbmRleChpKTsKKworICAg
ICAgICBpZiAobGVmdCAhPSAtMSAmJiByaWdodCAhPSAtMSkKKyAgICAgICAgICAgIHJldHVybiB0
aGlzLl9jb21wYXJlKHRoaXMuX3ZhbHVlc1tsZWZ0XSwgdGhpcy5fdmFsdWVzW3JpZ2h0XSkgPiAw
ID8gbGVmdCA6IHJpZ2h0OworCisgICAgICAgIHJldHVybiBsZWZ0ICE9IC0xID8gbGVmdCA6IHJp
Z2h0OworICAgIH0sCisKKyAgICBpbml0OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlz
Ll9zaXplID0gMDsKKyAgICB9LAorCisgICAgdG9wOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5fc2l6ZSA/IHRoaXMuX3ZhbHVlc1swXSA6IE5hTjsKKyAgICB9LAorCisg
ICAgcHVzaDogZnVuY3Rpb24odmFsdWUpCisgICAgeworICAgICAgICBpZiAodGhpcy5fc2l6ZSA9
PSB0aGlzLl9tYXhTaXplKSB7CisgICAgICAgICAgICAvLyBJZiBzaXplIGlzIGJvdW5kZWQgYW5k
IHRoZSBuZXcgdmFsdWUgY2FuIGJlIGEgcGFyZW50IG9mIHRoZSB0b3AoKQorICAgICAgICAgICAg
Ly8gaWYgdGhlIHNpemUgd2VyZSB1bmJvdW5kZWQsIGp1c3QgaWdub3JlIHRoZSBuZXcgdmFsdWUu
CisgICAgICAgICAgICBpZiAodGhpcy5fY29tcGFyZSh2YWx1ZSwgdGhpcy50b3AoKSkgPiAwKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHRoaXMucG9wKCk7CisgICAgICAg
IH0KKyAgICAgICAgdGhpcy5fdmFsdWVzW3RoaXMuX3NpemUrK10gPSB2YWx1ZTsKKyAgICAgICAg
dGhpcy5fYnViYmxlKHRoaXMuX3NpemUgLSAxKTsKKyAgICB9LAorCisgICAgcG9wOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX3NpemUpCisgICAgICAgICAgICByZXR1cm4g
TmFOOworCisgICAgICAgIHRoaXMuX3ZhbHVlc1swXSA9IHRoaXMuX3ZhbHVlc1stLXRoaXMuX3Np
emVdOworICAgICAgICB0aGlzLl9zaW5rKDApOworICAgIH0sCisKKyAgICBfYnViYmxlOiBmdW5j
dGlvbihpKQorICAgIHsKKyAgICAgICAgLy8gRml4IHRoZSBoZWFwIHByb3BlcnR5IGF0IGluZGV4
IGkgZ2l2ZW4gdGhhdCBwYXJlbnQgaXMgdGhlIG9ubHkgbm9kZSB0aGF0CisgICAgICAgIC8vIG1h
eSB2aW9sYXRlIHRoZSBoZWFwIHByb3BlcnR5LgorICAgICAgICBmb3IgKHZhciBwaSA9IHRoaXMu
X3BhcmVudEluZGV4KGkpOyBwaSAhPSAtMTsgaSA9IHBpLCBwaSA9IHRoaXMuX3BhcmVudEluZGV4
KHBpKSkgeworICAgICAgICAgICAgaWYgKHRoaXMuX2NvbXBhcmUodGhpcy5fdmFsdWVzW3BpXSwg
dGhpcy5fdmFsdWVzW2ldKSA+IDApCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
ICAgIHRoaXMuX3ZhbHVlcy5zd2FwKHBpLCBpKTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBf
c2luazogZnVuY3Rpb24oaSkKKyAgICB7CisgICAgICAgIC8vIEZpeCB0aGUgaGVhcCBwcm9wZXJ0
eSBhdCBpbmRleCBpIGdpdmVuIHRoYXQgZWFjaCBvZiB0aGUgbGVmdCBhbmQgdGhlIHJpZ2h0Cisg
ICAgICAgIC8vIHN1Yi10cmVlcyBzYXRpc2ZpZXMgdGhlIGhlYXAgcHJvcGVydHkuCisgICAgICAg
IGZvciAodmFyIGNpID0gdGhpcy5fY2hpbGRJbmRleChpKTsgY2kgIT0gLTE7IGkgPSBjaSwgY2kg
PSB0aGlzLl9jaGlsZEluZGV4KGNpKSkgeworICAgICAgICAgICAgaWYgKHRoaXMuX2NvbXBhcmUo
dGhpcy5fdmFsdWVzW2ldLCB0aGlzLl92YWx1ZXNbY2ldKSA+IDApCisgICAgICAgICAgICAgICAg
YnJlYWs7CisKKyAgICAgICAgICAgIHRoaXMuX3ZhbHVlcy5zd2FwKGNpLCBpKTsKKyAgICAgICAg
fQorICAgIH0sCisKKyAgICBzdHI6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBvdXQg
PSAiSGVhcFsiICsgdGhpcy5fc2l6ZSArICJdID0gWyI7CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdGhpcy5fc2l6ZTsgKytpKSB7CisgICAgICAgICAgICBvdXQgKz0gdGhpcy5fdmFsdWVz
W2ldOworICAgICAgICAgICAgaWYgKGkgPCB0aGlzLl9zaXplIC0gMSkKKyAgICAgICAgICAgICAg
ICBvdXQgKz0gIiwgIjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gb3V0ICsgIl0iOworICAg
IH0sCisKKyAgICB2YWx1ZXM6IGZ1bmN0aW9uKHNpemUpIHsKKyAgICAgICAgLy8gUmV0dXJuIHRo
ZSBsYXN0ICJzaXplIiBoZWFwIGVsZW1lbnRzIHZhbHVlcy4KKyAgICAgICAgdmFyIHZhbHVlcyA9
IHRoaXMuX3ZhbHVlcy5zbGljZSgwLCB0aGlzLl9zaXplKTsKKyAgICAgICAgcmV0dXJuIHZhbHVl
cy5zb3J0KHRoaXMuX2NvbXBhcmUpLnNsaWNlKDAsIE1hdGgubWluKHNpemUsIHRoaXMuX3NpemUp
KTsKKyAgICB9Cit9CisKK3ZhciBBbGdvcml0aG0gPSB7CisgICAgY3JlYXRlTWluSGVhcDogZnVu
Y3Rpb24obWF4U2l6ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgSGVhcChtYXhTaXplLCBm
dW5jdGlvbihhLCBiKSB7IHJldHVybiBiIC0gYTsgfSk7CisgICAgfSwKKworICAgIGNyZWF0ZU1h
eEhlYXA6IGZ1bmN0aW9uKG1heFNpemUpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBIZWFwKG1heFNp
emUsIGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGEgLSBiOyB9KTsKKyAgICB9Cit9CmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3NhbXBsZXIu
anMgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvcmVzb3VyY2VzL3NhbXBsZXIu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTljNjJlZQotLS0gL2Rldi9u
dWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMvc2Ft
cGxlci5qcwpAQCAtMCwwICsxLDEwMiBAQAorZnVuY3Rpb24gRXhwZXJpbWVudCgpCit7CisgICAg
dGhpcy5fc3VtID0gMDsKKyAgICB0aGlzLl9zcXVhcmVTdW0gPSAwOworICAgIHRoaXMuX251bWJl
ck9mU2FtcGxlcyA9IDA7CisgICAgdGhpcy5fbWF4SGVhcCA9IEFsZ29yaXRobS5jcmVhdGVNYXhI
ZWFwKEV4cGVyaW1lbnQuZGVmYXVsdHMuQ09OQ0VSTl9TSVpFKTsKK30KKworRXhwZXJpbWVudC5k
ZWZhdWx0cyA9Cit7CisgICAgQ09OQ0VSTjogNSwKKyAgICBDT05DRVJOX1NJWkU6IDEwMCwKK30K
KworRXhwZXJpbWVudC5wcm90b3R5cGUgPQoreworICAgIHNhbXBsZTogZnVuY3Rpb24odmFsdWUp
CisgICAgeworICAgICAgICB0aGlzLl9zdW0gKz0gdmFsdWU7CisgICAgICAgIHRoaXMuX3NxdWFy
ZVN1bSArPSB2YWx1ZSAqIHZhbHVlOworICAgICAgICB0aGlzLl9tYXhIZWFwLnB1c2godmFsdWUp
OworICAgICAgICArK3RoaXMuX251bWJlck9mU2FtcGxlczsKKyAgICB9LAorCisgICAgbWVhbjog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0YXRpc3RpY3Muc2FtcGxlTWVhbih0
aGlzLl9udW1iZXJPZlNhbXBsZXMsIHRoaXMuX3N1bSk7CisgICAgfSwKKworICAgIHN0YW5kYXJk
RGV2aWF0aW9uOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gU3RhdGlzdGljcy51
bmJpYXNlZFNhbXBsZVN0YW5kYXJkRGV2aWF0aW9uKHRoaXMuX251bWJlck9mU2FtcGxlcywgdGhp
cy5fc3VtLCB0aGlzLl9zcXVhcmVTdW0pOworICAgIH0sCisKKyAgICBwZXJjZW50YWdlOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICB2YXIgbWVhbiA9IHRoaXMubWVhbigpOworICAgICAgICBy
ZXR1cm4gbWVhbiA/IHRoaXMuc3RhbmRhcmREZXZpYXRpb24oKSAqIDEwMCAvIG1lYW4gOiAwOwor
ICAgIH0sCisKKyAgICBjb25jZXJuOiBmdW5jdGlvbihwZXJjZW50YWdlKQorICAgIHsKKyAgICAg
ICAgdmFyIHNpemUgPSBNYXRoLmNlaWwodGhpcy5fbnVtYmVyT2ZTYW1wbGVzICogcGVyY2VudGFn
ZSAvIDEwMCk7CisgICAgICAgIHZhciB2YWx1ZXMgPSB0aGlzLl9tYXhIZWFwLnZhbHVlcyhzaXpl
KTsKKyAgICAgICAgcmV0dXJuIHZhbHVlcy5sZW5ndGggPyB2YWx1ZXMucmVkdWNlKGZ1bmN0aW9u
KGEsIGIpIHsgcmV0dXJuIGEgKyBiOyB9KSAvIHZhbHVlcy5sZW5ndGggOiAwOworICAgIH0sCisK
KyAgICBzY29yZTogZnVuY3Rpb24ocGVyY2VudGFnZSkKKyAgICB7CisgICAgICAgIHJldHVybiBT
dGF0aXN0aWNzLmdlb21ldHJpY01lYW4oW3RoaXMubWVhbigpLCBNYXRoLm1heCh0aGlzLmNvbmNl
cm4ocGVyY2VudGFnZSksIDEpXSk7CisgICAgfQorfQorCitmdW5jdGlvbiBTYW1wbGVyKHNlcmll
c0NvdW50LCBleHBlY3RlZFNhbXBsZUNvdW50LCBwcm9jZXNzb3IpCit7CisgICAgdGhpcy5fcHJv
Y2Vzc29yID0gcHJvY2Vzc29yOworCisgICAgdGhpcy5zYW1wbGVzID0gW107CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBzZXJpZXNDb3VudDsgKytpKSB7CisgICAgICAgIHZhciBhcnJheSA9IG5l
dyBBcnJheShleHBlY3RlZFNhbXBsZUNvdW50KTsKKyAgICAgICAgYXJyYXkuZmlsbCgwKTsKKyAg
ICAgICAgdGhpcy5zYW1wbGVzW2ldID0gYXJyYXk7CisgICAgfQorICAgIHRoaXMuc2FtcGxlQ291
bnQgPSAwOworICAgIHRoaXMubWFya3MgPSB7fTsKK30KKworU2FtcGxlci5wcm90b3R5cGUgPQor
eworICAgIHJlY29yZDogZnVuY3Rpb24oKSB7CisgICAgICAgIC8vIEFzc3VtZSB0aGF0IGFyZ3Vt
ZW50cy5sZW5ndGggPT0gdGhpcy5zYW1wbGVzLmxlbmd0aAorICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdGhpcy5zYW1wbGVz
W2ldW3RoaXMuc2FtcGxlQ291bnRdID0gYXJndW1lbnRzW2ldOworICAgICAgICB9CisgICAgICAg
ICsrdGhpcy5zYW1wbGVDb3VudDsKKyAgICB9LAorCisgICAgbWFyazogZnVuY3Rpb24oY29tbWVu
dCwgZGF0YSkgeworICAgICAgICBkYXRhID0gZGF0YSB8fCB7fTsKKyAgICAgICAgLy8gVGhlIG1h
cmsgZXhpc3RzIGFmdGVyIHRoZSBsYXN0IHJlY29yZGVkIHNhbXBsZQorICAgICAgICBkYXRhLmlu
ZGV4ID0gdGhpcy5zYW1wbGVDb3VudDsKKworICAgICAgICB0aGlzLm1hcmtzW2NvbW1lbnRdID0g
ZGF0YTsKKyAgICB9LAorCisgICAgcHJvY2VzczogZnVuY3Rpb24ob3B0aW9ucykKKyAgICB7Cisg
ICAgICAgIHZhciByZXN1bHRzID0ge307CisKKyAgICAgICAgaWYgKG9wdGlvbnNbImFkanVzdG1l
bnQiXSA9PSAiYWRhcHRpdmUiKQorICAgICAgICAgICAgcmVzdWx0c1tTdHJpbmdzLmpzb24udGFy
Z2V0RlBTXSA9ICtvcHRpb25zWyJmcmFtZS1yYXRlIl07CisKKyAgICAgICAgLy8gUmVtb3ZlIHVu
dXNlZCBjYXBhY2l0eQorICAgICAgICB0aGlzLnNhbXBsZXMgPSB0aGlzLnNhbXBsZXMubWFwKGZ1
bmN0aW9uKGFycmF5KSB7CisgICAgICAgICAgICByZXR1cm4gYXJyYXkuc2xpY2UoMCwgdGhpcy5z
YW1wbGVDb3VudCk7CisgICAgICAgIH0sIHRoaXMpOworCisgICAgICAgIHRoaXMuX3Byb2Nlc3Nv
ci5wcm9jZXNzU2FtcGxlcyhyZXN1bHRzKTsKKworICAgICAgICByZXR1cm4gcmVzdWx0czsKKyAg
ICB9Cit9CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvc2lt
cGxlL3NpbXBsZS1jYW52YXMtcGF0aHMuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRl
ci90ZXN0cy9zaW1wbGUvc2ltcGxlLWNhbnZhcy1wYXRocy5odG1sCmluZGV4IDRhMmRhOGYuLmYy
Njc4MjAgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy9zaW1w
bGUvc2ltcGxlLWNhbnZhcy1wYXRocy5odG1sCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9t
ZXRlci90ZXN0cy9zaW1wbGUvc2ltcGxlLWNhbnZhcy1wYXRocy5odG1sCkBAIC01LDEwICs1LDEw
IEBACiA8L2hlYWQ+CiA8Ym9keT4KICAgICA8Y2FudmFzIGlkPSJzdGFnZSI+PC9jYW52YXM+Ci0g
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9hbGdvcml0aG0uanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9zYW1wbGVyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2V4dGVuc2lvbnMuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWF0aC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9tYWluLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4v
bWFzdGVyL3Jlc291cmNlcy9jYW52YXMtc3RhZ2UuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
UGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3RlbXBsYXRlL3RlbXBsYXRlLWNhbnZh
cy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3RlbXBsYXRlL3RlbXBs
YXRlLWNhbnZhcy5odG1sCmluZGV4IGI4N2JhNzkuLjExZGRmYWEgMTAwNjQ0Ci0tLSBhL1BlcmZv
cm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZW1wbGF0ZS90ZW1wbGF0ZS1jYW52YXMuaHRt
bAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGVtcGxhdGUvdGVtcGxh
dGUtY2FudmFzLmh0bWwKQEAgLTUsMTAgKzUsMTAgQEAKIDwvaGVhZD4KIDxib2R5PgogICAgIDxj
YW52YXMgaWQ9InN0YWdlIj48L2NhbnZhcz4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2FsZ29yaXRobS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9zdHJpbmdzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvZXh0ZW5zaW9ucy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9hbGdvcml0aG0uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
c2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYXRo
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21haW4uanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVtcGxhdGUtY2FudmFzLmpzIj48
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90
ZW1wbGF0ZS90ZW1wbGF0ZS1jc3MuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90
ZXN0cy90ZW1wbGF0ZS90ZW1wbGF0ZS1jc3MuaHRtbAppbmRleCA5MGJmMmU5Li5iMmJhNDc5IDEw
MDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGVtcGxhdGUvdGVt
cGxhdGUtY3NzLmh0bWwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3Rl
bXBsYXRlL3RlbXBsYXRlLWNzcy5odG1sCkBAIC01LDEwICs1LDEwIEBACiA8L2hlYWQ+CiA8Ym9k
eT4KICAgICA8ZGl2IGlkPSJzdGFnZSI+PC9kaXY+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9hbGdvcml0aG0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvc3RyaW5ncy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9zYW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2V4dGVuc2lvbnMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvYWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3NhbXBsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
bWF0aC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9tYWluLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RlbXBsYXRlLWNzcy5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMv
dGVtcGxhdGUvdGVtcGxhdGUtc3ZnLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIv
dGVzdHMvdGVtcGxhdGUvdGVtcGxhdGUtc3ZnLmh0bWwKaW5kZXggMmUwZGY5YS4uNDI1ZWMzNiAx
MDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3RlbXBsYXRlL3Rl
bXBsYXRlLXN2Zy5odG1sCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90
ZW1wbGF0ZS90ZW1wbGF0ZS1zdmcuaHRtbApAQCAtNSwxMCArNSwxMCBAQAogPC9oZWFkPgogPGJv
ZHk+CiAgICAgPHN2ZyBpZD0ic3RhZ2UiPjwvc3ZnPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvYWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3N0cmluZ3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvc2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9leHRlbnNpb25zLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2FsZ29yaXRobS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9zYW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L21hdGguanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWFpbi5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZW1wbGF0ZS1zdmcuanMi
Pjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3Rz
L3RleHQvbGF5ZXJpbmctdGV4dC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rl
c3RzL3RleHQvbGF5ZXJpbmctdGV4dC5odG1sCmluZGV4IGZiZmYzNzMuLjQxODBiYmEgMTAwNjQ0
Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L2xheWVyaW5nLXRl
eHQuaHRtbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC9sYXll
cmluZy10ZXh0Lmh0bWwKQEAgLTIyLDEwICsyMiwxMCBAQAogPC9oZWFkPgogPGJvZHk+CiAgICAg
PGRpdiBpZD0ic3RhZ2UiPjwvZGl2PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
YWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3N0cmluZ3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
c2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9l
eHRlbnNpb25zLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2Fs
Z29yaXRobS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zYW1w
bGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL21hdGguanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvbWFpbi5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9sYXllcmluZy10ZXh0LmpzIj48L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L3Rl
eHQtYm94ZXMuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci90ZXN0cy90ZXh0L3Rl
eHQtYm94ZXMuaHRtbAppbmRleCA2YzEwNmY4Li44MjhjYTcxIDEwMDY0NAotLS0gYS9QZXJmb3Jt
YW5jZVRlc3RzL0FuaW1vbWV0ZXIvdGVzdHMvdGV4dC90ZXh0LWJveGVzLmh0bWwKKysrIGIvUGVy
Zm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Rlc3RzL3RleHQvdGV4dC1ib3hlcy5odG1sCkBAIC01
MCwxMCArNTAsMTAgQEAKICAgICAgICAg4LKo4LKo4LKX4LOGIOCyueCyvuCyqOCyvyDgsobgspfg
sqbgs4YsIOCyqOCyvuCyqOCzgSDgspfgspzgsqjgs43gsqjgs4Eg4LKk4LK/4LKo4LKs4LK54LOB
4LKm4LOBCiAgICAgPC9kaXY+CiAgICAgPGRpdiBpZD0ic3RhZ2UiPjwvZGl2PgotICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvYWxnb3JpdGhtLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3N0cmluZ3MuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvc2FtcGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9leHRlbnNpb25zLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FsZ29yaXRobS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9zYW1wbGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL21hdGguanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvbWFpbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL2JvdW5jaW5n
LXBhcnRpY2xlcy9yZXNvdXJjZXMvYm91bmNpbmctcGFydGljbGVzLmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNjNhNDk4Zi4uYzI4YTY3YiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTUsNiAr
NSw0MiBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAgICAg
IE1vdmUgYWxnb3JpdGhtLmpzIGFuZCBzYW1wbGVyLmpzIHRvIHRlc3RzLyBhbmQgYmVuY2htYXJr
LXJ1bm5lci5qcyB0byBydW5uZXIvLgorCisgICAgICAgIE5lZWRlZCBieSBib3RoIGhhcm5lc3Nl
cy4KKyAgICAgICAgKiBBbmltb21ldGVyL3Jlc291cmNlcy9ydW5uZXIvYmVuY2htYXJrLXJ1bm5l
ci5qczogUmVuYW1lZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9yZXNvdXJjZXMv
ZGVidWctcnVubmVyL2JlbmNobWFyay1ydW5uZXIuanMuCisgICAgICAgICogQW5pbW9tZXRlci9k
ZXZlbG9wZXIuaHRtbDoKKyAgICAgICAgKiBBbmltb21ldGVyL2luZGV4Lmh0bWw6CisKKyAgICAg
ICAgTmVlZGVkIG9ubHkgYnkgdGhlIHRlc3RzLiBNb3ZlIHRvIHRlc3RzLy4gU3RhdGlzdGljcywg
aW4gc2FtcGxlci5qcywgaXMgdXNlZCBieSBSZXN1bHRzRGFzaGJvYXJkLCBzbyBtb3ZlIHRoYXQK
KyAgICAgICAgaW50byBleHRlbnNpb25zLmpzLgorICAgICAgICAqIEFuaW1vbWV0ZXIvcmVzb3Vy
Y2VzL2V4dGVuc2lvbnMuanM6CisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJjZXMv
YWxnb3JpdGhtLmpzOiBSZW5hbWVkIGZyb20gUGVyZm9ybWFuY2VUZXN0cy9Bbmltb21ldGVyL3Jl
c291cmNlcy9hbGdvcml0aG0uanMuCisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy9yZXNvdXJj
ZXMvc2FtcGxlci5qczogUmVuYW1lZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMvQW5pbW9tZXRlci9y
ZXNvdXJjZXMvc2FtcGxlci5qcy4KKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5n
LXBhcnRpY2xlcy9ib3VuY2luZy1jYW52YXMtaW1hZ2VzLmh0bWw6CisgICAgICAgICogQW5pbW9t
ZXRlci90ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNpbmctY2FudmFzLXNoYXBlcy5odG1s
OgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5n
LWNzcy1pbWFnZXMuaHRtbDoKKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL2JvdW5jaW5nLXBh
cnRpY2xlcy9ib3VuY2luZy1jc3Mtc2hhcGVzLmh0bWw6CisgICAgICAgICogQW5pbW9tZXRlci90
ZXN0cy9ib3VuY2luZy1wYXJ0aWNsZXMvYm91bmNpbmctc3ZnLWltYWdlcy5odG1sOgorICAgICAg
ICAqIEFuaW1vbWV0ZXIvdGVzdHMvYm91bmNpbmctcGFydGljbGVzL2JvdW5jaW5nLXN2Zy1zaGFw
ZXMuaHRtbDoKKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL21hc3Rlci9jYW52YXMtc3RhZ2Uu
aHRtbDoKKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL21pc2MvY2FudmFzLWVsZWN0cm9ucy5o
dG1sOgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvbWlzYy9jYW52YXMtc3RhcnMuaHRtbDoK
KyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL21pc2MvY29tcG9zaXRpbmctdHJhbnNmb3Jtcy5o
dG1sOgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvc2ltcGxlL3NpbXBsZS1jYW52YXMtcGF0
aHMuaHRtbDoKKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL3RlbXBsYXRlL3RlbXBsYXRlLWNh
bnZhcy5odG1sOgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvdGVtcGxhdGUvdGVtcGxhdGUt
Y3NzLmh0bWw6CisgICAgICAgICogQW5pbW9tZXRlci90ZXN0cy90ZW1wbGF0ZS90ZW1wbGF0ZS1z
dmcuaHRtbDoKKyAgICAgICAgKiBBbmltb21ldGVyL3Rlc3RzL3RleHQvbGF5ZXJpbmctdGV4dC5o
dG1sOgorICAgICAgICAqIEFuaW1vbWV0ZXIvdGVzdHMvdGV4dC90ZXh0LWJveGVzLmh0bWw6CisK
KzIwMTYtMDEtMDMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0
ZSBiZW5jaG1hcmsgdGVzdCBzdWl0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUyNjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKICAgICAgICAgRml4IHRlc3RzIGZvciBvdGhlciBicm93c2Vycy4KIAogICAgICAgICAq
IEFuaW1vbWV0ZXIvcmVzb3VyY2VzL2V4dGVuc2lvbnMuanM6Ci0tIAoyLjUuNCAoQXBwbGUgR2l0
LTYxKQoK
</data>
<flag name="review"
          id="293496"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>