<?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>159272</bug_id>
          
          <creation_ts>2016-06-29 13:46:32 -0700</creation_ts>
          <short_desc>REGRESSION (r202529?) inspector/debugger/break-on-* tests are flaky</short_desc>
          <delta_ts>2016-07-05 11:37:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</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="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1206475</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-06-29 13:46:32 -0700</bug_when>
    <thetext>inspector/debugger/break-on-* tests are flaky

These tests are flaky and seem to fail together on mac-wk1 with a similar diff

inspector/debugger/break-on-exception-finally.html
inspector/debugger/break-on-exception-native.html
inspector/debugger/break-on-exception.html
inspector/debugger/break-on-uncaught-exception-finally.html
inspector/debugger/break-on-uncaught-exception-native.html
inspector/debugger/break-on-uncaught-exception.html

https://build.webkit.org/builders/Apple%20El%20Capitan%20Debug%20WK1%20(Tests)/builds/6287


--- /Volumes/Data/slave/elcapitan-debug-tests-wk1/build/layout-test-results/inspector/debugger/break-on-exception-finally-expected.txt
+++ /Volumes/Data/slave/elcapitan-debug-tests-wk1/build/layout-test-results/inspector/debugger/break-on-exception-finally-actual.txt
@@ -4,6 +4,5 @@
 CONSOLE MESSAGE: line 8: TestError
 Checking pause locations when pausing on all exceptions.
 
-PAUSE #1 AT: doThrow:8:22
 Uncaught exception in test page: TestError [break-on-exception-tests.js:8]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206476</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-06-29 13:46:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/27087938&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206478</commentid>
    <comment_count>2</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-06-29 13:47:30 -0700</bug_when>
    <thetext>Seems to have started ~r202537, but I do not see an obviously related change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206634</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-06-29 21:21:16 -0700</bug_when>
    <thetext>The first failures that I see are in r202531, in a test run that covered revisions r202531-r202529.

While &lt;http://trac.webkit.org/projects/webkit/changeset/202529&gt; does not look like an obvious culprit, it has to be it with fairly high probability.

This happens in WK2 too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206643</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-06-29 21:46:10 -0700</bug_when>
    <thetext>One possibility is merely adding a new inspector test causing other to break.

Also, these tests all have InspectorTest.reloadPage, which I suspect has always been the source of some instability given how inspector tests work.

I&apos;d be fine with having these tests just be skipped while I investigate. Just running the inspector/debugger directory I encounter some sporadic issues that will require more involved investigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1206943</commentid>
    <comment_count>5</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-06-30 17:09:04 -0700</bug_when>
    <thetext>Skipped tests to get bots back to green while Joe investigates http://trac.webkit.org/projects/webkit/changeset/202720</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207365</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-01 17:29:19 -0700</bug_when>
    <thetext>I just completely rewrote all the break-on-* tests for a number of reasons:

    - easier to read and understand using new libraries
    - avoid reload, should make them individually faster
    - merge tests, instead of 1-file-per-test
      - eliminates a ton of dead and stale code in these tests

That said, I think an issue is that the bots might be running them slowly, so I&apos;m going to mark them as [ Slow ] when first enabling them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207366</commentid>
    <comment_count>7</comment_count>
      <attachid>282613</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-01 17:33:07 -0700</bug_when>
    <thetext>Created attachment 282613
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207368</commentid>
    <comment_count>8</comment_count>
      <attachid>282614</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-01 17:36:58 -0700</bug_when>
    <thetext>Created attachment 282614
[PATCH] Proposed Fix

Rebaselined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207371</commentid>
    <comment_count>9</comment_count>
      <attachid>282616</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-01 17:41:07 -0700</bug_when>
    <thetext>Created attachment 282616
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207478</commentid>
    <comment_count>10</comment_count>
      <attachid>282616</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-02 20:33:45 -0700</bug_when>
    <thetext>Comment on attachment 282616
[PATCH] Proposed Fix

Rejecting attachment 282616 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 282616, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
t-exception.html
patching file LayoutTests/platform/mac-wk2/TestExpectations
Hunk #1 succeeded at 294 (offset -2 lines).
patching file LayoutTests/platform/mac/TestExpectations
Hunk #1 FAILED at 737.
Hunk #2 succeeded at 1234 (offset -1 lines).
1 out of 2 hunks FAILED -- saving rejects to file LayoutTests/platform/mac/TestExpectations.rej

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Timothy Hatcher&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/1616548</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207896</commentid>
    <comment_count>11</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-05 11:37:16 -0700</bug_when>
    <thetext>&lt;https://trac.webkit.org/changeset/202825&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282613</attachid>
            <date>2016-07-01 17:33:07 -0700</date>
            <delta_ts>2016-07-01 17:36:58 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>break-on-1.patch</filename>
            <type>text/plain</type>
            <size>107320</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYTc0MDdhLi44MjI5ZjcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTYtMDct
MDEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdS
RVNTSU9OIChyMjAyNTI5PykgaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLSogdGVzdHMgYXJl
IGZsYWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTkyNzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI3MDg3OTM4PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJld3JpdGUgdGhlIGJyZWFrIG9uIGV4
Y2VwdGlvbiBhbmQgdW5jYXVnaHQgZXhjZXB0aW9uIHRlc3RzCisgICAgICAgIHRvIGJlIGVhc2ll
ciB0byByZWFkIGFuZCB1bmRlcnN0YW5kLCByZWR1Y2UgZHVwbGljYXRlZCBjb2RlLAorICAgICAg
ICBhbmQgYXZvaWQgdW5uZWNlc3Nhcnkgd29yayAoc3VjaCBhcyBhIHJlbG9hZCBhbmQgc2NyaXB0
IGNoZWNrKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zOgorICAgICAgICBVbnNraXAgdGhlIGNvcmUgYnJlYWstb24tKiB0ZXN0cywg
YnV0IG1hcmsgdGhlbSBhcyBTbG93LgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhj
ZXB0aW9uLXRocm93LWluLXByb21pc2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRp
b24uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQt
ZXhjZXB0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLmh0bWw6CisgICAgICAgIENvbnZlcmdlIGludG8gNCB0
ZXN0cywgc2hhcmUgYSBzaWduaWZpY2FudCBhbW91bnQgb2YgY29kZSwKKyAgICAgICAgYW5kIG1h
a2UgdGhlbSBlYXNpZXIgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZC4KKyAgICAgICAgCisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1jYXRjaC1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2Vw
dGlvbi1jYXRjaC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9i
cmVhay1vbi1leGNlcHRpb24tZmluYWxseS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1maW5hbGx5Lmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1u
YXRpdmUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dl
ci9icmVhay1vbi1leGNlcHRpb24tbmF0aXZlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXJldGhy
b3ctaW4tY2F0Y2gtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS1yZXRocm93LWluLWNh
dGNoLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9u
LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4t
cHJvbWlzZS10aGVuLXdpdGgtY2F0Y2gtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10
aGVuLXdpdGgtY2F0Y2guaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ct
aW4tcHJvbWlzZS13aXRoLWNhdGNoLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0
aC1jYXRjaC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVh
ay1vbi11bmNhdWdodC1leGNlcHRpb24tY2F0Y2gtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tY2F0
Y2guaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
dW5jYXVnaHQtZXhjZXB0aW9uLWZpbmFsbHktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tZmluYWxs
eS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11
bmNhdWdodC1leGNlcHRpb24tbmF0aXZlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLW5hdGl2ZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNh
dWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS1yZXRocm93LWluLWNhdGNoLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5j
YXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1l
eGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRo
cm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRo
cm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1w
cm9taXNlLXRoZW4uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
YnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1jYXRjaC1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
LW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXdpdGgtY2F0Y2guaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgTWVyZ2VkIGludG8gdGhlIDQgdGVzdHMgYWJvdmUuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9y
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWstb24tZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9yLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi13aW5kb3ctb25l
cnJvci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi13aW5kb3ctb25lcnJvci5odG1sOiBSZW1vdmVk
LgorICAgICAgICBFbGltaW5hdGUgdGhlc2UgZW50aXJlbHkuIFRlc3RzIGFscmVhZHkgaGF2ZSBh
biBvbmVycm9yIGxpc3RlbmVyLAorICAgICAgICBzbyB0aGVzZSB3ZXJlIGFjdHVhbGx5IGFscmVh
ZHkgZXF1aXZhbGVudCB0byB0aGUgYmFzaWMgdGVzdHMuCisKIDIwMTYtMDYtMzAgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBpbnNwZWN0b3IvZGVidWdn
ZXIvY29tbWFuZC1saW5lLWFwaS1leGNlcHRpb24uaHRtbCBmbGFraWx5IHRpbWVzIG91dCBvbiBt
YWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGNmYmIxNGQuLjhjOTMyMTYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMTMxLDExICsxMzEsNiBAQCB3ZWJraXQub3JnL2IvMTQ4MDM2IGh0dHAvdGVzdHMv
aW5zcGVjdG9yL3JlcGxheS8gWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzEyOTYzOSBpbnNwZWN0
b3IvZG9tL2RvbS1zZWFyY2gtY3Jhc2guaHRtbCBbIFNraXAgXQogCi13ZWJraXQub3JnL2IvMTQ3
NTAyIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ct
aW4tcHJvbWlzZS1yZXRocm93LWluLWNhdGNoLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8x
NDc1MDIgaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJv
dy1pbi1wcm9taXNlLXRoZW4td2l0aC1jYXRjaC5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2Iv
MTQ3NTAyIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhy
b3ctaW4tcHJvbWlzZS10aGVuLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNDc1MDIgaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9t
aXNlLXdpdGgtY2F0Y2guaHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE0NzUwMiBpbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Uu
aHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEyODczNiBpbnNwZWN0b3IvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1kZmcuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTM0OTgy
IGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy1hbmQtbW9kaWZ5LWxvY2FsLmh0
bWwgWyBGYWlsdXJlIFBhc3MgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLWNhdGNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tY2F0Y2gtZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTgxZTMwLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tY2F0Y2gt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTI6IHRlc3RDYXRjaAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5n
IFRlc3RFcnJvcgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE2OiBjYXRjaCBUZXN0RXJyb3IKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAxODogRE9ORQotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdo
ZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy4KLQotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoy
MgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
ZXhjZXB0aW9uLWNhdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWstb24tZXhjZXB0aW9uLWNhdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDIzYmNhZTMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrLW9uLWV4Y2VwdGlvbi1jYXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBA
QAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBmdW5jdGlvbiBkb0V4Y2VwdGlvblRlc3Qo
dGVzdE5hbWUsIGV4Y2VwdGlvbkJyZWFrVHlwZSwgcmVzdW1lQWN0aW9uKQotICAgIHsKLSAgICAg
ICAgdmFyIHBhdXNlcyA9IDA7Ci0gICAgICAgIHZhciBpbmRleCA9IDA7Ci0KLSAgICAgICAgZnVu
Y3Rpb24gcnVuVGVzdENhc2UodGVzdCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZSgic2V0VGltZW91dCgiICsgdGVzdCArICIsIDUwKSIpOwotICAgICAgICB9Ci0K
LSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2
ZW50KSB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7
Ci0gICAgICAgICAgICBpZiAoIS9icmVhay1vbi1leGNlcHRpb24tdGVzdHNcLmpzJC8udGVzdChz
Y3JpcHRPYmplY3QudXJsKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAg
IGlmIChleGNlcHRpb25CcmVha1R5cGUgPT0gJ0FsbEV4Y2VwdGlvbnMnKQotICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQu
ZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQu
ZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgcnVuVGVzdENhc2UodGVzdE5hbWUpOwot
ICAgICAgICB9KTsKLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVz
RGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotICAgICAgICAg
ICAgaWYgKGNhbGxGcmFtZSkgewotICAgICAgICAgICAgICAgIC8vIFBhdXNpbmcuCi0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdl
ci5wYXVzZVJlYXNvbiA9PSAiZXhjZXB0aW9uIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgZnVu
Y05hbWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiI7Ci0gICAgICAg
ICAgICAgICAgdmFyIGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAg
ICAgICAgICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOwotICAgICAg
ICAgICAgICAgIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAxOwotCi0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNFICMiICsgKCsrcGF1c2VzKSArICIg
QVQ6ICIgKyBmdW5jTmFtZSArICI6IiArIGxpbmUgKyAiOiIgKyBjb2x1bW4pOwotICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0KLSAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gUmVzdW1pbmcuCi0gICAgICAgICAgICAg
ICAgaWYgKHJlc3VtZUFjdGlvbiA9PSAnRmluaXNoT25SZXN1bWUnKQotICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9KTsKLQotICAgICAgICAvLyBUaGlzIGlzIGEgc2lnbmFsIG1lY2hhbmlzbSBmb3IgdGhlIHdl
YiBwcm9jZXNzIHRvIHRlbGwgdXMgdGhhdCB0aGUgdGVzdCBpcyBkb25lLgotICAgICAgICAvLyBU
aGUgd2ViIHByb2Nlc3MgZmlyZXMgdGhlIHNpZ25hbCBieSBkb2luZyBjb25zb2xlLmxvZygiRE9O
RSIpLgotICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgZnVuY3Rpb24oZXZlbnQp
IHsKLSAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YS5tZXNzYWdlOwotICAgICAg
ICAgICAgaWYgKCFtZXNzYWdlLnBhcmFtZXRlcnMgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzLmxlbmd0
aCAhPT0gMSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAobWVzc2Fn
ZS5wYXJhbWV0ZXJzWzBdLnR5cGUgIT09ICJzdHJpbmciIHx8IG1lc3NhZ2UucGFyYW1ldGVyc1sw
XS5kZXNjcmlwdGlvbiAhPT0gIkRPTkUiKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0pOwotCi0gICAg
ICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOwotICAgIH0KLQotICAgIGRvRXhjZXB0aW9u
VGVzdCgndGVzdENhdGNoJywgJ0FsbEV4Y2VwdGlvbnMnLCAnSWdub3JlUmVzdW1lJyk7Ci19Ci08
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVj
a2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIGFsbCBleGNlcHRpb25zLjwvcD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVhay1vbi1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKaW5kZXggYTg0M2Y3
Yy4uZjFmZGI1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrLW9uLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKQEAgLTEsNyArMSwzNiBA
QAogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDg6IFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIyOiB0ZXN0
RmluYWxseQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDI2OiBmaW5hbGx5CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODog
VGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzE6IHRlc3RUaHJvd2luZ1RocnVOYXRp
dmVDb2RlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgODogVGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6
IHRlc3RDYXRjaAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE2OiBjYXRjaCBUZXN0RXJyb3IKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxODogRE9ORQogQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBv
biBhbGwgZXhjZXB0aW9ucy4KIAotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgorCis9PSBSdW5u
aW5nIHRlc3Qgc3VpdGU6IEJyZWFrT25BbnlFeGNlcHRpb24KKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBCcmVha09uQW55RXhjZXB0aW9uLlVuY2F1Z2h0RXhjZXB0aW9uQmFzaWMKK1BBU1M6IFNob3Vs
ZCBwYXVzZSBmb3IgZXhjZXB0aW9uLgorUEFVU0UgQVQgZG9UaHJvdzo4OjIyCitVbmNhdWdodCBl
eGNlcHRpb24gaW4gdGVzdCBwYWdlOiBUZXN0RXJyb3IgW2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0
cy5qczo4XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQnJlYWtPbkFueUV4Y2VwdGlvbi5VbmNh
dWdodEV4Y2VwdGlvbkluRmluYWxseQorUEFTUzogU2hvdWxkIHBhdXNlIGZvciBleGNlcHRpb24u
CitQQVVTRSBBVCBkb1Rocm93Ojg6MjIKIFVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiB0ZXN0IHBhZ2U6
IFRlc3RFcnJvciBbYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzOjhdCiAKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBCcmVha09uQW55RXhjZXB0aW9uLlVuY2F1Z2h0RXhjZXB0aW9uVGhydU5hdGl2
ZUNvZGUKK1BBU1M6IFNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLgorUEFVU0UgQVQgZG9UaHJv
dzo4OjIyCitVbmNhdWdodCBleGNlcHRpb24gaW4gdGVzdCBwYWdlOiBUZXN0RXJyb3IgW2JyZWFr
LW9uLWV4Y2VwdGlvbi10ZXN0cy5qczo4XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQnJlYWtP
bkFueUV4Y2VwdGlvbi5DYXVnaHRFeGNlcHRpb24KK1BBU1M6IFNob3VsZCBwYXVzZSBmb3IgZXhj
ZXB0aW9uLgorUEFVU0UgQVQgZG9UaHJvdzo4OjIyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tZmluYWxseS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLWZp
bmFsbHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMWJiZGZk
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1l
eGNlcHRpb24tZmluYWxseS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAg
QEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMjogdGVzdEZpbmFsbHkKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNjog
ZmluYWxseQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6IFRlc3RFcnJvcgotQ2hlY2tpbmcgcGF1
c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy4KLQotUEFVU0UgIzEg
QVQ6IGRvVGhyb3c6ODoyMgotVW5jYXVnaHQgZXhjZXB0aW9uIGluIHRlc3QgcGFnZTogVGVzdEVy
cm9yIFticmVhay1vbi1leGNlcHRpb24tdGVzdHMuanM6OF0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1maW5hbGx5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLWZpbmFs
bHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjc2ZGU3YS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLWZp
bmFsbHkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLTwhZG9jdHlwZSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL3Jlc291cmNlcy9i
cmVhay1vbi1leGNlcHRpb24tdGVzdHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9u
IHRlc3QoKSB7Ci0gICAgZnVuY3Rpb24gZG9FeGNlcHRpb25UZXN0KHRlc3ROYW1lLCBleGNlcHRp
b25CcmVha1R5cGUsIHJlc3VtZUFjdGlvbikKLSAgICB7Ci0gICAgICAgIHZhciBwYXVzZXMgPSAw
OwotICAgICAgICB2YXIgaW5kZXggPSAwOwotCi0gICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RDYXNl
KHRlc3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldFRp
bWVvdXQoIiArIHRlc3QgKyAiLCA1MCkiKTsKLSAgICAgICAgfQotCi0gICAgICAgIFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAg
ICAgdmFyIHNjcmlwdE9iamVjdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwotICAgICAgICAgICAgaWYg
KCEvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzXC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAoZXhjZXB0aW9uQnJl
YWtUeXBlID09ICdBbGxFeGNlcHRpb25zJykKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNYW5hZ2VyLmFsbEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TWFuYWdlci5hbGxVbmNhdWdodEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7
Ci0KLSAgICAgICAgICAgIHJ1blRlc3RDYXNlKHRlc3ROYW1lKTsKLSAgICAgICAgfSk7Ci0KLSAg
ICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgZnVuY3Rp
b24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBXZWJJbnNwZWN0b3IuZGVi
dWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZTsKLSAgICAgICAgICAgIGlmIChjYWxsRnJhbWUp
IHsKLSAgICAgICAgICAgICAgICAvLyBQYXVzaW5nLgotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucGF1c2VSZWFzb24gPT0g
ImV4Y2VwdGlvbiIpOwotCi0gICAgICAgICAgICAgICAgdmFyIGZ1bmNOYW1lID0gY2FsbEZyYW1l
LmZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iOwotICAgICAgICAgICAgICAgIHZhciBsb2Nh
dGlvbiA9IGNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRpb247Ci0gICAgICAgICAgICAgICAgdmFy
IGxpbmUgPSBsb2NhdGlvbi5saW5lTnVtYmVyICsgMTsKLSAgICAgICAgICAgICAgICB2YXIgY29s
dW1uID0gbG9jYXRpb24uY29sdW1uTnVtYmVyICsgMTsKLQotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJQQVVTRSAjIiArICgrK3BhdXNlcykgKyAiIEFUOiAiICsgZnVuY05hbWUg
KyAiOiIgKyBsaW5lICsgIjoiICsgY29sdW1uKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotCi0gICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIC8vIFJlc3VtaW5nLgotICAgICAgICAgICAgICAgIGlmIChyZXN1bWVBY3Rp
b24gPT0gJ0ZpbmlzaE9uUmVzdW1lJykKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0KLSAgICAgICAg
Ly8gVGhpcyBpcyBhIHNpZ25hbCBtZWNoYW5pc20gZm9yIHRoZSB3ZWIgcHJvY2VzcyB0byB0ZWxs
IHVzIHRoYXQgdGhlIHRlc3QgaXMgZG9uZS4KLSAgICAgICAgLy8gVGhlIHdlYiBwcm9jZXNzIGZp
cmVzIHRoZSBzaWduYWwgYnkgZG9pbmcgY29uc29sZS5sb2coIkRPTkUiKS4KLSAgICAgICAgV2Vi
SW5zcGVjdG9yLmxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFu
YWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2
YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGEubWVzc2FnZTsKLSAgICAgICAgICAgIGlmICghbWVzc2Fn
ZS5wYXJhbWV0ZXJzIHx8IG1lc3NhZ2UucGFyYW1ldGVycy5sZW5ndGggIT09IDEpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKG1lc3NhZ2UucGFyYW1ldGVyc1swXS50
eXBlICE9PSAic3RyaW5nIiB8fCBtZXNzYWdlLnBhcmFtZXRlcnNbMF0uZGVzY3JpcHRpb24gIT09
ICJET05FIikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0
LnJlbG9hZFBhZ2UoKTsKLSAgICB9Ci0KLSAgICBkb0V4Y2VwdGlvblRlc3QoJ3Rlc3RGaW5hbGx5
JywgJ0FsbEV4Y2VwdGlvbnMnLCAnSWdub3JlUmVzdW1lJyk7Ci19Ci08L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBsb2Nh
dGlvbnMgd2hlbiBwYXVzaW5nIG9uIGFsbCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1l
eGNlcHRpb24tbmF0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVhay1vbi1leGNlcHRpb24tbmF0aXZlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNmM1OGU1MC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLW5hdGl2ZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzMTogdGVz
dFRocm93aW5nVGhydU5hdGl2ZUNvZGUKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2lu
ZyBUZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA4OiBUZXN0RXJyb3IKLUNoZWNraW5n
IHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gYWxsIGV4Y2VwdGlvbnMuCi0KLVBBVVNF
ICMxIEFUOiBkb1Rocm93Ojg6MjIKLVVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiB0ZXN0IHBhZ2U6IFRl
c3RFcnJvciBbYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzOjhdCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tbmF0aXZlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLW5h
dGl2ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NGQyYzk2Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24t
bmF0aXZlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IWRvY3R5cGUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMv
YnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlv
biB0ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0
aW9uQnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1c2VzID0g
MDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5UZXN0Q2Fz
ZSh0ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRU
aW1lb3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAg
ICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAgICAgIGlm
ICghL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVjdC51cmwp
KQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbkJy
ZWFrVHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNl
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNl
OwotCi0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0pOwotCi0g
ICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0
aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2FsbEZyYW1l
KSB7Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09
ICJleGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNhbGxGcmFt
ZS5mdW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2YXIgbG9j
YXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAgICAgIHZh
ciBsaW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAgdmFyIGNv
bHVtbiA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1bmNOYW1l
ICsgIjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVzdW1lQWN0
aW9uID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAg
IC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVs
bCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBm
aXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdl
Ykluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01h
bmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAg
dmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3Nh
Z2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0u
dHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9
PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5yZWxvYWRQYWdlKCk7Ci0gICAgfQotCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0VGhyb3dp
bmdUaHJ1TmF0aXZlQ29kZScsICdBbGxFeGNlcHRpb25zJywgJ0lnbm9yZVJlc3VtZScpOwotfQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+Q2hl
Y2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy48L3A+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1p
bi1wcm9taXNlLWV4cGVjdGVkLnR4dAppbmRleCA0YTAwYTdhLi5lMTYxNGIwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93
LWluLXByb21pc2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS1leHBlY3RlZC50eHQKQEAg
LTEsNyArMSw0OCBAQAogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiB0ZXN0VGhyb3dpbmdJblBy
b21pc2UKIENPTlNPTEUgTUVTU0FHRTogbGluZSAzODogaW4gcHJvbWlzZQogQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25z
IHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1
NTogdGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU3OiBp
biBwcm9taXNlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6IGluIHByb21pc2UudGhlbgorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDY2OiB0ZXN0VGhyb3dpbmdJblByb21pc2VUaGVuV2l0aENhdGNoCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgNjg6IGluIHByb21pc2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3MTogaW4g
cHJvbWlzZS50aGVuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9y
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzQ6IGluIHByb21pc2UuY2F0Y2gKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSA3NTogRE9ORQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ0OiB0ZXN0VGhyb3dp
bmdJblByb21pc2VXaXRoQ2F0Y2gKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0NjogaW4gcHJvbWlz
ZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDQ5OiBpbiBwcm9taXNlLmNhdGNoCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
NTA6IERPTkUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4MDogdGVzdFRocm93aW5nSW5Qcm9taXNl
V2l0aFJldGhyb3dJbkNhdGNoCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODI6IGluIHByb21pc2UK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSA4NTogaW4gcHJvbWlzZS5jYXRjaAorQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25z
IHdpdGhpbiBQcm9taXNlcyB3aGVuIHBhdXNpbmcgb24gYWxsIGV4Y2VwdGlvbnMuCiAKLVBBVVNF
ICMxIEFUOiBkb1Rocm93Ojg6MjIKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBCcmVha09uQW55
RXhjZXB0aW9uLlByb21pc2UKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBCcmVha09uQW55RXhjZXB0
aW9uLlByb21pc2UuRXhjZXB0aW9uSW5Qcm9taXNlQ29uc3RydWN0b3IKK1BBU1M6IFNob3VsZCBw
YXVzZSBmb3IgZXhjZXB0aW9uLgorUEFVU0UgQVQgZG9UaHJvdzo4OjIyCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBCcmVha09uQW55RXhjZXB0aW9uLlByb21pc2UuRXhjZXB0aW9uSW5Qcm9taXNl
VGhlbldpdGhvdXRDYXRjaAorUEFTUzogU2hvdWxkIHBhdXNlIGZvciBleGNlcHRpb24uCitQQVVT
RSBBVCBkb1Rocm93Ojg6MjIKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEJyZWFrT25BbnlFeGNl
cHRpb24uUHJvbWlzZS5FeGNlcHRpb25JblByb21pc2VUaGVuV2l0aENhdGNoCitQQVNTOiBTaG91
bGQgcGF1c2UgZm9yIGV4Y2VwdGlvbi4KK1BBVVNFIEFUIGRvVGhyb3c6ODoyMgorCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogQnJlYWtPbkFueUV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJv
bWlzZUNhdGNoCitQQVNTOiBTaG91bGQgcGF1c2UgZm9yIGV4Y2VwdGlvbi4KK1BBVVNFIEFUIGRv
VGhyb3c6ODoyMgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQnJlYWtPbkFueUV4Y2VwdGlvbi5Q
cm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZVRoZW5BbmRSZXRocm93bkluQ2F0Y2gKK1BBU1M6IFNo
b3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLgorUEFVU0UgQVQgZG9UaHJvdzo4OjIyCitQQVNTOiBT
aG91bGQgcGF1c2UgZm9yIGV4Y2VwdGlvbi4KK1BBVVNFIEFUIHByb21pc2VDYXRjaDo4NjoxNgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhj
ZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWlu
LXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDRiOGFmYzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4t
Y2F0Y2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgODA6IHRlc3RUaHJvd2luZ0luUHJvbWlzZVdpdGhSZXRocm93SW5DYXRj
aAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDgyOiBpbiBwcm9taXNlCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODU6IGlu
IHByb21pc2UuY2F0Y2gKLUNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24g
YWxsIGV4Y2VwdGlvbnMuCi0KLVBBVVNFICMxIEFUOiBkb1Rocm93Ojg6MjIKLVBBVVNFICMyIEFU
OiBwcm9taXNlQ2F0Y2g6ODY6MTYKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4t
Y2F0Y2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNl
cHRpb24tdGhyb3ctaW4tcHJvbWlzZS1yZXRocm93LWluLWNhdGNoLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDZiMTkxNDcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXJldGhy
b3ctaW4tY2F0Y2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLTwhZG9jdHlw
ZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL3Jlc291
cmNlcy9icmVhay1vbi1leGNlcHRpb24tdGVzdHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1
bmN0aW9uIHRlc3QoKSB7Ci0gICAgZnVuY3Rpb24gZG9FeGNlcHRpb25UZXN0KHRlc3ROYW1lLCBl
eGNlcHRpb25CcmVha1R5cGUsIHJlc3VtZUFjdGlvbikKLSAgICB7Ci0gICAgICAgIHZhciBwYXVz
ZXMgPSAwOwotICAgICAgICB2YXIgaW5kZXggPSAwOwotCi0gICAgICAgIGZ1bmN0aW9uIHJ1blRl
c3RDYXNlKHRlc3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
InNldFRpbWVvdXQoIiArIHRlc3QgKyAiLCA1MCkiKTsKLSAgICAgICAgfQotCi0gICAgICAgIFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAg
ICAgICAgICAgdmFyIHNjcmlwdE9iamVjdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwotICAgICAgICAg
ICAgaWYgKCEvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzXC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0
LnVybCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAoZXhjZXB0
aW9uQnJlYWtUeXBlID09ICdBbGxFeGNlcHRpb25zJykKLSAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0g
ZmFsc2U7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTWFuYWdlci5hbGxVbmNhdWdodEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0g
ZmFsc2U7Ci0KLSAgICAgICAgICAgIHJ1blRlc3RDYXNlKHRlc3ROYW1lKTsKLSAgICAgICAgfSk7
Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwg
ZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZTsKLSAgICAgICAgICAgIGlmIChjYWxs
RnJhbWUpIHsKLSAgICAgICAgICAgICAgICAvLyBQYXVzaW5nLgotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucGF1c2VSZWFz
b24gPT0gImV4Y2VwdGlvbiIpOwotCi0gICAgICAgICAgICAgICAgdmFyIGZ1bmNOYW1lID0gY2Fs
bEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iOwotICAgICAgICAgICAgICAgIHZh
ciBsb2NhdGlvbiA9IGNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRpb247Ci0gICAgICAgICAgICAg
ICAgdmFyIGxpbmUgPSBsb2NhdGlvbi5saW5lTnVtYmVyICsgMTsKLSAgICAgICAgICAgICAgICB2
YXIgY29sdW1uID0gbG9jYXRpb24uY29sdW1uTnVtYmVyICsgMTsKLQotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJQQVVTRSAjIiArICgrK3BhdXNlcykgKyAiIEFUOiAiICsgZnVu
Y05hbWUgKyAiOiIgKyBsaW5lICsgIjoiICsgY29sdW1uKTsKLSAgICAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotCi0gICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIC8vIFJlc3VtaW5nLgotICAgICAgICAgICAgICAgIGlmIChyZXN1
bWVBY3Rpb24gPT0gJ0ZpbmlzaE9uUmVzdW1lJykKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0KLSAg
ICAgICAgLy8gVGhpcyBpcyBhIHNpZ25hbCBtZWNoYW5pc20gZm9yIHRoZSB3ZWIgcHJvY2VzcyB0
byB0ZWxsIHVzIHRoYXQgdGhlIHRlc3QgaXMgZG9uZS4KLSAgICAgICAgLy8gVGhlIHdlYiBwcm9j
ZXNzIGZpcmVzIHRoZSBzaWduYWwgYnkgZG9pbmcgY29uc29sZS5sb2coIkRPTkUiKS4KLSAgICAg
ICAgV2ViSW5zcGVjdG9yLmxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
TG9nTWFuYWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAg
ICAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGEubWVzc2FnZTsKLSAgICAgICAgICAgIGlmICgh
bWVzc2FnZS5wYXJhbWV0ZXJzIHx8IG1lc3NhZ2UucGFyYW1ldGVycy5sZW5ndGggIT09IDEpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKG1lc3NhZ2UucGFyYW1ldGVy
c1swXS50eXBlICE9PSAic3RyaW5nIiB8fCBtZXNzYWdlLnBhcmFtZXRlcnNbMF0uZGVzY3JpcHRp
b24gIT09ICJET05FIikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9KTsKLQotICAgICAgICBJbnNwZWN0
b3JUZXN0LnJlbG9hZFBhZ2UoKTsKLSAgICB9Ci0KLSAgICBkb0V4Y2VwdGlvblRlc3QoJ3Rlc3RU
aHJvd2luZ0luUHJvbWlzZVdpdGhSZXRocm93SW5DYXRjaCcsICdBbGxFeGNlcHRpb25zJywgJ0Zp
bmlzaE9uUmVzdW1lJyk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9u
IGFsbCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJv
bWlzZS10aGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9i
cmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDY3MGE0ZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21p
c2UtdGhlbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA1NTogdGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbgotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDU3OiBpbiBwcm9taXNlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6IGlu
IHByb21pc2UudGhlbgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJv
cgotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9u
cy4KLQotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Ut
dGhlbi13aXRoLWNhdGNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLXdpdGgtY2F0Y2gt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTc0MzFjLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRp
b24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLXdpdGgtY2F0Y2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY2OiB0ZXN0VGhy
b3dpbmdJblByb21pc2VUaGVuV2l0aENhdGNoCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjg6IGlu
IHByb21pc2UKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3MTogaW4gcHJvbWlzZS50aGVuCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgNzQ6IGluIHByb21pc2UuY2F0Y2gKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3NTogRE9O
RQotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9u
cy4KLQotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Ut
dGhlbi13aXRoLWNhdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlODk3YmIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9t
aXNlLXRoZW4td2l0aC1jYXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAot
PCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBmdW5jdGlvbiBkb0V4Y2VwdGlvblRlc3QodGVz
dE5hbWUsIGV4Y2VwdGlvbkJyZWFrVHlwZSwgcmVzdW1lQWN0aW9uKQotICAgIHsKLSAgICAgICAg
dmFyIHBhdXNlcyA9IDA7Ci0gICAgICAgIHZhciBpbmRleCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rp
b24gcnVuVGVzdENhc2UodGVzdCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZSgic2V0VGltZW91dCgiICsgdGVzdCArICIsIDUwKSIpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50
KSB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0g
ICAgICAgICAgICBpZiAoIS9icmVhay1vbi1leGNlcHRpb24tdGVzdHNcLmpzJC8udGVzdChzY3Jp
cHRPYmplY3QudXJsKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlm
IChleGNlcHRpb25CcmVha1R5cGUgPT0gJ0FsbEV4Y2VwdGlvbnMnKQotICAgICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlz
YWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlz
YWJsZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgcnVuVGVzdENhc2UodGVzdE5hbWUpOwotICAg
ICAgICB9KTsKLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlk
Q2hhbmdlLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotICAgICAgICAgICAg
aWYgKGNhbGxGcmFtZSkgewotICAgICAgICAgICAgICAgIC8vIFBhdXNpbmcuCi0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5w
YXVzZVJlYXNvbiA9PSAiZXhjZXB0aW9uIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgZnVuY05h
bWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiI7Ci0gICAgICAgICAg
ICAgICAgdmFyIGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICAg
ICAgICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOwotICAgICAgICAg
ICAgICAgIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAxOwotCi0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNFICMiICsgKCsrcGF1c2VzKSArICIgQVQ6
ICIgKyBmdW5jTmFtZSArICI6IiArIGxpbmUgKyAiOiIgKyBjb2x1bW4pOwotICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0KLSAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gUmVzdW1pbmcuCi0gICAgICAgICAgICAgICAg
aWYgKHJlc3VtZUFjdGlvbiA9PSAnRmluaXNoT25SZXN1bWUnKQotICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9
KTsKLQotICAgICAgICAvLyBUaGlzIGlzIGEgc2lnbmFsIG1lY2hhbmlzbSBmb3IgdGhlIHdlYiBw
cm9jZXNzIHRvIHRlbGwgdXMgdGhhdCB0aGUgdGVzdCBpcyBkb25lLgotICAgICAgICAvLyBUaGUg
d2ViIHByb2Nlc3MgZmlyZXMgdGhlIHNpZ25hbCBieSBkb2luZyBjb25zb2xlLmxvZygiRE9ORSIp
LgotICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsK
LSAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YS5tZXNzYWdlOwotICAgICAgICAg
ICAgaWYgKCFtZXNzYWdlLnBhcmFtZXRlcnMgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzLmxlbmd0aCAh
PT0gMSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAobWVzc2FnZS5w
YXJhbWV0ZXJzWzBdLnR5cGUgIT09ICJzdHJpbmciIHx8IG1lc3NhZ2UucGFyYW1ldGVyc1swXS5k
ZXNjcmlwdGlvbiAhPT0gIkRPTkUiKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAg
IEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOwotICAgIH0KLQotICAgIGRvRXhjZXB0aW9uVGVz
dCgndGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbldpdGhDYXRjaCcsICdBbGxFeGNlcHRpb25zJywg
J0lnbm9yZVJlc3VtZScpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBv
biBhbGwgZXhjZXB0aW9ucy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXBy
b21pc2UtdGhlbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9u
LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTFlZmIxMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2Vw
dGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAg
ICBmdW5jdGlvbiBkb0V4Y2VwdGlvblRlc3QodGVzdE5hbWUsIGV4Y2VwdGlvbkJyZWFrVHlwZSwg
cmVzdW1lQWN0aW9uKQotICAgIHsKLSAgICAgICAgdmFyIHBhdXNlcyA9IDA7Ci0gICAgICAgIHZh
ciBpbmRleCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuVGVzdENhc2UodGVzdCkgewotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCgiICsgdGVz
dCArICIsIDUwKSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZl
bnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0
T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0gICAgICAgICAgICBpZiAoIS9icmVhay1vbi1l
eGNlcHRpb24tdGVzdHNcLmpzJC8udGVzdChzY3JpcHRPYmplY3QudXJsKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChleGNlcHRpb25CcmVha1R5cGUgPT0gJ0Fs
bEV4Y2VwdGlvbnMnKQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFn
ZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVu
Y2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICAg
ICAgcnVuVGVzdENhc2UodGVzdE5hbWUpOwotICAgICAgICB9KTsKLQotICAgICAgICBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgewot
ICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIu
YWN0aXZlQ2FsbEZyYW1lOwotICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSkgewotICAgICAgICAg
ICAgICAgIC8vIFBhdXNpbmcuCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5wYXVzZVJlYXNvbiA9PSAiZXhjZXB0aW9uIik7
Ci0KLSAgICAgICAgICAgICAgICB2YXIgZnVuY05hbWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1l
IHx8ICI8YW5vbnltb3VzPiI7Ci0gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gY2FsbEZy
YW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAgICAgICAgICB2YXIgbGluZSA9IGxvY2F0
aW9uLmxpbmVOdW1iZXIgKyAxOwotICAgICAgICAgICAgICAgIHZhciBjb2x1bW4gPSBsb2NhdGlv
bi5jb2x1bW5OdW1iZXIgKyAxOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IlBBVVNFICMiICsgKCsrcGF1c2VzKSArICIgQVQ6ICIgKyBmdW5jTmFtZSArICI6IiArIGxpbmUg
KyAiOiIgKyBjb2x1bW4pOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1h
bmFnZXIucmVzdW1lKCk7Ci0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
Ly8gUmVzdW1pbmcuCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VtZUFjdGlvbiA9PSAnRmluaXNo
T25SZXN1bWUnKQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAgICAvLyBUaGlzIGlzIGEg
c2lnbmFsIG1lY2hhbmlzbSBmb3IgdGhlIHdlYiBwcm9jZXNzIHRvIHRlbGwgdXMgdGhhdCB0aGUg
dGVzdCBpcyBkb25lLgotICAgICAgICAvLyBUaGUgd2ViIHByb2Nlc3MgZmlyZXMgdGhlIHNpZ25h
bCBieSBkb2luZyBjb25zb2xlLmxvZygiRE9ORSIpLgotICAgICAgICBXZWJJbnNwZWN0b3IubG9n
TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50Lk1l
c3NhZ2VBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBtZXNzYWdlID0g
ZXZlbnQuZGF0YS5tZXNzYWdlOwotICAgICAgICAgICAgaWYgKCFtZXNzYWdlLnBhcmFtZXRlcnMg
fHwgbWVzc2FnZS5wYXJhbWV0ZXJzLmxlbmd0aCAhPT0gMSkKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICBpZiAobWVzc2FnZS5wYXJhbWV0ZXJzWzBdLnR5cGUgIT09ICJzdHJp
bmciIHx8IG1lc3NhZ2UucGFyYW1ldGVyc1swXS5kZXNjcmlwdGlvbiAhPT0gIkRPTkUiKQotICAg
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgp
OwotICAgIH0KLQotICAgIGRvRXhjZXB0aW9uVGVzdCgndGVzdFRocm93aW5nSW5Qcm9taXNlVGhl
bicsICdBbGxFeGNlcHRpb25zJywgJ0ZpbmlzaE9uUmVzdW1lJyk7Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBs
b2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIGFsbCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1v
bi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS13aXRoLWNhdGNoLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4t
cHJvbWlzZS13aXRoLWNhdGNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMWI3OGRhYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1jYXRjaC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA0NDogdGVzdFRocm93aW5nSW5Qcm9taXNlV2l0aENhdGNoCi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgNDY6IGluIHByb21pc2UKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0
RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0OTogaW4gcHJvbWlzZS5jYXRjaAotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDUwOiBET05FCi1DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBw
YXVzaW5nIG9uIGFsbCBleGNlcHRpb25zLgotCi1QQVVTRSAjMSBBVDogZG9UaHJvdzo4OjIyCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNl
cHRpb24tdGhyb3ctaW4tcHJvbWlzZS13aXRoLWNhdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1j
YXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzY4ZDc0Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24t
dGhyb3ctaW4tcHJvbWlzZS13aXRoLWNhdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiAr
MCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9u
VGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAgewot
ICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAg
ICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAgICAg
IH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rp
b24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNj
cmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50
ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtw
b2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtw
b2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFt
ZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxG
cmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2FsbEZy
YW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAg
ICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4KLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAgIHZh
ciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAg
ICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9u
OwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7Ci0g
ICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7Ci0K
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVzZXMp
ICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0gICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQotICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAgICAg
ICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0
aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAg
IC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9n
KCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihl
dmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0g
ICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMu
bGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmICht
ZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0
ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0K
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci0gICAgfQotCi0gICAgZG9FeGNl
cHRpb25UZXN0KCd0ZXN0VGhyb3dpbmdJblByb21pc2VXaXRoQ2F0Y2gnLCAnQWxsRXhjZXB0aW9u
cycsICdJZ25vcmVSZXN1bWUnKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgotICAgIDxwPkNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNp
bmcgb24gYWxsIGV4Y2VwdGlvbnMuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1p
bi1wcm9taXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
ZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UuaHRtbAppbmRleCAzNWE2ZmYyLi45NGE5ZDU4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0
aW9uLXRocm93LWluLXByb21pc2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UuaHRtbApAQCAtMSw3MiAr
MSwxMTEgQEAKLTwhZG9jdHlwZSBodG1sPgorPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFk
PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlv
bi10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0
TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2
YXIgcGF1c2VzID0gMDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlv
biBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQotICAg
ICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQp
IHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAg
ICAgICAgICAgIGlmICghL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlw
dE9iamVjdC51cmwpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYg
KGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAgICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNh
YmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNh
YmxlZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAg
ICAgIH0pOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRD
aGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBp
ZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBh
dXNlUmVhc29uID09ICJleGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAgIHZhciBmdW5jTmFt
ZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAg
ICAgICB2YXIgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAg
ICAgICAgICAgIHZhciBsaW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7Ci0gICAgICAgICAg
ICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDog
IiArIGZ1bmNOYW1lICsgIjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQotICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAgICAgICAgICAgICBp
ZiAocmVzdW1lQWN0aW9uID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CitUZXN0UGFnZS5hbGxvd1VuY2F1Z2h0RXhj
ZXB0aW9ucyA9IHRydWU7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsK
KworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQnJlYWtP
bkFueUV4Y2VwdGlvbi5Qcm9taXNlIik7CisKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisK
KyAgICBmdW5jdGlvbiBhZGRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb259
KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2Ny
aXB0aW9uLAorICAgICAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoZXhwcmVzc2lvbik7CisgICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50
KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09PSAiZXhjZXB0aW9uIiwgIlNo
b3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICBsZXQgY2Fs
bEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Cisg
ICAgICAgICAgICAgICAgICAgIGxldCBuYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAi
PGFub255bW91cz4iOworICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb24gPSBjYWxsRnJh
bWUuc291cmNlQ29kZUxvY2F0aW9uOworICAgICAgICAgICAgICAgICAgICBsZXQgbGluZSA9IGxv
Y2F0aW9uLmxpbmVOdW1iZXIgKyAxOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sdW1uID0g
bG9jYXRpb24uY29sdW1uTnVtYmVyICsgMTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coYFBBVVNFIEFUICR7bmFtZX06JHtsaW5lfToke2NvbHVtbn1gKTsKKyAgICAgICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKS50aGVuKHJl
c29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUg
d2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8v
IFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJE
T05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVu
dCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAg
ICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVu
Z3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmIChtZXNz
YWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJz
WzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7CiAgICAgfQogCi0gICAgZG9FeGNlcHRp
b25UZXN0KCd0ZXN0VGhyb3dpbmdJblByb21pc2UnLCAnQWxsRXhjZXB0aW9ucycsICdGaW5pc2hP
blJlc3VtZScpOworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25BbnlF
eGNlcHRpb24uUHJvbWlzZS5FeGNlcHRpb25JblByb21pc2VDb25zdHJ1Y3RvciIsCisgICAgICAg
IGRlc2NyaXB0aW9uOiAiQnJlYWsgb24gYW4gZXhjZXB0aW9uIHRocm93biBpbiBQcm9taXNlIGNv
bnN0cnVjdG9yLiIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RUaHJvd2lu
Z0luUHJvbWlzZSkiLAorICAgIH0pOworCisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1l
OiAiQnJlYWtPbkFueUV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZVRoZW5XaXRo
b3V0Q2F0Y2giLAorICAgICAgICBkZXNjcmlwdGlvbjogIkJyZWFrIG9uIGFuIGV4Y2VwdGlvbiB0
aHJvd24gaW4gUHJvbWlzZSB0aGVuIGhhbmRsZXIgd2l0aCBubyBjYXRjaCBoYW5kbGVyLiIsCisg
ICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RUaHJvd2luZ0luUHJvbWlzZVRoZW4p
IiwKKyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25B
bnlFeGNlcHRpb24uUHJvbWlzZS5FeGNlcHRpb25JblByb21pc2VUaGVuV2l0aENhdGNoIiwKKyAg
ICAgICAgZGVzY3JpcHRpb246ICJCcmVhayBvbiBhbiBleGNlcHRpb24gdGhyb3duIGluIFByb21p
c2UgdGhlbiBoYW5kbGVyIHdpdGggYSBjYXRjaCBoYW5kbGVyLiIsCisgICAgICAgIGV4cHJlc3Np
b246ICJzZXRUaW1lb3V0KHRlc3RUaHJvd2luZ0luUHJvbWlzZVRoZW5XaXRoQ2F0Y2gpIiwKKyAg
ICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25BbnlFeGNl
cHRpb24uUHJvbWlzZS5FeGNlcHRpb25JblByb21pc2VDYXRjaCIsCisgICAgICAgIGRlc2NyaXB0
aW9uOiAiQnJlYWsgb24gYW4gZXhjZXB0aW9uIHRocm93biBpbiBQcm9taXNlIGNhdGNoIHdpdGgg
bm8gdGhlbiBoYW5kbGVyLiIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RU
aHJvd2luZ0luUHJvbWlzZVdpdGhDYXRjaCkiLAorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVz
dENhc2UoeworICAgICAgICBuYW1lOiAiQnJlYWtPbkFueUV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2Vw
dGlvbkluUHJvbWlzZVRoZW5BbmRSZXRocm93bkluQ2F0Y2giLAorICAgICAgICBkZXNjcmlwdGlv
bjogIkJyZWFrIG9uIGFuIGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJvbWlzZSB0aGVuIGhhbmRsZXIs
IGFuZCB0aGVuIGFnYWluIHdoZW4gcmV0aHJvd24gaW4gY2F0Y2ggaGFuZGxlci4iLAorICAgICAg
ICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KHRlc3RUaHJvd2luZ0luUHJvbWlzZVdpdGhSZXRo
cm93SW5DYXRjaCkiKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gbG9nUGF1c2VMb2NhdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBsZXQgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7CisgICAgICAgICAgICAgICAgbGV0IG5hbWUgPSBjYWxs
RnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiI7CisgICAgICAgICAgICAgICAgbGV0
IGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKKyAgICAgICAgICAgICAg
ICBsZXQgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOworICAgICAgICAgICAgICAgIGxl
dCBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAxOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKGBQQVVTRSBBVCAke25hbWV9OiR7bGluZX06JHtjb2x1bW59YCk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxldCBwaGFzZSA9IDA7CisgICAgICAgICAgICBs
ZXQgbGlzdGVuZXIgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdl
LCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgICAgICBwaGFzZSsrOworCisgICAgICAgICAgICAgICAgLy8gUGF1c2UgYXQg
dGhyb3cgaW5zaWRlIHRoZW4uCisgICAgICAgICAgICAgICAgaWYgKHBoYXNlID09PSAxKSB7Cisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09PSAiZXhjZXB0aW9uIiwgIlNob3VsZCBwYXVz
ZSBmb3IgZXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICBsb2dQYXVzZUxvY2F0aW9u
KCk7CisgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVz
dW1lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICAvLyBQYXVzZSBhdCByZS10aHJvdyBpbnNpZGUgY2F0Y2guCisgICAg
ICAgICAgICAgICAgaWYgKHBoYXNlID09PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVh
c29uID09PSAiZXhjZXB0aW9uIiwgIlNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLiIpOworICAg
ICAgICAgICAgICAgICAgICBsb2dQYXVzZUxvY2F0aW9uKCk7CisgICAgICAgICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCkudGhlbigoKSA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlbW92ZUV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVz
RGlkQ2hhbmdlLCBsaXN0ZW5lcik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7
CisgICAgICAgICAgICAgICAgICAgIH0sIHJlamVjdCk7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAg
IH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CiB9CiA8L3NjcmlwdD4K
IDwvaGVhZD4KIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVz
ZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIGFsbCBleGNlcHRpb25zLjwvcD4KKzxwPkNoZWNr
aW5nIHBhdXNlIGxvY2F0aW9ucyB3aXRoaW4gUHJvbWlzZXMgd2hlbiBwYXVzaW5nIG9uIGFsbCBl
eGNlcHRpb25zLjwvcD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24td2luZG93LW9uZXJyb3ItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2Vw
dGlvbi13aW5kb3ctb25lcnJvci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQ0YmU2MTkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi13aW5kb3ctb25lcnJvci1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2lu
ZyBUZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA4OiB3aW5kb3cub25lcnJvcjogVGVz
dEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgOTogRE9ORQotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDg6IFRlc3RFcnJvcgotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBv
biBhbGwgZXhjZXB0aW9ucy4KLQotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXdp
bmRvdy1vbmVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGJkMTM3N2UuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi13aW5kb3ctb25lcnJvci5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNzcgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgotd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Ci0g
ICAgY29uc29sZS5sb2coIndpbmRvdy5vbmVycm9yOiAiICsgZSk7Ci0gICAgY29uc29sZS5sb2co
IkRPTkUiKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBmdW5jdGlvbiBkb0V4Y2VwdGlv
blRlc3QodGVzdE5hbWUsIGV4Y2VwdGlvbkJyZWFrVHlwZSwgcmVzdW1lQWN0aW9uKQotICAgIHsK
LSAgICAgICAgdmFyIHBhdXNlcyA9IDA7Ci0gICAgICAgIHZhciBpbmRleCA9IDA7Ci0KLSAgICAg
ICAgZnVuY3Rpb24gcnVuVGVzdENhc2UodGVzdCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCgiICsgdGVzdCArICIsIDUwKSIpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0
aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5z
Y3JpcHQ7Ci0gICAgICAgICAgICBpZiAoIS9icmVhay1vbi1leGNlcHRpb24tdGVzdHNcLmpzJC8u
dGVzdChzY3JpcHRPYmplY3QudXJsKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgICAgIGlmIChleGNlcHRpb25CcmVha1R5cGUgPT0gJ0FsbEV4Y2VwdGlvbnMnKQotICAgICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFr
cG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFr
cG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgcnVuVGVzdENhc2UodGVzdE5h
bWUpOwotICAgICAgICB9KTsKLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2Vy
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxs
RnJhbWVzRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGNhbGxG
cmFtZSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotICAg
ICAgICAgICAgaWYgKGNhbGxGcmFtZSkgewotICAgICAgICAgICAgICAgIC8vIFBhdXNpbmcuCi0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TWFuYWdlci5wYXVzZVJlYXNvbiA9PSAiZXhjZXB0aW9uIik7Ci0KLSAgICAgICAgICAgICAgICB2
YXIgZnVuY05hbWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiI7Ci0g
ICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlv
bjsKLSAgICAgICAgICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOwot
ICAgICAgICAgICAgICAgIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAxOwot
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNFICMiICsgKCsrcGF1c2Vz
KSArICIgQVQ6ICIgKyBmdW5jTmFtZSArICI6IiArIGxpbmUgKyAiOiIgKyBjb2x1bW4pOwotICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0KLSAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gUmVzdW1pbmcuCi0gICAgICAg
ICAgICAgICAgaWYgKHJlc3VtZUFjdGlvbiA9PSAnRmluaXNoT25SZXN1bWUnKQotICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9KTsKLQotICAgICAgICAvLyBUaGlzIGlzIGEgc2lnbmFsIG1lY2hhbmlzbSBmb3Ig
dGhlIHdlYiBwcm9jZXNzIHRvIHRlbGwgdXMgdGhhdCB0aGUgdGVzdCBpcyBkb25lLgotICAgICAg
ICAvLyBUaGUgd2ViIHByb2Nlc3MgZmlyZXMgdGhlIHNpZ25hbCBieSBkb2luZyBjb25zb2xlLmxv
ZygiRE9ORSIpLgotICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgZnVuY3Rpb24o
ZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YS5tZXNzYWdlOwot
ICAgICAgICAgICAgaWYgKCFtZXNzYWdlLnBhcmFtZXRlcnMgfHwgbWVzc2FnZS5wYXJhbWV0ZXJz
Lmxlbmd0aCAhPT0gMSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAo
bWVzc2FnZS5wYXJhbWV0ZXJzWzBdLnR5cGUgIT09ICJzdHJpbmciIHx8IG1lc3NhZ2UucGFyYW1l
dGVyc1swXS5kZXNjcmlwdGlvbiAhPT0gIkRPTkUiKQotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0pOwot
Ci0gICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOwotICAgIH0KLQotICAgIGRvRXhj
ZXB0aW9uVGVzdCgnZG9UaHJvdycsICdBbGxFeGNlcHRpb25zJywgJ0lnbm9yZVJlc3VtZScpOwot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+
Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy48
L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLmh0bWwKaW5kZXggMDJkZWI4Mi4uY2I2ZDYwYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2Vw
dGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1l
eGNlcHRpb24uaHRtbApAQCAtMSw3MiArMSw2NSBAQAotPCFkb2N0eXBlIGh0bWw+Cis8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNv
dXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9icmVhay1vbi1leGNlcHRpb24tdGVz
dHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgZnVuY3Rp
b24gZG9FeGNlcHRpb25UZXN0KHRlc3ROYW1lLCBleGNlcHRpb25CcmVha1R5cGUsIHJlc3VtZUFj
dGlvbikKLSAgICB7Ci0gICAgICAgIHZhciBwYXVzZXMgPSAwOwotICAgICAgICB2YXIgaW5kZXgg
PSAwOwotCi0gICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RDYXNlKHRlc3QpIHsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldFRpbWVvdXQoIiArIHRlc3QgKyAiLCA1
MCkiKTsKLSAgICAgICAgfQotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlw
dEFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIHNjcmlwdE9iamVjdCA9
IGV2ZW50LmRhdGEuc2NyaXB0OwotICAgICAgICAgICAgaWYgKCEvYnJlYWstb24tZXhjZXB0aW9u
LXRlc3RzXC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgICAgICBpZiAoZXhjZXB0aW9uQnJlYWtUeXBlID09ICdBbGxFeGNlcHRp
b25zJykKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbEV4
Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxVbmNhdWdodEV4
Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIHJ1blRl
c3RDYXNlKHRlc3ROYW1lKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFn
ZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAg
ICAgIHZhciBjYWxsRnJhbWUgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNh
bGxGcmFtZTsKLSAgICAgICAgICAgIGlmIChjYWxsRnJhbWUpIHsKLSAgICAgICAgICAgICAgICAv
LyBQYXVzaW5nLgotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1hbmFnZXIucGF1c2VSZWFzb24gPT0gImV4Y2VwdGlvbiIpOwotCi0gICAg
ICAgICAgICAgICAgdmFyIGZ1bmNOYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFu
b255bW91cz4iOwotICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IGNhbGxGcmFtZS5zb3Vy
Y2VDb2RlTG9jYXRpb247Ci0gICAgICAgICAgICAgICAgdmFyIGxpbmUgPSBsb2NhdGlvbi5saW5l
TnVtYmVyICsgMTsKLSAgICAgICAgICAgICAgICB2YXIgY29sdW1uID0gbG9jYXRpb24uY29sdW1u
TnVtYmVyICsgMTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRSAj
IiArICgrK3BhdXNlcykgKyAiIEFUOiAiICsgZnVuY05hbWUgKyAiOiIgKyBsaW5lICsgIjoiICsg
Y29sdW1uKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJl
c3VtZSgpOwotCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIFJlc3Vt
aW5nLgotICAgICAgICAgICAgICAgIGlmIChyZXN1bWVBY3Rpb24gPT0gJ0ZpbmlzaE9uUmVzdW1l
JykKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKK1Rl
c3RQYWdlLmFsbG93VW5jYXVnaHRFeGNlcHRpb25zID0gdHJ1ZTsKKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtw
b2ludC5kaXNhYmxlZCA9IGZhbHNlOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5j
cmVhdGVBc3luY1N1aXRlKCJCcmVha09uQW55RXhjZXB0aW9uIik7CisKKyAgICBmdW5jdGlvbiBh
ZGRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb259KSB7CisgICAgICAgIHN1
aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAg
ICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoZXhwcmVzc2lvbik7CisgICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50KSA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09PSAiZXhjZXB0aW9uIiwgIlNob3VsZCBwYXVzZSBmb3Ig
ZXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICBsZXQgY2FsbEZyYW1lID0gV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7CisgICAgICAgICAgICAgICAg
ICAgIGxldCBuYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iOwor
ICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxv
Y2F0aW9uOworICAgICAgICAgICAgICAgICAgICBsZXQgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1i
ZXIgKyAxOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sdW1uID0gbG9jYXRpb24uY29sdW1u
TnVtYmVyICsgMTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYFBBVVNF
IEFUICR7bmFtZX06JHtsaW5lfToke2NvbHVtbn1gKTsKKyAgICAgICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKS50aGVuKHJlc29sdmUsIHJlamVjdCk7
CisgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwotCi0gICAg
ICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8g
dGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2Vz
cyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAg
IFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxv
Z01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAg
ICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1l
c3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAg
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNb
MF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9u
ICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5yZWxvYWRQYWdlKCk7CiAgICAgfQogCi0gICAgZG9FeGNlcHRpb25UZXN0KCdkb1Rocm93
JywgJ0FsbEV4Y2VwdGlvbnMnLCAnSWdub3JlUmVzdW1lJyk7CisgICAgYWRkVGVzdENhc2Uoewor
ICAgICAgICBuYW1lOiAiQnJlYWtPbkFueUV4Y2VwdGlvbi5VbmNhdWdodEV4Y2VwdGlvbkJhc2lj
IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJCcmVhayBvbiBhbiB1bmNhdWdodCBleGNlcHRpb24g
dGhyb3duIGluIGEgZnVuY3Rpb24uIiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQo
ZG9UaHJvdykiLAorICAgIH0pOworCisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
QnJlYWtPbkFueUV4Y2VwdGlvbi5VbmNhdWdodEV4Y2VwdGlvbkluRmluYWxseSIsCisgICAgICAg
IGRlc2NyaXB0aW9uOiAiQnJlYWsgb24gYW4gdW5jYXVnaHQgZXhjZXB0aW9uIHRocm93biBpbiBh
IGZpbmFsbHkgYmxvY2suIiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVzdEZp
bmFsbHkpIiwKKyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJy
ZWFrT25BbnlFeGNlcHRpb24uVW5jYXVnaHRFeGNlcHRpb25UaHJ1TmF0aXZlQ29kZSIsCisgICAg
ICAgIGRlc2NyaXB0aW9uOiAiQnJlYWsgb24gYW4gdW5jYXVnaHQgZXhjZXB0aW9uIHRocm93biB0
aHJ1IG5hdGl2ZSBjb2RlIChNYXAucHJvdG90eXBlLmZvckVhY2gpLiIsCisgICAgICAgIGV4cHJl
c3Npb246ICJzZXRUaW1lb3V0KHRlc3RUaHJvd2luZ1RocnVOYXRpdmVDb2RlKSIsCisgICAgfSk7
CisKKyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJCcmVha09uQW55RXhjZXB0aW9u
LkNhdWdodEV4Y2VwdGlvbiIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQnJlYWsgb24gYSBjYXVn
aHQgZXhjZXB0aW9uLiIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RDYXRj
aCkiLAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CiB9CiA8
L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVj
a2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIGFsbCBleGNlcHRpb25zLjwvcD4K
KzxwPkNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gYWxsIGV4Y2VwdGlv
bnMuPC9wPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1jYXRjaC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhj
ZXB0aW9uLWNhdGNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MGNiZWFlNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWNhdGNoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiB0ZXN0Q2F0Y2gKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAxNjogY2F0Y2ggVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IERP
TkUKLUNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhj
ZXB0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVh
ay1vbi11bmNhdWdodC1leGNlcHRpb24tY2F0Y2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tY2F0Y2guaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTdmMzIyNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWNhdGNoLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWstb24t
ZXhjZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkg
ewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtU
eXBlLCByZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAg
ICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIg
KyB0ZXN0ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVi
dWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdl
ci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBz
Y3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFr
LW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9
PSAnQWxsRXhjZXB0aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIu
YWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAg
ICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50
KSB7Ci0gICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFu
YWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAg
ICAgICAgICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRp
b24iKTsKLQotICAgICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlv
bk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBj
YWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0g
bG9jYXRpb24ubGluZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxv
Y2F0aW9uLmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiUEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsg
bGluZSArICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTWFuYWdlci5yZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAvLyBSZXN1bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdG
aW5pc2hPblJlc3VtZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMg
aXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0
IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUg
c2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rv
ci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZl
bnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3Nh
Z2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1l
dGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0g
InN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQ
YWdlKCk7Ci0gICAgfQotCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0Q2F0Y2gnLCAnVW5jYXVn
aHRFeGNlcHRpb25zJywgJ0lnbm9yZVJlc3VtZScpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25z
IHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11
bmNhdWdodC1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKaW5kZXggMzFk
Y2EyOC4uYWMyYWU5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1leHBlY3Rl
ZC50eHQKQEAgLTEsNyArMSwzNSBAQAogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5n
IFRlc3RFcnJvcgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6IFRlc3RFcnJvcgorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDIyOiB0ZXN0RmluYWxseQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRo
cm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI2OiBmaW5hbGx5CitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgODogVGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzE6
IHRlc3RUaHJvd2luZ1RocnVOYXRpdmVDb2RlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhy
b3dpbmcgVGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODogVGVzdEVycm9yCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTI6IHRlc3RDYXRjaAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6
IHRocm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE2OiBjYXRjaCBUZXN0
RXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxODogRE9ORQogQ2hlY2tpbmcgcGF1c2UgbG9j
YXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLgogCi1QQVVTRSAjMSBB
VDogZG9UaHJvdzo4OjIyCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQnJlYWtPblVuY2F1Z2h0
RXhjZXB0aW9uCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9u
LlVuY2F1Z2h0RXhjZXB0aW9uQmFzaWMKK1BBU1M6IFNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9u
LgorUEFVU0UgQVQgZG9UaHJvdzo4OjIyCitVbmNhdWdodCBleGNlcHRpb24gaW4gdGVzdCBwYWdl
OiBUZXN0RXJyb3IgW2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qczo4XQorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogQnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9uLlVuY2F1Z2h0RXhjZXB0aW9uSW5G
aW5hbGx5CitQQVNTOiBTaG91bGQgcGF1c2UgZm9yIGV4Y2VwdGlvbi4KK1BBVVNFIEFUIGRvVGhy
b3c6ODoyMgogVW5jYXVnaHQgZXhjZXB0aW9uIGluIHRlc3QgcGFnZTogVGVzdEVycm9yIFticmVh
ay1vbi1leGNlcHRpb24tdGVzdHMuanM6OF0KIAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEJyZWFr
T25VbmNhdWdodEV4Y2VwdGlvbi5VbmNhdWdodEV4Y2VwdGlvblRocnVOYXRpdmVDb2RlCitQQVNT
OiBTaG91bGQgcGF1c2UgZm9yIGV4Y2VwdGlvbi4KK1BBVVNFIEFUIGRvVGhyb3c6ODoyMgorVW5j
YXVnaHQgZXhjZXB0aW9uIGluIHRlc3QgcGFnZTogVGVzdEVycm9yIFticmVhay1vbi1leGNlcHRp
b24tdGVzdHMuanM6OF0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEJyZWFrT25VbmNhdWdodEV4
Y2VwdGlvbi5DYXVnaHRFeGNlcHRpb24KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UsIGV4Y2VwdGlv
biB3YXMgY2F1Z2h0LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWZpbmFsbHktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1m
aW5hbGx5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjViZDFh
YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
dW5jYXVnaHQtZXhjZXB0aW9uLWZpbmFsbHktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjI6IHRlc3RGaW5hbGx5Ci1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMjY6IGZpbmFsbHkKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA4OiBUZXN0RXJyb3IKLUNo
ZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0aW9u
cy4KLQotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgotVW5jYXVnaHQgZXhjZXB0aW9uIGluIHRl
c3QgcGFnZTogVGVzdEVycm9yIFticmVhay1vbi1leGNlcHRpb24tdGVzdHMuanM6OF0KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0
LWV4Y2VwdGlvbi1maW5hbGx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
YnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWZpbmFsbHkuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjBiMzkzMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWZpbmFsbHkuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL3Jlc291cmNlcy9icmVhay1vbi1leGNlcHRp
b24tdGVzdHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAg
ZnVuY3Rpb24gZG9FeGNlcHRpb25UZXN0KHRlc3ROYW1lLCBleGNlcHRpb25CcmVha1R5cGUsIHJl
c3VtZUFjdGlvbikKLSAgICB7Ci0gICAgICAgIHZhciBwYXVzZXMgPSAwOwotICAgICAgICB2YXIg
aW5kZXggPSAwOwotCi0gICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RDYXNlKHRlc3QpIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldFRpbWVvdXQoIiArIHRlc3Qg
KyAiLCA1MCkiKTsKLSAgICAgICAgfQotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1h
bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50
LlNjcmlwdEFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIHNjcmlwdE9i
amVjdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwotICAgICAgICAgICAgaWYgKCEvYnJlYWstb24tZXhj
ZXB0aW9uLXRlc3RzXC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAoZXhjZXB0aW9uQnJlYWtUeXBlID09ICdBbGxF
eGNlcHRpb25zJykKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2Vy
LmFsbEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxVbmNh
dWdodEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAg
IHJ1blRlc3RDYXNlKHRlc3ROYW1lKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1hbmFnZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAg
ICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFj
dGl2ZUNhbGxGcmFtZTsKLSAgICAgICAgICAgIGlmIChjYWxsRnJhbWUpIHsKLSAgICAgICAgICAg
ICAgICAvLyBQYXVzaW5nLgotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucGF1c2VSZWFzb24gPT0gImV4Y2VwdGlvbiIpOwot
Ci0gICAgICAgICAgICAgICAgdmFyIGZ1bmNOYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8
fCAiPGFub255bW91cz4iOwotICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IGNhbGxGcmFt
ZS5zb3VyY2VDb2RlTG9jYXRpb247Ci0gICAgICAgICAgICAgICAgdmFyIGxpbmUgPSBsb2NhdGlv
bi5saW5lTnVtYmVyICsgMTsKLSAgICAgICAgICAgICAgICB2YXIgY29sdW1uID0gbG9jYXRpb24u
Y29sdW1uTnVtYmVyICsgMTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQ
QVVTRSAjIiArICgrK3BhdXNlcykgKyAiIEFUOiAiICsgZnVuY05hbWUgKyAiOiIgKyBsaW5lICsg
IjoiICsgY29sdW1uKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5h
Z2VyLnJlc3VtZSgpOwotCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8v
IFJlc3VtaW5nLgotICAgICAgICAgICAgICAgIGlmIChyZXN1bWVBY3Rpb24gPT0gJ0ZpbmlzaE9u
UmVzdW1lJykKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gVGhpcyBpcyBhIHNp
Z25hbCBtZWNoYW5pc20gZm9yIHRoZSB3ZWIgcHJvY2VzcyB0byB0ZWxsIHVzIHRoYXQgdGhlIHRl
c3QgaXMgZG9uZS4KLSAgICAgICAgLy8gVGhlIHdlYiBwcm9jZXNzIGZpcmVzIHRoZSBzaWduYWwg
YnkgZG9pbmcgY29uc29sZS5sb2coIkRPTkUiKS4KLSAgICAgICAgV2ViSW5zcGVjdG9yLmxvZ01h
bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5NZXNz
YWdlQWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGV2
ZW50LmRhdGEubWVzc2FnZTsKLSAgICAgICAgICAgIGlmICghbWVzc2FnZS5wYXJhbWV0ZXJzIHx8
IG1lc3NhZ2UucGFyYW1ldGVycy5sZW5ndGggIT09IDEpCi0gICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgaWYgKG1lc3NhZ2UucGFyYW1ldGVyc1swXS50eXBlICE9PSAic3RyaW5n
IiB8fCBtZXNzYWdlLnBhcmFtZXRlcnNbMF0uZGVzY3JpcHRpb24gIT09ICJET05FIikKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgICAgICB9KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoKTsK
LSAgICB9Ci0KLSAgICBkb0V4Y2VwdGlvblRlc3QoJ3Rlc3RGaW5hbGx5JywgJ1VuY2F1Z2h0RXhj
ZXB0aW9ucycsICdJZ25vcmVSZXN1bWUnKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxwPkNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVu
IHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0aW9ucy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVn
aHQtZXhjZXB0aW9uLW5hdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLW5hdGl2ZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1MWNjYzguLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1u
YXRpdmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMzE6IHRlc3RUaHJvd2luZ1RocnVOYXRpdmVDb2RlCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
ODogVGVzdEVycm9yCi1DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIHVu
Y2F1Z2h0IGV4Y2VwdGlvbnMuCi0KLVBBVVNFICMxIEFUOiBkb1Rocm93Ojg6MjIKLVVuY2F1Z2h0
IGV4Y2VwdGlvbiBpbiB0ZXN0IHBhZ2U6IFRlc3RFcnJvciBbYnJlYWstb24tZXhjZXB0aW9uLXRl
c3RzLmpzOjhdCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9i
cmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tbmF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLW5hdGl2ZS5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzk5ZWQwLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tbmF0
aXZlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJl
YWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0
ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9u
QnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1c2VzID0gMDsK
LSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0
ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1l
b3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
TWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAg
IHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAgICAgIGlmICgh
L2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFr
VHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1h
bmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwot
Ci0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAg
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9u
KGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2FsbEZyYW1lKSB7
Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09ICJl
eGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5m
dW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2YXIgbG9jYXRp
b24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAgICAgIHZhciBs
aW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbHVt
biA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1bmNOYW1lICsg
IjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVzdW1lQWN0aW9u
ID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8v
IFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1
cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJl
cyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdlYklu
c3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFn
ZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFy
IG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2Uu
cGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlw
ZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAi
RE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5y
ZWxvYWRQYWdlKCk7Ci0gICAgfQotCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0VGhyb3dpbmdU
aHJ1TmF0aXZlQ29kZScsICdVbmNhdWdodEV4Y2VwdGlvbnMnLCAnSWdub3JlUmVzdW1lJyk7Ci19
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5D
aGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIHVuY2F1Z2h0IGV4Y2VwdGlv
bnMuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11
bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS1leHBlY3RlZC50eHQKaW5kZXggYzY5
NzkwMS4uMTliY2Y2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQt
ZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNDEgQEAK
IENPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogdGVzdFRocm93aW5nSW5Qcm9taXNlCiBDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMzg6IGluIHByb21pc2UKIENPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0
aHJvd2luZyBUZXN0RXJyb3IKLUNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcg
b24gdW5jYXVnaHQgZXhjZXB0aW9ucy4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogdGVzdFRo
cm93aW5nSW5Qcm9taXNlVGhlbgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU3OiBpbiBwcm9taXNl
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6IGluIHByb21pc2UudGhlbgorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY2
OiB0ZXN0VGhyb3dpbmdJblByb21pc2VUaGVuV2l0aENhdGNoCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgNjg6IGluIHByb21pc2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3MTogaW4gcHJvbWlzZS50
aGVuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgNzQ6IGluIHByb21pc2UuY2F0Y2gKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSA3NTogRE9ORQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ0OiB0ZXN0VGhyb3dpbmdJblByb21p
c2VXaXRoQ2F0Y2gKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0NjogaW4gcHJvbWlzZQorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDQ5OiBpbiBwcm9taXNlLmNhdGNoCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTA6IERPTkUK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA4MDogdGVzdFRocm93aW5nSW5Qcm9taXNlV2l0aFJldGhy
b3dJbkNhdGNoCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODI6IGluIHByb21pc2UKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSA4NTogaW4gcHJvbWlzZS5jYXRjaAorQ2hlY2tpbmcgbm8gcGF1c2VzIHdpdGhpbiBQcm9taXNl
cyB3aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0aW9ucy4KIAotUEFVU0UgIzEgQVQ6IGRv
VGhyb3c6ODoyMgorCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEJyZWFrT25VbmNhdWdodEV4Y2Vw
dGlvbi5Qcm9taXNlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQnJlYWtPblVuY2F1Z2h0RXhjZXB0
aW9uLlByb21pc2UuRXhjZXB0aW9uSW5Qcm9taXNlQ29uc3RydWN0b3IKK1BBU1M6IFNob3VsZCBu
b3QgcGF1c2UsIGV4Y2VwdGlvbiBpcyAnY2F1Z2h0JyBieSBQcm9taXNlLgorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogQnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9uLlByb21pc2UuRXhjZXB0aW9uSW5Q
cm9taXNlVGhlbldpdGhvdXRDYXRjaAorUEFTUzogU2hvdWxkIG5vdCBwYXVzZSwgZXhjZXB0aW9u
IGlzICdjYXVnaHQnIGJ5IFByb21pc2UuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBCcmVha09u
VW5jYXVnaHRFeGNlcHRpb24uUHJvbWlzZS5FeGNlcHRpb25JblByb21pc2VUaGVuV2l0aENhdGNo
CitQQVNTOiBTaG91bGQgbm90IHBhdXNlLCBleGNlcHRpb24gaXMgJ2NhdWdodCcgYnkgUHJvbWlz
ZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5Qcm9t
aXNlLkV4Y2VwdGlvbkluUHJvbWlzZUNhdGNoCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLCBleGNl
cHRpb24gaXMgJ2NhdWdodCcgYnkgUHJvbWlzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEJy
ZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZVRoZW5BbmRS
ZXRocm93bkluQ2F0Y2gKK1BBU1M6IFNob3VsZCBub3QgcGF1c2UsIGV4Y2VwdGlvbiBpcyAnY2F1
Z2h0JyBieSBQcm9taXNlLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJv
dy1pbi1jYXRjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
YnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJvdy1pbi1j
YXRjaC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwNjhhOWEu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVu
Y2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0Y2gtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgODA6IHRlc3RUaHJvd2luZ0luUHJvbWlzZVdpdGhSZXRocm93SW5DYXRjaAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDgyOiBpbiBwcm9taXNlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhy
b3dpbmcgVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODU6IGluIHByb21pc2UuY2F0
Y2gKLUNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhj
ZXB0aW9ucy4KLQotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgotUEFVU0UgIzIgQVQ6IHByb21p
c2VDYXRjaDo4NjoxNgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJvdy1p
bi1jYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVu
Y2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0Y2guaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE2ZTc4Mi4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRo
cm93LWluLXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NzIgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBmdW5jdGlvbiBkb0V4Y2Vw
dGlvblRlc3QodGVzdE5hbWUsIGV4Y2VwdGlvbkJyZWFrVHlwZSwgcmVzdW1lQWN0aW9uKQotICAg
IHsKLSAgICAgICAgdmFyIHBhdXNlcyA9IDA7Ci0gICAgICAgIHZhciBpbmRleCA9IDA7Ci0KLSAg
ICAgICAgZnVuY3Rpb24gcnVuVGVzdENhc2UodGVzdCkgewotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCgiICsgdGVzdCArICIsIDUwKSIpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1
bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0
YS5zY3JpcHQ7Ci0gICAgICAgICAgICBpZiAoIS9icmVhay1vbi1leGNlcHRpb24tdGVzdHNcLmpz
JC8udGVzdChzY3JpcHRPYmplY3QudXJsKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgICAgIGlmIChleGNlcHRpb25CcmVha1R5cGUgPT0gJ0FsbEV4Y2VwdGlvbnMnKQotICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0Jy
ZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0Jy
ZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgcnVuVGVzdENhc2UodGVz
dE5hbWUpOwotICAgICAgICB9KTsKLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5h
Z2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5D
YWxsRnJhbWVzRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGNh
bGxGcmFtZSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwot
ICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSkgewotICAgICAgICAgICAgICAgIC8vIFBhdXNpbmcu
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTWFuYWdlci5wYXVzZVJlYXNvbiA9PSAiZXhjZXB0aW9uIik7Ci0KLSAgICAgICAgICAgICAg
ICB2YXIgZnVuY05hbWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiI7
Ci0gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2Nh
dGlvbjsKLSAgICAgICAgICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAx
OwotICAgICAgICAgICAgICAgIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAx
OwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNFICMiICsgKCsrcGF1
c2VzKSArICIgQVQ6ICIgKyBmdW5jTmFtZSArICI6IiArIGxpbmUgKyAiOiIgKyBjb2x1bW4pOwot
ICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0K
LSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gUmVzdW1pbmcuCi0gICAg
ICAgICAgICAgICAgaWYgKHJlc3VtZUFjdGlvbiA9PSAnRmluaXNoT25SZXN1bWUnKQotICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAg
fQotICAgICAgICB9KTsKLQotICAgICAgICAvLyBUaGlzIGlzIGEgc2lnbmFsIG1lY2hhbmlzbSBm
b3IgdGhlIHdlYiBwcm9jZXNzIHRvIHRlbGwgdXMgdGhhdCB0aGUgdGVzdCBpcyBkb25lLgotICAg
ICAgICAvLyBUaGUgd2ViIHByb2Nlc3MgZmlyZXMgdGhlIHNpZ25hbCBieSBkb2luZyBjb25zb2xl
LmxvZygiRE9ORSIpLgotICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgZnVuY3Rp
b24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YS5tZXNzYWdl
OwotICAgICAgICAgICAgaWYgKCFtZXNzYWdlLnBhcmFtZXRlcnMgfHwgbWVzc2FnZS5wYXJhbWV0
ZXJzLmxlbmd0aCAhPT0gMSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBp
ZiAobWVzc2FnZS5wYXJhbWV0ZXJzWzBdLnR5cGUgIT09ICJzdHJpbmciIHx8IG1lc3NhZ2UucGFy
YW1ldGVyc1swXS5kZXNjcmlwdGlvbiAhPT0gIkRPTkUiKQotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0p
OwotCi0gICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOwotICAgIH0KLQotICAgIGRv
RXhjZXB0aW9uVGVzdCgndGVzdFRocm93aW5nSW5Qcm9taXNlV2l0aFJldGhyb3dJbkNhdGNoJywg
J1VuY2F1Z2h0RXhjZXB0aW9ucycsICdGaW5pc2hPblJlc3VtZScpOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2Ug
bG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLjwvcD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9i
cmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1l
eGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZGJiNDYxZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21p
c2UtdGhlbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA1NTogdGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbgotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDU3OiBpbiBwcm9taXNlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6IGlu
IHByb21pc2UudGhlbgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJv
cgotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBleGNl
cHRpb25zLgotCi1QQVVTRSAjMSBBVDogZG9UaHJvdzo4OjIyCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhy
b3ctaW4tcHJvbWlzZS10aGVuLXdpdGgtY2F0Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1w
cm9taXNlLXRoZW4td2l0aC1jYXRjaC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGU5OTUwNWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4t
d2l0aC1jYXRjaC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgNjY6IHRlc3RUaHJvd2luZ0luUHJvbWlzZVRoZW5XaXRoQ2F0
Y2gKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA2ODogaW4gcHJvbWlzZQotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDcxOiBpbiBwcm9taXNlLnRoZW4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJv
d2luZyBUZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3NDogaW4gcHJvbWlzZS5jYXRj
aAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc1OiBET05FCi1DaGVja2luZyBwYXVzZSBsb2NhdGlv
bnMgd2hlbiBwYXVzaW5nIG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbnMuCi0KLVBBVVNFICMxIEFUOiBk
b1Rocm93Ojg6MjIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4td2l0aC1j
YXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1
Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4td2l0aC1jYXRjaC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDExODI1My4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93
LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiAr
MCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9u
VGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAgewot
ICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAg
ICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAgICAg
IH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rp
b24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNj
cmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50
ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtw
b2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtw
b2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFt
ZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxG
cmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2FsbEZy
YW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAg
ICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4KLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAgIHZh
ciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAg
ICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9u
OwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7Ci0g
ICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7Ci0K
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVzZXMp
ICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0gICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQotICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAgICAg
ICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0
aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAg
IC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9n
KCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihl
dmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0g
ICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMu
bGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmICht
ZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0
ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0K
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci0gICAgfQotCi0gICAgZG9FeGNl
cHRpb25UZXN0KCd0ZXN0VGhyb3dpbmdJblByb21pc2VUaGVuV2l0aENhdGNoJywgJ1VuY2F1Z2h0
RXhjZXB0aW9ucycsICdJZ25vcmVSZXN1bWUnKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxwPkNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3
aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0aW9ucy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5j
YXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1w
cm9taXNlLXRoZW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGUwNzY2Zi4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5j
YXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNzIgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBmdW5jdGlvbiBk
b0V4Y2VwdGlvblRlc3QodGVzdE5hbWUsIGV4Y2VwdGlvbkJyZWFrVHlwZSwgcmVzdW1lQWN0aW9u
KQotICAgIHsKLSAgICAgICAgdmFyIHBhdXNlcyA9IDA7Ci0gICAgICAgIHZhciBpbmRleCA9IDA7
Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuVGVzdENhc2UodGVzdCkgewotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCgiICsgdGVzdCArICIsIDUwKSIp
OwotICAgICAgICB9Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRk
ZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZl
bnQuZGF0YS5zY3JpcHQ7Ci0gICAgICAgICAgICBpZiAoIS9icmVhay1vbi1leGNlcHRpb24tdGVz
dHNcLmpzJC8udGVzdChzY3JpcHRPYmplY3QudXJsKSkKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgICAgIGlmIChleGNlcHRpb25CcmVha1R5cGUgPT0gJ0FsbEV4Y2VwdGlvbnMn
KQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0
aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0
aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgcnVuVGVzdENh
c2UodGVzdE5hbWUpOwotICAgICAgICB9KTsKLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5F
dmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAg
dmFyIGNhbGxGcmFtZSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZy
YW1lOwotICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSkgewotICAgICAgICAgICAgICAgIC8vIFBh
dXNpbmcuCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTWFuYWdlci5wYXVzZVJlYXNvbiA9PSAiZXhjZXB0aW9uIik7Ci0KLSAgICAgICAg
ICAgICAgICB2YXIgZnVuY05hbWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnlt
b3VzPiI7Ci0gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNv
ZGVMb2NhdGlvbjsKLSAgICAgICAgICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1i
ZXIgKyAxOwotICAgICAgICAgICAgICAgIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1i
ZXIgKyAxOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNFICMiICsg
KCsrcGF1c2VzKSArICIgQVQ6ICIgKyBmdW5jTmFtZSArICI6IiArIGxpbmUgKyAiOiIgKyBjb2x1
bW4pOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1l
KCk7Ci0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gUmVzdW1pbmcu
Ci0gICAgICAgICAgICAgICAgaWYgKHJlc3VtZUFjdGlvbiA9PSAnRmluaXNoT25SZXN1bWUnKQot
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAgICAvLyBUaGlzIGlzIGEgc2lnbmFsIG1lY2hh
bmlzbSBmb3IgdGhlIHdlYiBwcm9jZXNzIHRvIHRlbGwgdXMgdGhhdCB0aGUgdGVzdCBpcyBkb25l
LgotICAgICAgICAvLyBUaGUgd2ViIHByb2Nlc3MgZmlyZXMgdGhlIHNpZ25hbCBieSBkb2luZyBj
b25zb2xlLmxvZygiRE9ORSIpLgotICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwg
ZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YS5t
ZXNzYWdlOwotICAgICAgICAgICAgaWYgKCFtZXNzYWdlLnBhcmFtZXRlcnMgfHwgbWVzc2FnZS5w
YXJhbWV0ZXJzLmxlbmd0aCAhPT0gMSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
ICAgICBpZiAobWVzc2FnZS5wYXJhbWV0ZXJzWzBdLnR5cGUgIT09ICJzdHJpbmciIHx8IG1lc3Nh
Z2UucGFyYW1ldGVyc1swXS5kZXNjcmlwdGlvbiAhPT0gIkRPTkUiKQotICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAg
ICAgIH0pOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOwotICAgIH0KLQot
ICAgIGRvRXhjZXB0aW9uVGVzdCgndGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbicsICdVbmNhdWdo
dEV4Y2VwdGlvbnMnLCAnRmluaXNoT25SZXN1bWUnKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxwPkNoZWNraW5nIHBhdXNlIGxvY2F0aW9u
cyB3aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0aW9ucy48L3A+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
dW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1jYXRjaC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhj
ZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1jYXRjaC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkODE1NTIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1w
cm9taXNlLXdpdGgtY2F0Y2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCww
IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDQ6IHRlc3RUaHJvd2luZ0luUHJvbWlzZVdpdGhD
YXRjaAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ2OiBpbiBwcm9taXNlCi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6
IGluIHByb21pc2UuY2F0Y2gKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MDogRE9ORQotQ2hlY2tp
bmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLgot
Ci1QQVVTRSAjMSBBVDogZG9UaHJvdzo4OjIyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJv
bWlzZS13aXRoLWNhdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1jYXRjaC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTQ3MTEwLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24t
dGhyb3ctaW4tcHJvbWlzZS13aXRoLWNhdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiAr
MCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9u
VGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAgewot
ICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAg
ICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAgICAg
IH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rp
b24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNj
cmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50
ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtw
b2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtw
b2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFt
ZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxG
cmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2FsbEZy
YW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAg
ICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4KLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAgIHZh
ciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAg
ICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9u
OwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7Ci0g
ICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7Ci0K
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVzZXMp
ICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0gICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQotICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAgICAg
ICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0
aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAg
IC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9n
KCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihl
dmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0g
ICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMu
bGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmICht
ZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0
ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0K
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci0gICAgfQotCi0gICAgZG9FeGNl
cHRpb25UZXN0KCd0ZXN0VGhyb3dpbmdJblByb21pc2VXaXRoQ2F0Y2gnLCAnVW5jYXVnaHRFeGNl
cHRpb25zJywgJ0lnbm9yZVJlc3VtZScpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4g
cGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdo
dC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLmh0
bWwKaW5kZXggODM5Y2UzZS4uNWI5MGVlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1
Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLmh0bWwKQEAgLTEsNzIgKzEsODAgQEAKLTwh
ZG9jdHlwZSBodG1sPgorPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
YnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlv
biB0ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0
aW9uQnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1c2VzID0g
MDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5UZXN0Q2Fz
ZSh0ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRU
aW1lb3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAg
ICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAgICAgIGlm
ICghL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVjdC51cmwp
KQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbkJy
ZWFrVHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNl
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNl
OwotCi0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0pOwotCi0g
ICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0
aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2FsbEZyYW1l
KSB7Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09
ICJleGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNhbGxGcmFt
ZS5mdW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2YXIgbG9j
YXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAgICAgIHZh
ciBsaW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAgdmFyIGNv
bHVtbiA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1bmNOYW1l
ICsgIjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVzdW1lQWN0
aW9uID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7CitUZXN0UGFnZS5hbGxvd1VuY2F1Z2h0RXhjZXB0aW9ucyA9IHRy
dWU7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIFBhdXNlIG9uIHVuY2F1Z2h0IGV4Y2Vw
dGlvbiBiZWhhdmlvciBpbiBQcm9taXNlcyBpcyBsaWtlbHkgdG8gY2hhbmdlLiBUaGlzIHRlc3Rz
IG91cgorICAgIC8vIGN1cnJlbnQgYmVoYXZpb3Igb2Ygbm90IHBhdXNpbmcgZm9yIHVuY2F1Z2h0
IGV4Y2VwdGlvbiB3aGVuIHRoZSBQcm9taXNlIHN3YWxsb3dzCisgICAgLy8gdGhlIGV4Y2VwdGlv
bi4gU2VlIHRoZXNlIGJ1Z3M6CisgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8x
MjQwNjY+IFVuY2F1Z2h0IGV4Y2VwdGlvbnMgcmFpc2VkIGluIHByb21pc2UgY29tcGxldGlvbiBm
dW5jdGlvbnMgYXJlIG5vdCBwcmludGVkIHRvIGNvbnNvbGUKKyAgICAvLyBGSVhNRTogPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE0NzUwMj4gVW5jYXVnaHQgRXhjZXB0aW9uIGluIHByb21pc2UgZG9l
cyBub3QgdHJpZ2dlciBicmVhayBvbiB1bmNhdWdodCBleGNlcHRpb24gYnJlYWtwb2ludCAgICAK
KworICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25z
QnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVBc3luY1N1aXRlKCJCcmVha09uVW5jYXVnaHRFeGNlcHRpb24uUHJvbWlzZSIp
OworCisgICAgZnVuY3Rpb24gYWRkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNz
aW9ufSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBk
ZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGV4cHJlc3Npb24pOwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHNldFRpbWVvdXQo
KCkgPT4geyBUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiQWZ0ZXJUZXN0RnVuY3Rp
b24iKTsgfSwgNTApYCk7CisKKyAgICAgICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJTaG91bGQgbm90IGhhdmUgcGF1c2VkLiIpOwor
ICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgp
OworICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoIkFm
dGVyVGVzdEZ1bmN0aW9uIiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QucGFzcygiU2hvdWxkIG5vdCBwYXVzZSwgZXhjZXB0aW9uIGlzICdjYXVnaHQnIGJ5
IFByb21pc2UuIik7CisgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1h
bmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2
ZW50LlBhdXNlZCwgbGlzdGVuZXIpOworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7Cisg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwotCi0gICAgICAg
IC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVs
bCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBm
aXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdl
Ykluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01h
bmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAg
dmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3Nh
Z2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0u
dHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9
PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5yZWxvYWRQYWdlKCk7CiAgICAgfQogCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0VGhyb3dp
bmdJblByb21pc2UnLCAnVW5jYXVnaHRFeGNlcHRpb25zJywgJ0ZpbmlzaE9uUmVzdW1lJyk7Cisg
ICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9u
LlByb21pc2UuRXhjZXB0aW9uSW5Qcm9taXNlQ29uc3RydWN0b3IiLAorICAgICAgICBkZXNjcmlw
dGlvbjogIkJyZWFrIG9uIGFuIGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJvbWlzZSBjb25zdHJ1Y3Rv
ci4iLAorICAgICAgICBleHByZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0VGhyb3dpbmdJblByb21p
c2UpIiwKKyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFr
T25VbmNhdWdodEV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZVRoZW5XaXRob3V0
Q2F0Y2giLAorICAgICAgICBkZXNjcmlwdGlvbjogIkJyZWFrIG9uIGFuIGV4Y2VwdGlvbiB0aHJv
d24gaW4gUHJvbWlzZSB0aGVuIGhhbmRsZXIgd2l0aCBubyBjYXRjaCBoYW5kbGVyLiIsCisgICAg
ICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RUaHJvd2luZ0luUHJvbWlzZVRoZW4pIiwK
KyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25VbmNh
dWdodEV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZVRoZW5XaXRoQ2F0Y2giLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIkJyZWFrIG9uIGFuIGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJv
bWlzZSB0aGVuIGhhbmRsZXIgd2l0aCBhIGNhdGNoIGhhbmRsZXIuIiwKKyAgICAgICAgZXhwcmVz
c2lvbjogInNldFRpbWVvdXQodGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbldpdGhDYXRjaCkiLAor
ICAgIH0pOworCisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQnJlYWtPblVuY2F1
Z2h0RXhjZXB0aW9uLlByb21pc2UuRXhjZXB0aW9uSW5Qcm9taXNlQ2F0Y2giLAorICAgICAgICBk
ZXNjcmlwdGlvbjogIkJyZWFrIG9uIGFuIGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJvbWlzZSBjYXRj
aCB3aXRoIG5vIHRoZW4gaGFuZGxlci4iLAorICAgICAgICBleHByZXNzaW9uOiAic2V0VGltZW91
dCh0ZXN0VGhyb3dpbmdJblByb21pc2VXaXRoQ2F0Y2gpIiwKKyAgICB9KTsKKworICAgIGFkZFRl
c3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5Qcm9taXNl
LkV4Y2VwdGlvbkluUHJvbWlzZVRoZW5BbmRSZXRocm93bkluQ2F0Y2giLAorICAgICAgICBkZXNj
cmlwdGlvbjogIkJyZWFrIG9uIGFuIGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJvbWlzZSB0aGVuIGhh
bmRsZXIsIGFuZCB0aGVuIGFnYWluIHdoZW4gcmV0aHJvd24gaW4gY2F0Y2ggaGFuZGxlci4iLAor
ICAgICAgICBleHByZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0VGhyb3dpbmdJblByb21pc2VXaXRo
UmV0aHJvd0luQ2F0Y2gpIiwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZp
bmlzaCgpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdo
dCBleGNlcHRpb25zLjwvcD4KKzxwPkNoZWNraW5nIG5vIHBhdXNlcyB3aXRoaW4gUHJvbWlzZXMg
d2hlbiBwYXVzaW5nIG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbnMuPC9wPgogPC9ib2R5PgogPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVu
Y2F1Z2h0LWV4Y2VwdGlvbi13aW5kb3ctb25lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXdpbmRvdy1v
bmVycm9yLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI3ZTU0
Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
dW5jYXVnaHQtZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDggKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRl
c3RFcnJvcgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6IHdpbmRvdy5vbmVycm9yOiBUZXN0RXJy
b3IKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiBET05FCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
ODogVGVzdEVycm9yCi1DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIHVu
Y2F1Z2h0IGV4Y2VwdGlvbnMuCi0KLVBBVVNFICMxIEFUOiBkb1Rocm93Ojg6MjIKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4
Y2VwdGlvbi13aW5kb3ctb25lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi13aW5kb3ctb25lcnJvci5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NDZiZGU4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24td2luZG93
LW9uZXJyb3IuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLTwhZG9jdHlwZSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL3Jlc291cmNl
cy9icmVhay1vbi1leGNlcHRpb24tdGVzdHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXdpbmRv
dy5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgIGNvbnNvbGUubG9nKCJ3aW5kb3cub25lcnJv
cjogIiArIGUpOwotICAgIGNvbnNvbGUubG9nKCJET05FIik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3Qo
KSB7Ci0gICAgZnVuY3Rpb24gZG9FeGNlcHRpb25UZXN0KHRlc3ROYW1lLCBleGNlcHRpb25CcmVh
a1R5cGUsIHJlc3VtZUFjdGlvbikKLSAgICB7Ci0gICAgICAgIHZhciBwYXVzZXMgPSAwOwotICAg
ICAgICB2YXIgaW5kZXggPSAwOwotCi0gICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RDYXNlKHRlc3Qp
IHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldFRpbWVvdXQo
IiArIHRlc3QgKyAiLCA1MCkiKTsKLSAgICAgICAgfQotCi0gICAgICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5h
Z2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFy
IHNjcmlwdE9iamVjdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwotICAgICAgICAgICAgaWYgKCEvYnJl
YWstb24tZXhjZXB0aW9uLXRlc3RzXC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAoZXhjZXB0aW9uQnJlYWtUeXBl
ID09ICdBbGxFeGNlcHRpb25zJykKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNYW5hZ2VyLmFsbEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdl
ci5hbGxVbmNhdWdodEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAg
ICAgICAgICAgIHJ1blRlc3RDYXNlKHRlc3ROYW1lKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgZnVuY3Rpb24oZXZl
bnQpIHsKLSAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZTsKLSAgICAgICAgICAgIGlmIChjYWxsRnJhbWUpIHsKLSAg
ICAgICAgICAgICAgICAvLyBQYXVzaW5nLgotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0KFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucGF1c2VSZWFzb24gPT0gImV4Y2Vw
dGlvbiIpOwotCi0gICAgICAgICAgICAgICAgdmFyIGZ1bmNOYW1lID0gY2FsbEZyYW1lLmZ1bmN0
aW9uTmFtZSB8fCAiPGFub255bW91cz4iOwotICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9
IGNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRpb247Ci0gICAgICAgICAgICAgICAgdmFyIGxpbmUg
PSBsb2NhdGlvbi5saW5lTnVtYmVyICsgMTsKLSAgICAgICAgICAgICAgICB2YXIgY29sdW1uID0g
bG9jYXRpb24uY29sdW1uTnVtYmVyICsgMTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJQQVVTRSAjIiArICgrK3BhdXNlcykgKyAiIEFUOiAiICsgZnVuY05hbWUgKyAiOiIg
KyBsaW5lICsgIjoiICsgY29sdW1uKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVi
dWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIC8vIFJlc3VtaW5nLgotICAgICAgICAgICAgICAgIGlmIChyZXN1bWVBY3Rpb24gPT0g
J0ZpbmlzaE9uUmVzdW1lJykKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gVGhp
cyBpcyBhIHNpZ25hbCBtZWNoYW5pc20gZm9yIHRoZSB3ZWIgcHJvY2VzcyB0byB0ZWxsIHVzIHRo
YXQgdGhlIHRlc3QgaXMgZG9uZS4KLSAgICAgICAgLy8gVGhlIHdlYiBwcm9jZXNzIGZpcmVzIHRo
ZSBzaWduYWwgYnkgZG9pbmcgY29uc29sZS5sb2coIkRPTkUiKS4KLSAgICAgICAgV2ViSW5zcGVj
dG9yLmxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5F
dmVudC5NZXNzYWdlQWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgbWVz
c2FnZSA9IGV2ZW50LmRhdGEubWVzc2FnZTsKLSAgICAgICAgICAgIGlmICghbWVzc2FnZS5wYXJh
bWV0ZXJzIHx8IG1lc3NhZ2UucGFyYW1ldGVycy5sZW5ndGggIT09IDEpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKG1lc3NhZ2UucGFyYW1ldGVyc1swXS50eXBlICE9
PSAic3RyaW5nIiB8fCBtZXNzYWdlLnBhcmFtZXRlcnNbMF0uZGVzY3JpcHRpb24gIT09ICJET05F
IikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwotICAgICAgICB9KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9h
ZFBhZ2UoKTsKLSAgICB9Ci0KLSAgICBkb0V4Y2VwdGlvblRlc3QoJ2RvVGhyb3cnLCAnVW5jYXVn
aHRFeGNlcHRpb25zJywgJ0lnbm9yZVJlc3VtZScpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25z
IHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11
bmNhdWdodC1leGNlcHRpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9i
cmVhay1vbi11bmNhdWdodC1leGNlcHRpb24uaHRtbAppbmRleCBhYzUxM2M0Li43YzRkNDRjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVn
aHQtZXhjZXB0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi5odG1sCkBAIC0xLDcyICsxLDgyIEBACi08IWRvY3R5
cGUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuL3Jlc291cmNlcy9icmVhay1vbi1leGNlcHRpb24tdGVzdHMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JyZWFr
LW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gdGVz
dCgpIHsKLSAgICBmdW5jdGlvbiBkb0V4Y2VwdGlvblRlc3QodGVzdE5hbWUsIGV4Y2VwdGlvbkJy
ZWFrVHlwZSwgcmVzdW1lQWN0aW9uKQotICAgIHsKLSAgICAgICAgdmFyIHBhdXNlcyA9IDA7Ci0g
ICAgICAgIHZhciBpbmRleCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuVGVzdENhc2UodGVz
dCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91
dCgiICsgdGVzdCArICIsIDUwKSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1h
bmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2
YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0gICAgICAgICAgICBpZiAoIS9i
cmVhay1vbi1leGNlcHRpb24tdGVzdHNcLmpzJC8udGVzdChzY3JpcHRPYmplY3QudXJsKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChleGNlcHRpb25CcmVha1R5
cGUgPT0gJ0FsbEV4Y2VwdGlvbnMnKQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5h
Z2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLQot
ICAgICAgICAgICAgcnVuVGVzdENhc2UodGVzdE5hbWUpOwotICAgICAgICB9KTsKLQotICAgICAg
ICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBmdW5jdGlvbihl
dmVudCkgewotICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSkgewot
ICAgICAgICAgICAgICAgIC8vIFBhdXNpbmcuCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5wYXVzZVJlYXNvbiA9PSAiZXhj
ZXB0aW9uIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgZnVuY05hbWUgPSBjYWxsRnJhbWUuZnVu
Y3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiI7Ci0gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9u
ID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAgICAgICAgICB2YXIgbGlu
ZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOwotICAgICAgICAgICAgICAgIHZhciBjb2x1bW4g
PSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAxOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIlBBVVNFICMiICsgKCsrcGF1c2VzKSArICIgQVQ6ICIgKyBmdW5jTmFtZSArICI6
IiArIGxpbmUgKyAiOiIgKyBjb2x1bW4pOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgLy8gUmVzdW1pbmcuCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VtZUFjdGlvbiA9
PSAnRmluaXNoT25SZXN1bWUnKQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOworVGVzdFBhZ2UuYWxsb3dVbmNhdWdodEV4Y2VwdGlvbnMgPSB0cnVlOwor
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFs
bFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIGxl
dCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQnJlYWtPblVuY2F1Z2h0
RXhjZXB0aW9uIik7CisKKyAgICBmdW5jdGlvbiBhZGRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRp
b24sIGV4cHJlc3Npb259KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
ICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVj
dCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoZXhw
cmVzc2lvbik7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5z
aW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50
LlBhdXNlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09PSAi
ZXhjZXB0aW9uIiwgIlNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLiIpOworICAgICAgICAgICAg
ICAgICAgICBsZXQgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3Rp
dmVDYWxsRnJhbWU7CisgICAgICAgICAgICAgICAgICAgIGxldCBuYW1lID0gY2FsbEZyYW1lLmZ1
bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iOworICAgICAgICAgICAgICAgICAgICBsZXQgbG9j
YXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOworICAgICAgICAgICAgICAgICAg
ICBsZXQgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOworICAgICAgICAgICAgICAgICAg
ICBsZXQgY29sdW1uID0gbG9jYXRpb24uY29sdW1uTnVtYmVyICsgMTsKKyAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYFBBVVNFIEFUICR7bmFtZX06JHtsaW5lfToke2NvbHVt
bn1gKTsKKyAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5y
ZXN1bWUoKS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICAgICAgfSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVj
aGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRv
bmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5n
IGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVk
LCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRh
Lm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdl
LnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVz
c2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAg
ICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7CiAgICAgfQog
Ci0gICAgZG9FeGNlcHRpb25UZXN0KCdkb1Rocm93JywgJ1VuY2F1Z2h0RXhjZXB0aW9ucycsICdJ
Z25vcmVSZXN1bWUnKTsKKyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJCcmVha09u
VW5jYXVnaHRFeGNlcHRpb24uVW5jYXVnaHRFeGNlcHRpb25CYXNpYyIsCisgICAgICAgIGRlc2Ny
aXB0aW9uOiAiQnJlYWsgb24gYW4gdW5jYXVnaHQgZXhjZXB0aW9uIHRocm93biBpbiBhIGZ1bmN0
aW9uLiIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KGRvVGhyb3cpIiwKKyAgICB9
KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25VbmNhdWdodEV4
Y2VwdGlvbi5VbmNhdWdodEV4Y2VwdGlvbkluRmluYWxseSIsCisgICAgICAgIGRlc2NyaXB0aW9u
OiAiQnJlYWsgb24gYW4gdW5jYXVnaHQgZXhjZXB0aW9uIHRocm93biBpbiBhIGZpbmFsbHkgYmxv
Y2suIiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVzdEZpbmFsbHkpIiwKKyAg
ICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25VbmNhdWdo
dEV4Y2VwdGlvbi5VbmNhdWdodEV4Y2VwdGlvblRocnVOYXRpdmVDb2RlIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJCcmVhayBvbiBhbiB1bmNhdWdodCBleGNlcHRpb24gdGhyb3duIHRocnUgbmF0
aXZlIGNvZGUgKE1hcC5wcm90b3R5cGUuZm9yRWFjaCkuIiwKKyAgICAgICAgZXhwcmVzc2lvbjog
InNldFRpbWVvdXQodGVzdFRocm93aW5nVGhydU5hdGl2ZUNvZGUpIiwKKyAgICB9KTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25VbmNhdWdodEV4Y2Vw
dGlvbi5DYXVnaHRFeGNlcHRpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjogIk5vIGJyZWFrIG9u
IGEgY2F1Z2h0IGV4Y2VwdGlvbi4iLAorICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9
PiB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBzZXRUaW1lb3V0
KCgpID0+IHsKKyAgICAgICAgICAgICAgICB0ZXN0Q2F0Y2goKTsKKyAgICAgICAgICAgICAgICBU
ZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiQWZ0ZXJUZXN0RnVuY3Rpb24iKTsKKyAg
ICAgICAgICAgIH0pYCk7CisKKyAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZmFpbCgiU2hvdWxkIG5vdCBoYXZlIHBhdXNlZC4iKTsKKyAgICAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOworICAgICAgICAg
ICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Quc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoIkFmdGVyVGVzdEZ1bmN0aW9uIiwgKGV2ZW50
KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJTaG91bGQgbm90IHBh
dXNlLCBleGNlcHRpb24gd2FzIGNhdWdodC4iKTsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUu
cnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBw
YXVzaW5nIG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbnMuPC9wPgorPHA+Q2hlY2tpbmcgcGF1c2UgbG9j
YXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLjwvcD4KIDwvYm9keT4K
IDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCBlZGFiMGQ2Li5mMjllNjZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yOTYsOCArMjk2LDYgQEAgd2Via2l0Lm9yZy9iLzE1
MTcyOSBbIFlvc2VtaXRlIF0gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9tZXRob2RzLWFzeW5j
Lmh0bWwgWwogCiB3ZWJraXQub3JnL2IvMTUyMDI1IFsgRGVidWcgXSBpbnNwZWN0b3IvY29uc29s
ZS9tZXNzYWdlc0NsZWFyZWQuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKLXdlYmtpdC5vcmcvYi8x
NTI0OTIgWyBEZWJ1ZyBdIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tY2F0
Y2guaHRtbCBbIFBhc3MgVGltZW91dCBdCi0KIHdlYmtpdC5vcmcvYi8xNTUxMzggWyBZb3NlbWl0
ZSBFbENhcGl0YW4gXSBpbnNwZWN0b3IvY29uc29sZS9hZGRJbnNwZWN0ZWROb2RlLmh0bWwgWyBQ
YXNzIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMTU1MTUxIFsgRGVidWcgRWxDYXBpdGFuIF0g
bWVkaWEvdHJhY2svdHJhY2stY3Vlcy1wYXVzZS1vbi1leGl0Lmh0bWwgWyBQYXNzIFRpbWVvdXQg
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5OTIyNzgz
Li40NjgzNmY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtNzM3LDE1ICs3MzcsMTUgQEAgd2Via2l0Lm9yZy9iLzEyMzI1MCBwbHVnaW5zL2Rlc3Ryb3kt
ZHVyaW5nLW5wcC1uZXctb2JqZWN0LXdpdGgtZmFsbGJhY2stY29udGVudC4KIHdlYmtpdC5vcmcv
Yi8xMjMzNjkgc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi5zdmcgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMjMzNjkgc3ZnL2Nzcy9yb290LXNoYWRvdy1vZmZzY3Jl
ZW4uc3ZnIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xNTE4MzIgaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNl
LXJldGhyb3ctaW4tY2F0Y2guaHRtbAotd2Via2l0Lm9yZy9iLzE1MTgzMiBpbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi13
aXRoLWNhdGNoLmh0bWwKLXdlYmtpdC5vcmcvYi8xNTE4MzIgaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4uaHRtbAotd2Vi
a2l0Lm9yZy9iLzE1MTgzMiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhj
ZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1jYXRjaC5odG1sCi13ZWJraXQub3JnL2IvMTUx
ODMyIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ct
aW4tcHJvbWlzZS5odG1sCiBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmctY2Fs
bGVlLWFuZC1leGFtaW5lLWRmZy1sb2NhbC5odG1sCiBpbnNwZWN0b3IvZGVidWdnZXIvZGlkU2Ft
cGxlUHJvYmUtbXVsdGlwbGUtcHJvYmVzLmh0bWwKIGluc3BlY3Rvci9kZWJ1Z2dlci9uZXN0ZWQt
aW5zcGVjdG9ycy5odG1sCiAKK2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24t
dGhyb3ctaW4tcHJvbWlzZS5odG1sIFsgU2xvdyBdCitpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tZXhjZXB0aW9uLmh0bWwgWyBTbG93IF0KK2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11
bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS5odG1sIFsgU2xvdyBdCitpbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLmh0bWwgWyBTbG93IF0KKwog
d2Via2l0Lm9yZy9iLzEyNDMxMSBjb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybS10cmFuc3Bh
cmVudC1wb3NpdGlvbmVkLXZpZGVvLWluc2lkZS1yZWdpb24uaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogCiB3ZWJraXQub3JnL2IvMTI0MzIxIGFuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2Ut
Y2FjaGUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCkBAIC0xMjMyLDEzICsxMjMyLDYgQEAgd2Via2l0
Lm9yZy9iLzE1ODAwNiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRpbWUuaHRtbCBbIFBhc3Mg
VGltZW91dCBdCiB3ZWJraXQub3JnL2IvMTU2NjM0IGluc3BlY3Rvci9mb3JtYXR0aW5nL2Zvcm1h
dHRpbmctamF2YXNjcmlwdC5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi8xNTg5
NDggaW5zcGVjdG9yL3RpbWVsaW5lIFsgUGFzcyBUaW1lb3V0IF0KIAotd2Via2l0Lm9yZy9iLzE1
OTI3MiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLWZpbmFsbHkuaHRtbAot
d2Via2l0Lm9yZy9iLzE1OTI3MiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9u
LW5hdGl2ZS5odG1sCi13ZWJraXQub3JnL2IvMTU5MjcyIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVh
ay1vbi1leGNlcHRpb24uaHRtbAotd2Via2l0Lm9yZy9iLzE1OTI3MiBpbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWZpbmFsbHkuaHRtbAotd2Via2l0Lm9yZy9i
LzE1OTI3MiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLW5h
dGl2ZS5odG1sCi13ZWJraXQub3JnL2IvMTU5MjcyIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1v
bi11bmNhdWdodC1leGNlcHRpb24uaHRtbAotCiAjIENvbG9yc3BhY2VzIG9uIENBIE9wZW5HTCBs
YXllcnMgbm90IGF2YWlsYWJsZSBpbiBZb3NlbWl0ZQogWyBZb3NlbWl0ZSBdIGZhc3QvY2FudmFz
L3dlYmdsL21hdGNoLXBhZ2UtY29sb3Itc3BhY2UuaHRtbCBbIFNraXAgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282614</attachid>
            <date>2016-07-01 17:36:58 -0700</date>
            <delta_ts>2016-07-01 17:41:07 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>break-on-2.patch</filename>
            <type>text/plain</type>
            <size>111619</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">Y29tbWl0IDUyYjRlNzJlM2JkMjRkYzczYzBhMzgyOTJkYzI5MjdlNDViNjk4ODMKQXV0aG9yOiBK
b3NlcGggUGVjb3Jhcm8gPHBlY29yYXJvQGFwcGxlLmNvbT4KRGF0ZTogICBGcmkgSnVsIDEgMTc6
MzU6MjcgMjAxNiAtMDcwMAoKICAgIFJFR1JFU1NJT04gKHIyMDI1Mjk/KSBpbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWstb24tKiB0ZXN0cyBhcmUgZmxha3kKICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkyNzIKICAgIDxyZGFyOi8vcHJvYmxlbS8yNzA4NzkzOD4K
ICAgIAogICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAgICAKICAgIFJld3JpdGUgdGhl
IGJyZWFrIG9uIGV4Y2VwdGlvbiBhbmQgdW5jYXVnaHQgZXhjZXB0aW9uIHRlc3RzCiAgICB0byBi
ZSBlYXNpZXIgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCwgcmVkdWNlIGR1cGxpY2F0ZWQgY29kZSwK
ICAgIGFuZCBhdm9pZCB1bm5lY2Vzc2FyeSB3b3JrIChzdWNoIGFzIGEgcmVsb2FkIGFuZCBzY3Jp
cHQgY2hlY2spLgogICAgCiAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CiAgICAqIHBsYXRmb3JtL21h
Yy13azIvVGVzdEV4cGVjdGF0aW9uczoKICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnM6CiAgICBVbnNraXAgdGhlIGNvcmUgYnJlYWstb24tKiB0ZXN0cywgYnV0IG1hcmsgdGhlbSBh
cyBTbG93LgogICAgCiAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24t
dGhyb3ctaW4tcHJvbWlzZS5odG1sOgogICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
ZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtZXhwZWN0ZWQudHh0OgogICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtZXhw
ZWN0ZWQudHh0OgogICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhj
ZXB0aW9uLXRocm93LWluLXByb21pc2UuaHRtbDoKICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrLW9uLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6CiAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9i
cmVhay1vbi1leGNlcHRpb24uaHRtbDoKICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9u
LXVuY2F1Z2h0LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6CiAgICAqIGluc3BlY3Rvci9kZWJ1Z2dl
ci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24uaHRtbDoKICAgIENvbnZlcmdlIGludG8gNCB0
ZXN0cywgc2hhcmUgYSBzaWduaWZpY2FudCBhbW91bnQgb2YgY29kZSwKICAgIGFuZCBtYWtlIHRo
ZW0gZWFzaWVyIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQuCiAgICAKICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1jYXRjaC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCiAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tY2F0Y2guaHRtbDogUmVt
b3ZlZC4KICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1maW5hbGx5
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9u
LWV4Y2VwdGlvbi1maW5hbGx5Lmh0bWw6IFJlbW92ZWQuCiAgICAqIGluc3BlY3Rvci9kZWJ1Z2dl
ci9icmVhay1vbi1leGNlcHRpb24tbmF0aXZlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1uYXRpdmUuaHRtbDogUmVtb3Zl
ZC4KICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1w
cm9taXNlLXJldGhyb3ctaW4tY2F0Y2gtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgogICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJv
dy1pbi1jYXRjaC5odG1sOiBSZW1vdmVkLgogICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CiAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJv
bWlzZS10aGVuLXdpdGgtY2F0Y2gtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgogICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi13aXRo
LWNhdGNoLmh0bWw6IFJlbW92ZWQuCiAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1l
eGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLmh0bWw6IFJlbW92ZWQuCiAgICAqIGluc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS13aXRoLWNh
dGNoLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
LW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXdpdGgtY2F0Y2guaHRtbDogUmVtb3ZlZC4K
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1jYXRj
aC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCiAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1v
bi11bmNhdWdodC1leGNlcHRpb24tY2F0Y2guaHRtbDogUmVtb3ZlZC4KICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1maW5hbGx5LWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4
Y2VwdGlvbi1maW5hbGx5Lmh0bWw6IFJlbW92ZWQuCiAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9i
cmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tbmF0aXZlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1uYXRp
dmUuaHRtbDogUmVtb3ZlZC4KICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1
Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0Y2gtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgogICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQt
ZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC5odG1sOiBSZW1vdmVk
LgogICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRo
cm93LWluLXByb21pc2UtdGhlbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCiAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10
aGVuLXdpdGgtY2F0Y2gtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgogICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi13
aXRoLWNhdGNoLmh0bWw6IFJlbW92ZWQuCiAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1v
bi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLmh0bWw6IFJlbW92ZWQu
CiAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhy
b3ctaW4tcHJvbWlzZS13aXRoLWNhdGNoLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9t
aXNlLXdpdGgtY2F0Y2guaHRtbDogUmVtb3ZlZC4KICAgIE1lcmdlZCBpbnRvIHRoZSA0IHRlc3Rz
IGFib3ZlLgogICAgCiAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24t
d2luZG93LW9uZXJyb3ItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgogICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9yLmh0bWw6IFJlbW92ZWQuCiAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24td2luZG93
LW9uZXJyb3ItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgogICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
YnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9yLmh0bWw6IFJlbW92ZWQu
CiAgICBFbGltaW5hdGUgdGhlc2UgZW50aXJlbHkuIFRlc3RzIGFscmVhZHkgaGF2ZSBhbiBvbmVy
cm9yIGxpc3RlbmVyLAogICAgc28gdGhlc2Ugd2VyZSBhY3R1YWxseSBhbHJlYWR5IGVxdWl2YWxl
bnQgdG8gdGhlIGJhc2ljIHRlc3RzLgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkNjI2YTdlLi5jZWE5N2Y2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNjggQEAKKzIwMTYtMDctMDEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjAyNTI5PykgaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrLW9uLSogdGVzdHMgYXJlIGZsYWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkyNzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI3
MDg3OTM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJld3JpdGUgdGhlIGJyZWFrIG9uIGV4Y2VwdGlvbiBhbmQgdW5jYXVnaHQgZXhjZXB0aW9uIHRl
c3RzCisgICAgICAgIHRvIGJlIGVhc2llciB0byByZWFkIGFuZCB1bmRlcnN0YW5kLCByZWR1Y2Ug
ZHVwbGljYXRlZCBjb2RlLAorICAgICAgICBhbmQgYXZvaWQgdW5uZWNlc3Nhcnkgd29yayAoc3Vj
aCBhcyBhIHJlbG9hZCBhbmQgc2NyaXB0IGNoZWNrKS4KKworICAgICAgICAqIFRlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBVbnNraXAgdGhl
IGNvcmUgYnJlYWstb24tKiB0ZXN0cywgYnV0IG1hcmsgdGhlbSBhcyBTbG93LgorCisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNl
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10
aHJvdy1pbi1wcm9taXNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNl
cHRpb24tdGhyb3ctaW4tcHJvbWlzZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dl
ci9icmVhay1vbi1leGNlcHRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLmh0bWw6Cisg
ICAgICAgIENvbnZlcmdlIGludG8gNCB0ZXN0cywgc2hhcmUgYSBzaWduaWZpY2FudCBhbW91bnQg
b2YgY29kZSwKKyAgICAgICAgYW5kIG1ha2UgdGhlbSBlYXNpZXIgdG8gcmVhZCBhbmQgdW5kZXJz
dGFuZC4KKyAgICAgICAgCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4
Y2VwdGlvbi1jYXRjaC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1jYXRjaC5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tZmluYWxseS1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4
Y2VwdGlvbi1maW5hbGx5Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1uYXRpdmUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tbmF0aXZlLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlv
bi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0Y2gtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ct
aW4tcHJvbWlzZS1yZXRocm93LWluLWNhdGNoLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4t
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVh
ay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLXdpdGgtY2F0Y2gtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNl
cHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLXdpdGgtY2F0Y2guaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXBy
b21pc2UtdGhlbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9i
cmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS13aXRoLWNhdGNoLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0
aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1jYXRjaC5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tY2F0Y2gtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1v
bi11bmNhdWdodC1leGNlcHRpb24tY2F0Y2guaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWZpbmFsbHktZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11
bmNhdWdodC1leGNlcHRpb24tZmluYWxseS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tbmF0aXZlLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5j
YXVnaHQtZXhjZXB0aW9uLW5hdGl2ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS1y
ZXRocm93LWluLWNhdGNoLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Ut
cmV0aHJvdy1pbi1jYXRjaC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1
Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4uaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93
LWluLXByb21pc2Utd2l0aC1jYXRjaC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1w
cm9taXNlLXdpdGgtY2F0Y2guaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgTWVyZ2VkIGludG8gdGhl
IDQgdGVzdHMgYWJvdmUuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
ZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9yLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9yLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1
Z2h0LWV4Y2VwdGlvbi13aW5kb3ctb25lcnJvci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi13aW5k
b3ctb25lcnJvci5odG1sOiBSZW1vdmVkLgorICAgICAgICBFbGltaW5hdGUgdGhlc2UgZW50aXJl
bHkuIFRlc3RzIGFscmVhZHkgaGF2ZSBhbiBvbmVycm9yIGxpc3RlbmVyLAorICAgICAgICBzbyB0
aGVzZSB3ZXJlIGFjdHVhbGx5IGFscmVhZHkgZXF1aXZhbGVudCB0byB0aGUgYmFzaWMgdGVzdHMu
CisKIDIwMTYtMDYtMzAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBpbnNwZWN0b3IvZGVidWdnZXIvY29tbWFuZC1saW5lLWFwaS1leGNlcHRpb24uaHRt
bCBmbGFraWx5IHRpbWVzIG91dCBvbiBtYWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGNmYmIxNGQu
LjhjOTMyMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTMxLDExICsxMzEsNiBAQCB3ZWJraXQu
b3JnL2IvMTQ4MDM2IGh0dHAvdGVzdHMvaW5zcGVjdG9yL3JlcGxheS8gWyBTa2lwIF0KIAogd2Vi
a2l0Lm9yZy9iLzEyOTYzOSBpbnNwZWN0b3IvZG9tL2RvbS1zZWFyY2gtY3Jhc2guaHRtbCBbIFNr
aXAgXQogCi13ZWJraXQub3JnL2IvMTQ3NTAyIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11
bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS1yZXRocm93LWluLWNhdGNoLmh0bWwg
WyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNDc1MDIgaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9u
LXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4td2l0aC1jYXRjaC5odG1s
IFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTQ3NTAyIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1v
bi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLmh0bWwgWyBTa2lwIF0K
LXdlYmtpdC5vcmcvYi8xNDc1MDIgaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0
LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXdpdGgtY2F0Y2guaHRtbCBbIFNraXAgXQotd2Vi
a2l0Lm9yZy9iLzE0NzUwMiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhj
ZXB0aW9uLXRocm93LWluLXByb21pc2UuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzEyODcz
NiBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmcuaHRtbCBbIEZhaWx1cmUgUGFz
cyBdCiB3ZWJraXQub3JnL2IvMTM0OTgyIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWRmZy1hbmQtbW9kaWZ5LWxvY2FsLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLWNhdGNo
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1l
eGNlcHRpb24tY2F0Y2gtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzYTgxZTMwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9i
cmVhay1vbi1leGNlcHRpb24tY2F0Y2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
OCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IHRlc3RDYXRjaAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE2OiBjYXRjaCBUZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxODogRE9ORQotQ2hl
Y2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy4KLQot
UEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLWNhdGNoLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLWNhdGNoLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzYmNhZTMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1jYXRjaC5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlv
bi10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBm
dW5jdGlvbiBkb0V4Y2VwdGlvblRlc3QodGVzdE5hbWUsIGV4Y2VwdGlvbkJyZWFrVHlwZSwgcmVz
dW1lQWN0aW9uKQotICAgIHsKLSAgICAgICAgdmFyIHBhdXNlcyA9IDA7Ci0gICAgICAgIHZhciBp
bmRleCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuVGVzdENhc2UodGVzdCkgewotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCgiICsgdGVzdCAr
ICIsIDUwKSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQu
U2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0T2Jq
ZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0gICAgICAgICAgICBpZiAoIS9icmVhay1vbi1leGNl
cHRpb24tdGVzdHNcLmpzJC8udGVzdChzY3JpcHRPYmplY3QudXJsKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChleGNlcHRpb25CcmVha1R5cGUgPT0gJ0FsbEV4
Y2VwdGlvbnMnKQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIu
YWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1
Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAg
cnVuVGVzdENhc2UodGVzdE5hbWUpOwotICAgICAgICB9KTsKLQotICAgICAgICBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
TWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgewotICAg
ICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0
aXZlQ2FsbEZyYW1lOwotICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSkgewotICAgICAgICAgICAg
ICAgIC8vIFBhdXNpbmcuCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5wYXVzZVJlYXNvbiA9PSAiZXhjZXB0aW9uIik7Ci0K
LSAgICAgICAgICAgICAgICB2YXIgZnVuY05hbWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8
ICI8YW5vbnltb3VzPiI7Ci0gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gY2FsbEZyYW1l
LnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAgICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9u
LmxpbmVOdW1iZXIgKyAxOwotICAgICAgICAgICAgICAgIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5j
b2x1bW5OdW1iZXIgKyAxOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBB
VVNFICMiICsgKCsrcGF1c2VzKSArICIgQVQ6ICIgKyBmdW5jTmFtZSArICI6IiArIGxpbmUgKyAi
OiIgKyBjb2x1bW4pOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFn
ZXIucmVzdW1lKCk7Ci0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8g
UmVzdW1pbmcuCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VtZUFjdGlvbiA9PSAnRmluaXNoT25S
ZXN1bWUnKQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAgICAvLyBUaGlzIGlzIGEgc2ln
bmFsIG1lY2hhbmlzbSBmb3IgdGhlIHdlYiBwcm9jZXNzIHRvIHRlbGwgdXMgdGhhdCB0aGUgdGVz
dCBpcyBkb25lLgotICAgICAgICAvLyBUaGUgd2ViIHByb2Nlc3MgZmlyZXMgdGhlIHNpZ25hbCBi
eSBkb2luZyBjb25zb2xlLmxvZygiRE9ORSIpLgotICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50Lk1lc3Nh
Z2VBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZXZl
bnQuZGF0YS5tZXNzYWdlOwotICAgICAgICAgICAgaWYgKCFtZXNzYWdlLnBhcmFtZXRlcnMgfHwg
bWVzc2FnZS5wYXJhbWV0ZXJzLmxlbmd0aCAhPT0gMSkKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICBpZiAobWVzc2FnZS5wYXJhbWV0ZXJzWzBdLnR5cGUgIT09ICJzdHJpbmci
IHx8IG1lc3NhZ2UucGFyYW1ldGVyc1swXS5kZXNjcmlwdGlvbiAhPT0gIkRPTkUiKQotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOwot
ICAgIH0KLQotICAgIGRvRXhjZXB0aW9uVGVzdCgndGVzdENhdGNoJywgJ0FsbEV4Y2VwdGlvbnMn
LCAnSWdub3JlUmVzdW1lJyk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5n
IG9uIGFsbCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1l
eHBlY3RlZC50eHQKaW5kZXggYTg0M2Y3Yy4uZjFmZGI1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTEsNyArMSwzNiBAQAogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93
aW5nIFRlc3RFcnJvcgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6IFRlc3RFcnJvcgorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDIyOiB0ZXN0RmluYWxseQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6
IHRocm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI2OiBmaW5hbGx5CitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgODogVGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MzE6IHRlc3RUaHJvd2luZ1RocnVOYXRpdmVDb2RlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzog
dGhyb3dpbmcgVGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODogVGVzdEVycm9yCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IHRlc3RDYXRjaAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDc6IHRocm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE2OiBjYXRjaCBU
ZXN0RXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxODogRE9ORQogQ2hlY2tpbmcgcGF1c2Ug
bG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy4KIAotUEFVU0UgIzEgQVQ6
IGRvVGhyb3c6ODoyMgorCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEJyZWFrT25BbnlFeGNlcHRp
b24KKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBCcmVha09uQW55RXhjZXB0aW9uLlVuY2F1Z2h0RXhj
ZXB0aW9uQmFzaWMKK1BBU1M6IFNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLgorUEFVU0UgQVQg
ZG9UaHJvdzo4OjIyCitVbmNhdWdodCBleGNlcHRpb24gaW4gdGVzdCBwYWdlOiBUZXN0RXJyb3Ig
W2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qczo4XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
QnJlYWtPbkFueUV4Y2VwdGlvbi5VbmNhdWdodEV4Y2VwdGlvbkluRmluYWxseQorUEFTUzogU2hv
dWxkIHBhdXNlIGZvciBleGNlcHRpb24uCitQQVVTRSBBVCBkb1Rocm93Ojg6MjIKIFVuY2F1Z2h0
IGV4Y2VwdGlvbiBpbiB0ZXN0IHBhZ2U6IFRlc3RFcnJvciBbYnJlYWstb24tZXhjZXB0aW9uLXRl
c3RzLmpzOjhdCiAKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBCcmVha09uQW55RXhjZXB0aW9uLlVu
Y2F1Z2h0RXhjZXB0aW9uVGhydU5hdGl2ZUNvZGUKK1BBU1M6IFNob3VsZCBwYXVzZSBmb3IgZXhj
ZXB0aW9uLgorUEFVU0UgQVQgZG9UaHJvdzo4OjIyCitVbmNhdWdodCBleGNlcHRpb24gaW4gdGVz
dCBwYWdlOiBUZXN0RXJyb3IgW2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qczo4XQorCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogQnJlYWtPbkFueUV4Y2VwdGlvbi5DYXVnaHRFeGNlcHRpb24KK1BB
U1M6IFNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLgorUEFVU0UgQVQgZG9UaHJvdzo4OjIyCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNl
cHRpb24tZmluYWxseS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tZXhjZXB0aW9uLWZpbmFsbHktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiMWJiZGZkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tZmluYWxseS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMjogdGVz
dEZpbmFsbHkKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAyNjogZmluYWxseQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6
IFRlc3RFcnJvcgotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwg
ZXhjZXB0aW9ucy4KLQotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgotVW5jYXVnaHQgZXhjZXB0
aW9uIGluIHRlc3QgcGFnZTogVGVzdEVycm9yIFticmVhay1vbi1leGNlcHRpb24tdGVzdHMuanM6
OF0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9u
LWV4Y2VwdGlvbi1maW5hbGx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
YnJlYWstb24tZXhjZXB0aW9uLWZpbmFsbHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNjc2ZGU3YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tZXhjZXB0aW9uLWZpbmFsbHkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcy
ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuL3Jlc291cmNlcy9icmVhay1vbi1leGNlcHRpb24tdGVzdHMuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgZnVuY3Rpb24gZG9FeGNlcHRp
b25UZXN0KHRlc3ROYW1lLCBleGNlcHRpb25CcmVha1R5cGUsIHJlc3VtZUFjdGlvbikKLSAgICB7
Ci0gICAgICAgIHZhciBwYXVzZXMgPSAwOwotICAgICAgICB2YXIgaW5kZXggPSAwOwotCi0gICAg
ICAgIGZ1bmN0aW9uIHJ1blRlc3RDYXNlKHRlc3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoInNldFRpbWVvdXQoIiArIHRlc3QgKyAiLCA1MCkiKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBmdW5j
dGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIHNjcmlwdE9iamVjdCA9IGV2ZW50LmRhdGEu
c2NyaXB0OwotICAgICAgICAgICAgaWYgKCEvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzXC5qcyQv
LnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgICAgICBpZiAoZXhjZXB0aW9uQnJlYWtUeXBlID09ICdBbGxFeGNlcHRpb25zJykKLSAgICAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbEV4Y2VwdGlvbnNCcmVh
a3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxVbmNhdWdodEV4Y2VwdGlvbnNCcmVh
a3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIHJ1blRlc3RDYXNlKHRlc3RO
YW1lKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdl
ci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2Fs
bEZyYW1lc0RpZENoYW5nZSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBjYWxs
RnJhbWUgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZTsKLSAg
ICAgICAgICAgIGlmIChjYWxsRnJhbWUpIHsKLSAgICAgICAgICAgICAgICAvLyBQYXVzaW5nLgot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1hbmFnZXIucGF1c2VSZWFzb24gPT0gImV4Y2VwdGlvbiIpOwotCi0gICAgICAgICAgICAgICAg
dmFyIGZ1bmNOYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iOwot
ICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IGNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRp
b247Ci0gICAgICAgICAgICAgICAgdmFyIGxpbmUgPSBsb2NhdGlvbi5saW5lTnVtYmVyICsgMTsK
LSAgICAgICAgICAgICAgICB2YXIgY29sdW1uID0gbG9jYXRpb24uY29sdW1uTnVtYmVyICsgMTsK
LQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRSAjIiArICgrK3BhdXNl
cykgKyAiIEFUOiAiICsgZnVuY05hbWUgKyAiOiIgKyBsaW5lICsgIjoiICsgY29sdW1uKTsKLSAg
ICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotCi0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIFJlc3VtaW5nLgotICAgICAg
ICAgICAgICAgIGlmIChyZXN1bWVBY3Rpb24gPT0gJ0ZpbmlzaE9uUmVzdW1lJykKLSAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gVGhpcyBpcyBhIHNpZ25hbCBtZWNoYW5pc20gZm9y
IHRoZSB3ZWIgcHJvY2VzcyB0byB0ZWxsIHVzIHRoYXQgdGhlIHRlc3QgaXMgZG9uZS4KLSAgICAg
ICAgLy8gVGhlIHdlYiBwcm9jZXNzIGZpcmVzIHRoZSBzaWduYWwgYnkgZG9pbmcgY29uc29sZS5s
b2coIkRPTkUiKS4KLSAgICAgICAgV2ViSW5zcGVjdG9yLmxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIGZ1bmN0aW9u
KGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGEubWVzc2FnZTsK
LSAgICAgICAgICAgIGlmICghbWVzc2FnZS5wYXJhbWV0ZXJzIHx8IG1lc3NhZ2UucGFyYW1ldGVy
cy5sZW5ndGggIT09IDEpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgaWYg
KG1lc3NhZ2UucGFyYW1ldGVyc1swXS50eXBlICE9PSAic3RyaW5nIiB8fCBtZXNzYWdlLnBhcmFt
ZXRlcnNbMF0uZGVzY3JpcHRpb24gIT09ICJET05FIikKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9KTsK
LQotICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoKTsKLSAgICB9Ci0KLSAgICBkb0V4
Y2VwdGlvblRlc3QoJ3Rlc3RGaW5hbGx5JywgJ0FsbEV4Y2VwdGlvbnMnLCAnSWdub3JlUmVzdW1l
Jyk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAg
ICA8cD5DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIGFsbCBleGNlcHRp
b25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tbmF0aXZlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tbmF0aXZlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmM1OGU1MC4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9u
LW5hdGl2ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAzMTogdGVzdFRocm93aW5nVGhydU5hdGl2ZUNvZGUKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA4OiBUZXN0RXJyb3IKLUNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24g
YWxsIGV4Y2VwdGlvbnMuCi0KLVBBVVNFICMxIEFUOiBkb1Rocm93Ojg6MjIKLVVuY2F1Z2h0IGV4
Y2VwdGlvbiBpbiB0ZXN0IHBhZ2U6IFRlc3RFcnJvciBbYnJlYWstb24tZXhjZXB0aW9uLXRlc3Rz
LmpzOjhdCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVh
ay1vbi1leGNlcHRpb24tbmF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tZXhjZXB0aW9uLW5hdGl2ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA4NGQyYzk2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVhay1vbi1leGNlcHRpb24tbmF0aXZlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3
MiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0
aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAg
ewotICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAg
ICAgICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAg
ICAgIH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVu
Y3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRh
LnNjcmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMk
Ly50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJl
YWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJl
YWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0
TmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFn
ZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNh
bGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2Fs
bEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0g
ICAgICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4K
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAg
IHZhciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsK
LSAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0
aW9uOwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7
Ci0gICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7
Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVz
ZXMpICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0g
ICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQot
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAg
ICAgICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZv
ciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAg
ICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUu
bG9nKCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlv
bihldmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7
Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRl
cnMubGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlm
IChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJh
bWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7
Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci0gICAgfQotCi0gICAgZG9F
eGNlcHRpb25UZXN0KCd0ZXN0VGhyb3dpbmdUaHJ1TmF0aXZlQ29kZScsICdBbGxFeGNlcHRpb25z
JywgJ0lnbm9yZVJlc3VtZScpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2lu
ZyBvbiBhbGwgZXhjZXB0aW9ucy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWlu
LXByb21pc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLWV4cGVjdGVkLnR4dAppbmRleCA0YTAw
YTdhLi5lMTYxNGIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
YnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4t
cHJvbWlzZS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw0OCBAQAogQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDM2OiB0ZXN0VGhyb3dpbmdJblByb21pc2UKIENPTlNPTEUgTUVTU0FHRTogbGluZSAzODog
aW4gcHJvbWlzZQogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgot
Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy4K
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogdGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbgorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDU3OiBpbiBwcm9taXNlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
NjA6IGluIHByb21pc2UudGhlbgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRl
c3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY2OiB0ZXN0VGhyb3dpbmdJblByb21pc2VU
aGVuV2l0aENhdGNoCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjg6IGluIHByb21pc2UKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSA3MTogaW4gcHJvbWlzZS50aGVuCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzQ6IGluIHBy
b21pc2UuY2F0Y2gKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NTogRE9ORQorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDQ0OiB0ZXN0VGhyb3dpbmdJblByb21pc2VXaXRoQ2F0Y2gKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSA0NjogaW4gcHJvbWlzZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93
aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ5OiBpbiBwcm9taXNlLmNhdGNo
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTA6IERPTkUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4
MDogdGVzdFRocm93aW5nSW5Qcm9taXNlV2l0aFJldGhyb3dJbkNhdGNoCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgODI6IGluIHByb21pc2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2lu
ZyBUZXN0RXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4NTogaW4gcHJvbWlzZS5jYXRjaAor
Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdpdGhpbiBQcm9taXNlcyB3aGVuIHBhdXNpbmcgb24g
YWxsIGV4Y2VwdGlvbnMuCiAKLVBBVVNFICMxIEFUOiBkb1Rocm93Ojg6MjIKKworPT0gUnVubmlu
ZyB0ZXN0IHN1aXRlOiBCcmVha09uQW55RXhjZXB0aW9uLlByb21pc2UKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBCcmVha09uQW55RXhjZXB0aW9uLlByb21pc2UuRXhjZXB0aW9uSW5Qcm9taXNlQ29u
c3RydWN0b3IKK1BBU1M6IFNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLgorUEFVU0UgQVQgZG9U
aHJvdzo4OjIyCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBCcmVha09uQW55RXhjZXB0aW9uLlBy
b21pc2UuRXhjZXB0aW9uSW5Qcm9taXNlVGhlbldpdGhvdXRDYXRjaAorUEFTUzogU2hvdWxkIHBh
dXNlIGZvciBleGNlcHRpb24uCitQQVVTRSBBVCBkb1Rocm93Ojg6MjIKKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IEJyZWFrT25BbnlFeGNlcHRpb24uUHJvbWlzZS5FeGNlcHRpb25JblByb21pc2VU
aGVuV2l0aENhdGNoCitQQVNTOiBTaG91bGQgcGF1c2UgZm9yIGV4Y2VwdGlvbi4KK1BBVVNFIEFU
IGRvVGhyb3c6ODoyMgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQnJlYWtPbkFueUV4Y2VwdGlv
bi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZUNhdGNoCitQQVNTOiBTaG91bGQgcGF1c2UgZm9y
IGV4Y2VwdGlvbi4KK1BBVVNFIEFUIGRvVGhyb3c6ODoyMgorCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogQnJlYWtPbkFueUV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZVRoZW5BbmRS
ZXRocm93bkluQ2F0Y2gKK1BBU1M6IFNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLgorUEFVU0Ug
QVQgZG9UaHJvdzo4OjIyCitQQVNTOiBTaG91bGQgcGF1c2UgZm9yIGV4Y2VwdGlvbi4KK1BBVVNF
IEFUIHByb21pc2VDYXRjaDo4NjoxNgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJvdy1p
bi1jYXRjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiOGFmYzguLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJv
dy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0Y2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODA6IHRlc3RUaHJvd2luZ0lu
UHJvbWlzZVdpdGhSZXRocm93SW5DYXRjaAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDgyOiBpbiBw
cm9taXNlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgODU6IGluIHByb21pc2UuY2F0Y2gKLUNoZWNraW5nIHBhdXNlIGxv
Y2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gYWxsIGV4Y2VwdGlvbnMuCi0KLVBBVVNFICMxIEFUOiBk
b1Rocm93Ojg6MjIKLVBBVVNFICMyIEFUOiBwcm9taXNlQ2F0Y2g6ODY6MTYKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJv
dy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0Y2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS1yZXRocm93LWlu
LWNhdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiMTkxNDcuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlv
bi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0Y2guaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDcyICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuL3Jlc291cmNlcy9icmVhay1vbi1leGNlcHRpb24tdGVzdHMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgZnVuY3Rpb24gZG9F
eGNlcHRpb25UZXN0KHRlc3ROYW1lLCBleGNlcHRpb25CcmVha1R5cGUsIHJlc3VtZUFjdGlvbikK
LSAgICB7Ci0gICAgICAgIHZhciBwYXVzZXMgPSAwOwotICAgICAgICB2YXIgaW5kZXggPSAwOwot
Ci0gICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RDYXNlKHRlc3QpIHsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldFRpbWVvdXQoIiArIHRlc3QgKyAiLCA1MCkiKTsK
LSAgICAgICAgfQotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVk
LCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIHNjcmlwdE9iamVjdCA9IGV2ZW50
LmRhdGEuc2NyaXB0OwotICAgICAgICAgICAgaWYgKCEvYnJlYWstb24tZXhjZXB0aW9uLXRlc3Rz
XC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgICAgICBpZiAoZXhjZXB0aW9uQnJlYWtUeXBlID09ICdBbGxFeGNlcHRpb25zJykK
LSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbEV4Y2VwdGlv
bnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxVbmNhdWdodEV4Y2VwdGlv
bnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIHJ1blRlc3RDYXNl
KHRlc3ROYW1lKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZl
bnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZh
ciBjYWxsRnJhbWUgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFt
ZTsKLSAgICAgICAgICAgIGlmIChjYWxsRnJhbWUpIHsKLSAgICAgICAgICAgICAgICAvLyBQYXVz
aW5nLgotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1hbmFnZXIucGF1c2VSZWFzb24gPT0gImV4Y2VwdGlvbiIpOwotCi0gICAgICAgICAg
ICAgICAgdmFyIGZ1bmNOYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91
cz4iOwotICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IGNhbGxGcmFtZS5zb3VyY2VDb2Rl
TG9jYXRpb247Ci0gICAgICAgICAgICAgICAgdmFyIGxpbmUgPSBsb2NhdGlvbi5saW5lTnVtYmVy
ICsgMTsKLSAgICAgICAgICAgICAgICB2YXIgY29sdW1uID0gbG9jYXRpb24uY29sdW1uTnVtYmVy
ICsgMTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRSAjIiArICgr
K3BhdXNlcykgKyAiIEFUOiAiICsgZnVuY05hbWUgKyAiOiIgKyBsaW5lICsgIjoiICsgY29sdW1u
KTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgp
OwotCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIFJlc3VtaW5nLgot
ICAgICAgICAgICAgICAgIGlmIChyZXN1bWVBY3Rpb24gPT0gJ0ZpbmlzaE9uUmVzdW1lJykKLSAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gVGhpcyBpcyBhIHNpZ25hbCBtZWNoYW5p
c20gZm9yIHRoZSB3ZWIgcHJvY2VzcyB0byB0ZWxsIHVzIHRoYXQgdGhlIHRlc3QgaXMgZG9uZS4K
LSAgICAgICAgLy8gVGhlIHdlYiBwcm9jZXNzIGZpcmVzIHRoZSBzaWduYWwgYnkgZG9pbmcgY29u
c29sZS5sb2coIkRPTkUiKS4KLSAgICAgICAgV2ViSW5zcGVjdG9yLmxvZ01hbmFnZXIuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIGZ1
bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGEubWVz
c2FnZTsKLSAgICAgICAgICAgIGlmICghbWVzc2FnZS5wYXJhbWV0ZXJzIHx8IG1lc3NhZ2UucGFy
YW1ldGVycy5sZW5ndGggIT09IDEpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgaWYgKG1lc3NhZ2UucGFyYW1ldGVyc1swXS50eXBlICE9PSAic3RyaW5nIiB8fCBtZXNzYWdl
LnBhcmFtZXRlcnNbMF0uZGVzY3JpcHRpb24gIT09ICJET05FIikKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAg
ICB9KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoKTsKLSAgICB9Ci0KLSAg
ICBkb0V4Y2VwdGlvblRlc3QoJ3Rlc3RUaHJvd2luZ0luUHJvbWlzZVdpdGhSZXRocm93SW5DYXRj
aCcsICdBbGxFeGNlcHRpb25zJywgJ0ZpbmlzaE9uUmVzdW1lJyk7Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBs
b2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIGFsbCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1v
bi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlz
ZS10aGVuLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDY3MGE0
ZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
ZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogdGVzdFRocm93aW5n
SW5Qcm9taXNlVGhlbgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU3OiBpbiBwcm9taXNlCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNjA6IGluIHByb21pc2UudGhlbgotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4g
cGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy4KLQotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhj
ZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4t
cHJvbWlzZS10aGVuLXdpdGgtY2F0Y2gtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhZTc0MzFjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLXdpdGgtY2F0
Y2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDY2OiB0ZXN0VGhyb3dpbmdJblByb21pc2VUaGVuV2l0aENhdGNoCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNjg6IGluIHByb21pc2UKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3
MTogaW4gcHJvbWlzZS50aGVuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVz
dEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzQ6IGluIHByb21pc2UuY2F0Y2gKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA3NTogRE9ORQotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4g
cGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy4KLQotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhj
ZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Ut
dGhlbi13aXRoLWNhdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlODk3
YmIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9u
LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4td2l0aC1jYXRjaC5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNzIgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10
ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBmdW5j
dGlvbiBkb0V4Y2VwdGlvblRlc3QodGVzdE5hbWUsIGV4Y2VwdGlvbkJyZWFrVHlwZSwgcmVzdW1l
QWN0aW9uKQotICAgIHsKLSAgICAgICAgdmFyIHBhdXNlcyA9IDA7Ci0gICAgICAgIHZhciBpbmRl
eCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuVGVzdENhc2UodGVzdCkgewotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCgiICsgdGVzdCArICIs
IDUwKSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdl
ci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2Ny
aXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0
ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0gICAgICAgICAgICBpZiAoIS9icmVhay1vbi1leGNlcHRp
b24tdGVzdHNcLmpzJC8udGVzdChzY3JpcHRPYmplY3QudXJsKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChleGNlcHRpb25CcmVha1R5cGUgPT0gJ0FsbEV4Y2Vw
dGlvbnMnKQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxs
RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0
RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgcnVu
VGVzdENhc2UodGVzdE5hbWUpOwotICAgICAgICB9KTsKLQotICAgICAgICBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFu
YWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgewotICAgICAg
ICAgICAgdmFyIGNhbGxGcmFtZSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZl
Q2FsbEZyYW1lOwotICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSkgewotICAgICAgICAgICAgICAg
IC8vIFBhdXNpbmcuCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5wYXVzZVJlYXNvbiA9PSAiZXhjZXB0aW9uIik7Ci0KLSAg
ICAgICAgICAgICAgICB2YXIgZnVuY05hbWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8
YW5vbnltb3VzPiI7Ci0gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gY2FsbEZyYW1lLnNv
dXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAgICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxp
bmVOdW1iZXIgKyAxOwotICAgICAgICAgICAgICAgIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1
bW5OdW1iZXIgKyAxOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNF
ICMiICsgKCsrcGF1c2VzKSArICIgQVQ6ICIgKyBmdW5jTmFtZSArICI6IiArIGxpbmUgKyAiOiIg
KyBjb2x1bW4pOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIu
cmVzdW1lKCk7Ci0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gUmVz
dW1pbmcuCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VtZUFjdGlvbiA9PSAnRmluaXNoT25SZXN1
bWUnKQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAgICAvLyBUaGlzIGlzIGEgc2lnbmFs
IG1lY2hhbmlzbSBmb3IgdGhlIHdlYiBwcm9jZXNzIHRvIHRlbGwgdXMgdGhhdCB0aGUgdGVzdCBp
cyBkb25lLgotICAgICAgICAvLyBUaGUgd2ViIHByb2Nlc3MgZmlyZXMgdGhlIHNpZ25hbCBieSBk
b2luZyBjb25zb2xlLmxvZygiRE9ORSIpLgotICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdl
ci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VB
ZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQu
ZGF0YS5tZXNzYWdlOwotICAgICAgICAgICAgaWYgKCFtZXNzYWdlLnBhcmFtZXRlcnMgfHwgbWVz
c2FnZS5wYXJhbWV0ZXJzLmxlbmd0aCAhPT0gMSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICBpZiAobWVzc2FnZS5wYXJhbWV0ZXJzWzBdLnR5cGUgIT09ICJzdHJpbmciIHx8
IG1lc3NhZ2UucGFyYW1ldGVyc1swXS5kZXNjcmlwdGlvbiAhPT0gIkRPTkUiKQotICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
Ci0gICAgICAgIH0pOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOwotICAg
IH0KLQotICAgIGRvRXhjZXB0aW9uVGVzdCgndGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbldpdGhD
YXRjaCcsICdBbGxFeGNlcHRpb25zJywgJ0lnbm9yZVJlc3VtZScpOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2Ug
bG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy48L3A+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4u
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTFlZmIxMS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93
LWluLXByb21pc2UtdGhlbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotPCFk
b2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4v
cmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBmdW5jdGlvbiBkb0V4Y2VwdGlvblRlc3QodGVzdE5h
bWUsIGV4Y2VwdGlvbkJyZWFrVHlwZSwgcmVzdW1lQWN0aW9uKQotICAgIHsKLSAgICAgICAgdmFy
IHBhdXNlcyA9IDA7Ci0gICAgICAgIHZhciBpbmRleCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24g
cnVuVGVzdENhc2UodGVzdCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgic2V0VGltZW91dCgiICsgdGVzdCArICIsIDUwKSIpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7
Ci0gICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0gICAg
ICAgICAgICBpZiAoIS9icmVhay1vbi1leGNlcHRpb24tdGVzdHNcLmpzJC8udGVzdChzY3JpcHRP
YmplY3QudXJsKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChl
eGNlcHRpb25CcmVha1R5cGUgPT0gJ0FsbEV4Y2VwdGlvbnMnKQotICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJs
ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJs
ZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgcnVuVGVzdENhc2UodGVzdE5hbWUpOwotICAgICAg
ICB9KTsKLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hh
bmdlLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotICAgICAgICAgICAgaWYg
KGNhbGxGcmFtZSkgewotICAgICAgICAgICAgICAgIC8vIFBhdXNpbmcuCi0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5wYXVz
ZVJlYXNvbiA9PSAiZXhjZXB0aW9uIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgZnVuY05hbWUg
PSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiI7Ci0gICAgICAgICAgICAg
ICAgdmFyIGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAg
ICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOwotICAgICAgICAgICAg
ICAgIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAxOwotCi0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNFICMiICsgKCsrcGF1c2VzKSArICIgQVQ6ICIg
KyBmdW5jTmFtZSArICI6IiArIGxpbmUgKyAiOiIgKyBjb2x1bW4pOwotICAgICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0KLSAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gUmVzdW1pbmcuCi0gICAgICAgICAgICAgICAgaWYg
KHJlc3VtZUFjdGlvbiA9PSAnRmluaXNoT25SZXN1bWUnKQotICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsK
LQotICAgICAgICAvLyBUaGlzIGlzIGEgc2lnbmFsIG1lY2hhbmlzbSBmb3IgdGhlIHdlYiBwcm9j
ZXNzIHRvIHRlbGwgdXMgdGhhdCB0aGUgdGVzdCBpcyBkb25lLgotICAgICAgICAvLyBUaGUgd2Vi
IHByb2Nlc3MgZmlyZXMgdGhlIHNpZ25hbCBieSBkb2luZyBjb25zb2xlLmxvZygiRE9ORSIpLgot
ICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5Mb2dNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAg
ICAgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YS5tZXNzYWdlOwotICAgICAgICAgICAg
aWYgKCFtZXNzYWdlLnBhcmFtZXRlcnMgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzLmxlbmd0aCAhPT0g
MSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAobWVzc2FnZS5wYXJh
bWV0ZXJzWzBdLnR5cGUgIT09ICJzdHJpbmciIHx8IG1lc3NhZ2UucGFyYW1ldGVyc1swXS5kZXNj
cmlwdGlvbiAhPT0gIkRPTkUiKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIElu
c3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOwotICAgIH0KLQotICAgIGRvRXhjZXB0aW9uVGVzdCgn
dGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbicsICdBbGxFeGNlcHRpb25zJywgJ0ZpbmlzaE9uUmVz
dW1lJyk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
LSAgICA8cD5DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIGFsbCBleGNl
cHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS13aXRo
LWNhdGNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVh
ay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS13aXRoLWNhdGNoLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWI3OGRhYS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXBy
b21pc2Utd2l0aC1jYXRjaC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAg
QEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NDogdGVzdFRocm93aW5nSW5Qcm9taXNlV2l0aENh
dGNoCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDY6IGluIHByb21pc2UKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0OTog
aW4gcHJvbWlzZS5jYXRjaAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUwOiBET05FCi1DaGVja2lu
ZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIGFsbCBleGNlcHRpb25zLgotCi1QQVVT
RSAjMSBBVDogZG9UaHJvdzo4OjIyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS13aXRoLWNhdGNo
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9u
LXRocm93LWluLXByb21pc2Utd2l0aC1jYXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxMzY4ZDc0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS13aXRoLWNhdGNoLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWstb24tZXhj
ZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewot
ICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBl
LCByZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAg
dmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0
ZXN0ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5F
dmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBzY3Jp
cHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFrLW9u
LWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAn
QWxsRXhjZXB0aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFu
YWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxs
VW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAg
ICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7
Ci0gICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdl
ci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAg
ICAgICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRpb24i
KTsKLQotICAgICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5h
bWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxs
RnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gbG9j
YXRpb24ubGluZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0
aW9uLmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiUEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGlu
ZSArICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TWFuYWdlci5yZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAvLyBSZXN1bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5p
c2hPblJlc3VtZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMg
YSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRo
ZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2ln
bmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5s
b2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQu
TWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2Ug
PSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVy
cyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0
cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdl
KCk7Ci0gICAgfQotCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0VGhyb3dpbmdJblByb21pc2VX
aXRoQ2F0Y2gnLCAnQWxsRXhjZXB0aW9ucycsICdJZ25vcmVSZXN1bWUnKTsKLX0KLTwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxwPkNoZWNraW5nIHBh
dXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gYWxsIGV4Y2VwdGlvbnMuPC9wPgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UuaHRtbApp
bmRleCAzNWE2ZmYyLi45NGE5ZDU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWlu
LXByb21pc2UuaHRtbApAQCAtMSw3MiArMSwxMTEgQEAKLTwhZG9jdHlwZSBodG1sPgorPCFET0NU
WVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4vcmVz
b3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRl
c3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1bmN0
aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBlLCByZXN1bWVB
Y3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAgdmFyIGluZGV4
ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0ZXN0ICsgIiwg
NTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2Vy
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3Jp
cHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRPYmplY3Qg
PSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFrLW9uLWV4Y2VwdGlv
bi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAnQWxsRXhjZXB0
aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxF
eGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRF
eGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBydW5U
ZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5h
Z2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAg
ICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVD
YWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAg
Ly8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRpb24iKTsKLQotICAg
ICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIjxh
bm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291
cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gbG9jYXRpb24ubGlu
ZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVt
bk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0Ug
IyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGluZSArICI6IiAr
IGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5y
ZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBSZXN1
bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5pc2hPblJlc3Vt
ZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CitU
ZXN0UGFnZS5hbGxvd1VuY2F1Z2h0RXhjZXB0aW9ucyA9IHRydWU7CisKK2Z1bmN0aW9uIHRlc3Qo
KQoreworICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFr
cG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3Qu
Y3JlYXRlQXN5bmNTdWl0ZSgiQnJlYWtPbkFueUV4Y2VwdGlvbi5Qcm9taXNlIik7CisKKyAgICBJ
bnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBmdW5jdGlvbiBhZGRUZXN0Q2FzZSh7bmFtZSwg
ZGVzY3JpcHRpb24sIGV4cHJlc3Npb259KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdDogKHJlc29s
dmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoZXhwcmVzc2lvbik7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5h
Z2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVh
c29uID09PSAiZXhjZXB0aW9uIiwgIlNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLiIpOworICAg
ICAgICAgICAgICAgICAgICBsZXQgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFu
YWdlci5hY3RpdmVDYWxsRnJhbWU7CisgICAgICAgICAgICAgICAgICAgIGxldCBuYW1lID0gY2Fs
bEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iOworICAgICAgICAgICAgICAgICAg
ICBsZXQgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOworICAgICAgICAg
ICAgICAgICAgICBsZXQgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOworICAgICAgICAg
ICAgICAgICAgICBsZXQgY29sdW1uID0gbG9jYXRpb24uY29sdW1uTnVtYmVyICsgMTsKKyAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYFBBVVNFIEFUICR7bmFtZX06JHtsaW5l
fToke2NvbHVtbn1gKTsKKyAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TWFuYWdlci5yZXN1bWUoKS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBz
aWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0
ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFs
IGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVz
c2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBl
dmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8
fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmlu
ZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7
CiAgICAgfQogCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0VGhyb3dpbmdJblByb21pc2UnLCAn
QWxsRXhjZXB0aW9ucycsICdGaW5pc2hPblJlc3VtZScpOworICAgIGFkZFRlc3RDYXNlKHsKKyAg
ICAgICAgbmFtZTogIkJyZWFrT25BbnlFeGNlcHRpb24uUHJvbWlzZS5FeGNlcHRpb25JblByb21p
c2VDb25zdHJ1Y3RvciIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQnJlYWsgb24gYW4gZXhjZXB0
aW9uIHRocm93biBpbiBQcm9taXNlIGNvbnN0cnVjdG9yLiIsCisgICAgICAgIGV4cHJlc3Npb246
ICJzZXRUaW1lb3V0KHRlc3RUaHJvd2luZ0luUHJvbWlzZSkiLAorICAgIH0pOworCisgICAgYWRk
VGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQnJlYWtPbkFueUV4Y2VwdGlvbi5Qcm9taXNlLkV4
Y2VwdGlvbkluUHJvbWlzZVRoZW5XaXRob3V0Q2F0Y2giLAorICAgICAgICBkZXNjcmlwdGlvbjog
IkJyZWFrIG9uIGFuIGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJvbWlzZSB0aGVuIGhhbmRsZXIgd2l0
aCBubyBjYXRjaCBoYW5kbGVyLiIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRl
c3RUaHJvd2luZ0luUHJvbWlzZVRoZW4pIiwKKyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIkJyZWFrT25BbnlFeGNlcHRpb24uUHJvbWlzZS5FeGNlcHRpb25JblBy
b21pc2VUaGVuV2l0aENhdGNoIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJCcmVhayBvbiBhbiBl
eGNlcHRpb24gdGhyb3duIGluIFByb21pc2UgdGhlbiBoYW5kbGVyIHdpdGggYSBjYXRjaCBoYW5k
bGVyLiIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RUaHJvd2luZ0luUHJv
bWlzZVRoZW5XaXRoQ2F0Y2gpIiwKKyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIkJyZWFrT25BbnlFeGNlcHRpb24uUHJvbWlzZS5FeGNlcHRpb25JblByb21pc2VD
YXRjaCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQnJlYWsgb24gYW4gZXhjZXB0aW9uIHRocm93
biBpbiBQcm9taXNlIGNhdGNoIHdpdGggbm8gdGhlbiBoYW5kbGVyLiIsCisgICAgICAgIGV4cHJl
c3Npb246ICJzZXRUaW1lb3V0KHRlc3RUaHJvd2luZ0luUHJvbWlzZVdpdGhDYXRjaCkiLAorICAg
IH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQnJlYWtPbkFu
eUV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZVRoZW5BbmRSZXRocm93bkluQ2F0
Y2giLAorICAgICAgICBkZXNjcmlwdGlvbjogIkJyZWFrIG9uIGFuIGV4Y2VwdGlvbiB0aHJvd24g
aW4gUHJvbWlzZSB0aGVuIGhhbmRsZXIsIGFuZCB0aGVuIGFnYWluIHdoZW4gcmV0aHJvd24gaW4g
Y2F0Y2ggaGFuZGxlci4iLAorICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KHRlc3RU
aHJvd2luZ0luUHJvbWlzZVdpdGhSZXRocm93SW5DYXRjaCkiKTsKKworICAgICAgICAgICAgZnVu
Y3Rpb24gbG9nUGF1c2VMb2NhdGlvbigpIHsKKyAgICAgICAgICAgICAgICBsZXQgY2FsbEZyYW1l
ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7CisgICAgICAg
ICAgICAgICAgbGV0IG5hbWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3Vz
PiI7CisgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVM
b2NhdGlvbjsKKyAgICAgICAgICAgICAgICBsZXQgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIg
KyAxOworICAgICAgICAgICAgICAgIGxldCBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIg
KyAxOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGBQQVVTRSBBVCAke25hbWV9
OiR7bGluZX06JHtjb2x1bW59YCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxldCBw
aGFzZSA9IDA7CisgICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5F
dmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBp
ZiAoIVdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBwaGFzZSsrOworCisgICAg
ICAgICAgICAgICAgLy8gUGF1c2UgYXQgdGhyb3cgaW5zaWRlIHRoZW4uCisgICAgICAgICAgICAg
ICAgaWYgKHBoYXNlID09PSAxKSB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09PSAi
ZXhjZXB0aW9uIiwgIlNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLiIpOworICAgICAgICAgICAg
ICAgICAgICBsb2dQYXVzZUxvY2F0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBQYXVzZSBhdCByZS10
aHJvdyBpbnNpZGUgY2F0Y2guCisgICAgICAgICAgICAgICAgaWYgKHBoYXNlID09PSAyKSB7Cisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09PSAiZXhjZXB0aW9uIiwgIlNob3VsZCBwYXVz
ZSBmb3IgZXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICBsb2dQYXVzZUxvY2F0aW9u
KCk7CisgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVz
dW1lKCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
TWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBsaXN0ZW5lcik7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgICAgIH0sIHJlamVjdCk7
CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5k
RmluaXNoKCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIGFsbCBl
eGNlcHRpb25zLjwvcD4KKzxwPkNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aXRoaW4gUHJvbWlz
ZXMgd2hlbiBwYXVzaW5nIG9uIGFsbCBleGNlcHRpb25zLjwvcD4KIDwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNl
cHRpb24td2luZG93LW9uZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi13aW5kb3ctb25lcnJvci1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0YmU2MTkuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi13aW5kb3ctb25l
cnJvci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA4OiB3aW5kb3cub25lcnJvcjogVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgOTog
RE9ORQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6IFRlc3RFcnJvcgotQ2hlY2tpbmcgcGF1c2Ug
bG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy4KLQotUEFVU0UgIzEgQVQ6
IGRvVGhyb3c6ODoyMgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9yLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkMTM3N2UuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi13aW5kb3ctb25l
cnJvci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2Jy
ZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgotd2luZG93Lm9u
ZXJyb3IgPSBmdW5jdGlvbihlKSB7Ci0gICAgY29uc29sZS5sb2coIndpbmRvdy5vbmVycm9yOiAi
ICsgZSk7Ci0gICAgY29uc29sZS5sb2coIkRPTkUiKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpIHsK
LSAgICBmdW5jdGlvbiBkb0V4Y2VwdGlvblRlc3QodGVzdE5hbWUsIGV4Y2VwdGlvbkJyZWFrVHlw
ZSwgcmVzdW1lQWN0aW9uKQotICAgIHsKLSAgICAgICAgdmFyIHBhdXNlcyA9IDA7Ci0gICAgICAg
IHZhciBpbmRleCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuVGVzdENhc2UodGVzdCkgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCgiICsg
dGVzdCArICIsIDUwKSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIu
RXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgc2Ny
aXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0gICAgICAgICAgICBpZiAoIS9icmVhay1v
bi1leGNlcHRpb24tdGVzdHNcLmpzJC8udGVzdChzY3JpcHRPYmplY3QudXJsKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChleGNlcHRpb25CcmVha1R5cGUgPT0g
J0FsbEV4Y2VwdGlvbnMnKQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1h
bmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFs
bFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAg
ICAgICAgcnVuVGVzdENhc2UodGVzdE5hbWUpOwotICAgICAgICB9KTsKLQotICAgICAgICBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkg
ewotICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFn
ZXIuYWN0aXZlQ2FsbEZyYW1lOwotICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSkgewotICAgICAg
ICAgICAgICAgIC8vIFBhdXNpbmcuCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5wYXVzZVJlYXNvbiA9PSAiZXhjZXB0aW9u
Iik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgZnVuY05hbWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25O
YW1lIHx8ICI8YW5vbnltb3VzPiI7Ci0gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gY2Fs
bEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAgICAgICAgICB2YXIgbGluZSA9IGxv
Y2F0aW9uLmxpbmVOdW1iZXIgKyAxOwotICAgICAgICAgICAgICAgIHZhciBjb2x1bW4gPSBsb2Nh
dGlvbi5jb2x1bW5OdW1iZXIgKyAxOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIlBBVVNFICMiICsgKCsrcGF1c2VzKSArICIgQVQ6ICIgKyBmdW5jTmFtZSArICI6IiArIGxp
bmUgKyAiOiIgKyBjb2x1bW4pOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1hbmFnZXIucmVzdW1lKCk7Ci0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgLy8gUmVzdW1pbmcuCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VtZUFjdGlvbiA9PSAnRmlu
aXNoT25SZXN1bWUnKQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAgICAvLyBUaGlzIGlz
IGEgc2lnbmFsIG1lY2hhbmlzbSBmb3IgdGhlIHdlYiBwcm9jZXNzIHRvIHRlbGwgdXMgdGhhdCB0
aGUgdGVzdCBpcyBkb25lLgotICAgICAgICAvLyBUaGUgd2ViIHByb2Nlc3MgZmlyZXMgdGhlIHNp
Z25hbCBieSBkb2luZyBjb25zb2xlLmxvZygiRE9ORSIpLgotICAgICAgICBXZWJJbnNwZWN0b3Iu
bG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50
Lk1lc3NhZ2VBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBtZXNzYWdl
ID0gZXZlbnQuZGF0YS5tZXNzYWdlOwotICAgICAgICAgICAgaWYgKCFtZXNzYWdlLnBhcmFtZXRl
cnMgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzLmxlbmd0aCAhPT0gMSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICBpZiAobWVzc2FnZS5wYXJhbWV0ZXJzWzBdLnR5cGUgIT09ICJz
dHJpbmciIHx8IG1lc3NhZ2UucGFyYW1ldGVyc1swXS5kZXNjcmlwdGlvbiAhPT0gIkRPTkUiKQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFn
ZSgpOwotICAgIH0KLQotICAgIGRvRXhjZXB0aW9uVGVzdCgnZG9UaHJvdycsICdBbGxFeGNlcHRp
b25zJywgJ0lnbm9yZVJlc3VtZScpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1
c2luZyBvbiBhbGwgZXhjZXB0aW9ucy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLmh0bWwK
aW5kZXggMDJkZWI4Mi4uY2I2ZDYwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24uaHRtbApAQCAtMSw3MiArMSw2NSBAQAot
PCFkb2N0eXBlIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+Ci08c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9icmVhay1vbi1leGNlcHRpb24tdGVzdHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWZ1bmN0
aW9uIHRlc3QoKSB7Ci0gICAgZnVuY3Rpb24gZG9FeGNlcHRpb25UZXN0KHRlc3ROYW1lLCBleGNl
cHRpb25CcmVha1R5cGUsIHJlc3VtZUFjdGlvbikKLSAgICB7Ci0gICAgICAgIHZhciBwYXVzZXMg
PSAwOwotICAgICAgICB2YXIgaW5kZXggPSAwOwotCi0gICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RD
YXNlKHRlc3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNl
dFRpbWVvdXQoIiArIHRlc3QgKyAiLCA1MCkiKTsKLSAgICAgICAgfQotCi0gICAgICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAg
ICAgICAgdmFyIHNjcmlwdE9iamVjdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwotICAgICAgICAgICAg
aWYgKCEvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzXC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVy
bCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAoZXhjZXB0aW9u
QnJlYWtUeXBlID09ICdBbGxFeGNlcHRpb25zJykKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNYW5hZ2VyLmFsbEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFs
c2U7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTWFuYWdlci5hbGxVbmNhdWdodEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFs
c2U7Ci0KLSAgICAgICAgICAgIHJ1blRlc3RDYXNlKHRlc3ROYW1lKTsKLSAgICAgICAgfSk7Ci0K
LSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgZnVu
Y3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZTsKLSAgICAgICAgICAgIGlmIChjYWxsRnJh
bWUpIHsKLSAgICAgICAgICAgICAgICAvLyBQYXVzaW5nLgotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0KFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucGF1c2VSZWFzb24g
PT0gImV4Y2VwdGlvbiIpOwotCi0gICAgICAgICAgICAgICAgdmFyIGZ1bmNOYW1lID0gY2FsbEZy
YW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iOwotICAgICAgICAgICAgICAgIHZhciBs
b2NhdGlvbiA9IGNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRpb247Ci0gICAgICAgICAgICAgICAg
dmFyIGxpbmUgPSBsb2NhdGlvbi5saW5lTnVtYmVyICsgMTsKLSAgICAgICAgICAgICAgICB2YXIg
Y29sdW1uID0gbG9jYXRpb24uY29sdW1uTnVtYmVyICsgMTsKLQotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJQQVVTRSAjIiArICgrK3BhdXNlcykgKyAiIEFUOiAiICsgZnVuY05h
bWUgKyAiOiIgKyBsaW5lICsgIjoiICsgY29sdW1uKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotCi0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIC8vIFJlc3VtaW5nLgotICAgICAgICAgICAgICAgIGlmIChyZXN1bWVB
Y3Rpb24gPT0gJ0ZpbmlzaE9uUmVzdW1lJykKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKK1Rlc3RQYWdlLmFsbG93VW5jYXVnaHRFeGNlcHRpb25zID0g
dHJ1ZTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFu
YWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOworCisgICAgbGV0
IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJCcmVha09uQW55RXhjZXB0
aW9uIik7CisKKyAgICBmdW5jdGlvbiBhZGRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4
cHJlc3Npb259KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5h
bWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4g
eworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoZXhwcmVzc2lv
bik7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zaW5nbGVG
aXJlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNl
ZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
VGhhdChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09PSAiZXhjZXB0
aW9uIiwgIlNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgICAg
ICBsZXQgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxs
RnJhbWU7CisgICAgICAgICAgICAgICAgICAgIGxldCBuYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9u
TmFtZSB8fCAiPGFub255bW91cz4iOworICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb24g
PSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOworICAgICAgICAgICAgICAgICAgICBsZXQg
bGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOworICAgICAgICAgICAgICAgICAgICBsZXQg
Y29sdW1uID0gbG9jYXRpb24uY29sdW1uTnVtYmVyICsgMTsKKyAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coYFBBVVNFIEFUICR7bmFtZX06JHtsaW5lfToke2NvbHVtbn1gKTsK
KyAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUo
KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNt
IGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0g
ICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNv
bGUubG9nKCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5j
dGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3Nh
Z2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFt
ZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
IGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5w
YXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAg
fSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7CiAgICAgfQogCi0gICAg
ZG9FeGNlcHRpb25UZXN0KCdkb1Rocm93JywgJ0FsbEV4Y2VwdGlvbnMnLCAnSWdub3JlUmVzdW1l
Jyk7CisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQnJlYWtPbkFueUV4Y2VwdGlv
bi5VbmNhdWdodEV4Y2VwdGlvbkJhc2ljIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJCcmVhayBv
biBhbiB1bmNhdWdodCBleGNlcHRpb24gdGhyb3duIGluIGEgZnVuY3Rpb24uIiwKKyAgICAgICAg
ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZG9UaHJvdykiLAorICAgIH0pOworCisgICAgYWRkVGVz
dENhc2UoeworICAgICAgICBuYW1lOiAiQnJlYWtPbkFueUV4Y2VwdGlvbi5VbmNhdWdodEV4Y2Vw
dGlvbkluRmluYWxseSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQnJlYWsgb24gYW4gdW5jYXVn
aHQgZXhjZXB0aW9uIHRocm93biBpbiBhIGZpbmFsbHkgYmxvY2suIiwKKyAgICAgICAgZXhwcmVz
c2lvbjogInNldFRpbWVvdXQodGVzdEZpbmFsbHkpIiwKKyAgICB9KTsKKworICAgIGFkZFRlc3RD
YXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25BbnlFeGNlcHRpb24uVW5jYXVnaHRFeGNlcHRp
b25UaHJ1TmF0aXZlQ29kZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQnJlYWsgb24gYW4gdW5j
YXVnaHQgZXhjZXB0aW9uIHRocm93biB0aHJ1IG5hdGl2ZSBjb2RlIChNYXAucHJvdG90eXBlLmZv
ckVhY2gpLiIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RUaHJvd2luZ1Ro
cnVOYXRpdmVDb2RlKSIsCisgICAgfSk7CisKKyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJCcmVha09uQW55RXhjZXB0aW9uLkNhdWdodEV4Y2VwdGlvbiIsCisgICAgICAgIGRlc2Ny
aXB0aW9uOiAiQnJlYWsgb24gYSBjYXVnaHQgZXhjZXB0aW9uLiIsCisgICAgICAgIGV4cHJlc3Np
b246ICJzZXRUaW1lb3V0KHRlc3RDYXRjaCkiLAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVz
dENhc2VzQW5kRmluaXNoKCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5n
IG9uIGFsbCBleGNlcHRpb25zLjwvcD4KKzxwPkNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVu
IHBhdXNpbmcgb24gYWxsIGV4Y2VwdGlvbnMuPC9wPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4
Y2VwdGlvbi1jYXRjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWNhdGNoLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNiZWFlNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWNhdGNoLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDEyOiB0ZXN0Q2F0Y2gKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBU
ZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNjogY2F0Y2ggVGVzdEVycm9yCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTg6IERPTkUKLUNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVu
IHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tY2F0Y2guaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNl
cHRpb24tY2F0Y2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTdmMzIyNi4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5j
YXVnaHQtZXhjZXB0aW9uLWNhdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBA
Ci08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi9yZXNvdXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0
ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAg
ICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmdW5j
dGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQot
ICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZl
bnQpIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsK
LSAgICAgICAgICAgIGlmICghL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNj
cmlwdE9iamVjdC51cmwpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAg
aWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAgICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5k
aXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5k
aXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0g
ICAgICAgIH0pOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNE
aWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0g
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAg
ICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2Vy
LnBhdXNlUmVhc29uID09ICJleGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAgIHZhciBmdW5j
TmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAg
ICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAg
ICAgICAgICAgICAgIHZhciBsaW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7Ci0gICAgICAg
ICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBB
VDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQotICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAgICAgICAgICAg
ICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2Vi
IHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRo
ZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05F
IikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkg
ewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAg
ICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3Ro
ICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdl
LnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBd
LmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci0gICAgfQotCi0gICAgZG9FeGNlcHRpb25U
ZXN0KCd0ZXN0Q2F0Y2gnLCAnVW5jYXVnaHRFeGNlcHRpb25zJywgJ0lnbm9yZVJlc3VtZScpOwot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+
Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRp
b25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlv
bi1leHBlY3RlZC50eHQKaW5kZXggMzFkY2EyOC4uYWMyYWU5YSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVu
Y2F1Z2h0LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKQEAgLTEsNyArMSwzNSBAQAogQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgogQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDg6IFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIyOiB0ZXN0RmluYWxseQorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDI2OiBmaW5hbGx5CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODogVGVzdEVycm9yCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMzE6IHRlc3RUaHJvd2luZ1RocnVOYXRpdmVDb2RlCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgODogVGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IHRlc3RDYXRjaAor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE2OiBjYXRjaCBUZXN0RXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxODog
RE9ORQogQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBl
eGNlcHRpb25zLgogCi1QQVVTRSAjMSBBVDogZG9UaHJvdzo4OjIyCisKKz09IFJ1bm5pbmcgdGVz
dCBzdWl0ZTogQnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9uCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
QnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9uLlVuY2F1Z2h0RXhjZXB0aW9uQmFzaWMKK1BBU1M6IFNo
b3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLgorUEFVU0UgQVQgZG9UaHJvdzo4OjIyCitVbmNhdWdo
dCBleGNlcHRpb24gaW4gdGVzdCBwYWdlOiBUZXN0RXJyb3IgW2JyZWFrLW9uLWV4Y2VwdGlvbi10
ZXN0cy5qczo4XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQnJlYWtPblVuY2F1Z2h0RXhjZXB0
aW9uLlVuY2F1Z2h0RXhjZXB0aW9uSW5GaW5hbGx5CitQQVNTOiBTaG91bGQgcGF1c2UgZm9yIGV4
Y2VwdGlvbi4KK1BBVVNFIEFUIGRvVGhyb3c6ODoyMgogVW5jYXVnaHQgZXhjZXB0aW9uIGluIHRl
c3QgcGFnZTogVGVzdEVycm9yIFticmVhay1vbi1leGNlcHRpb24tdGVzdHMuanM6OF0KIAorLS0g
UnVubmluZyB0ZXN0IGNhc2U6IEJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5VbmNhdWdodEV4Y2Vw
dGlvblRocnVOYXRpdmVDb2RlCitQQVNTOiBTaG91bGQgcGF1c2UgZm9yIGV4Y2VwdGlvbi4KK1BB
VVNFIEFUIGRvVGhyb3c6ODoyMgorVW5jYXVnaHQgZXhjZXB0aW9uIGluIHRlc3QgcGFnZTogVGVz
dEVycm9yIFticmVhay1vbi1leGNlcHRpb24tdGVzdHMuanM6OF0KKworLS0gUnVubmluZyB0ZXN0
IGNhc2U6IEJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5DYXVnaHRFeGNlcHRpb24KK1BBU1M6IFNo
b3VsZCBub3QgcGF1c2UsIGV4Y2VwdGlvbiB3YXMgY2F1Z2h0LgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWZp
bmFsbHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
LW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1maW5hbGx5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMjViZDFhYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWZpbmFsbHktZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgMjI6IHRlc3RGaW5hbGx5Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVz
dEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjY6IGZpbmFsbHkKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA4OiBUZXN0RXJyb3IKLUNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNp
bmcgb24gdW5jYXVnaHQgZXhjZXB0aW9ucy4KLQotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgot
VW5jYXVnaHQgZXhjZXB0aW9uIGluIHRlc3QgcGFnZTogVGVzdEVycm9yIFticmVhay1vbi1leGNl
cHRpb24tdGVzdHMuanM6OF0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1maW5hbGx5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWZpbmFs
bHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjBiMzkzMy4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhj
ZXB0aW9uLWZpbmFsbHkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLTwhZG9j
dHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL3Jl
c291cmNlcy9icmVhay1vbi1leGNlcHRpb24tdGVzdHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LWZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgZnVuY3Rpb24gZG9FeGNlcHRpb25UZXN0KHRlc3ROYW1l
LCBleGNlcHRpb25CcmVha1R5cGUsIHJlc3VtZUFjdGlvbikKLSAgICB7Ci0gICAgICAgIHZhciBw
YXVzZXMgPSAwOwotICAgICAgICB2YXIgaW5kZXggPSAwOwotCi0gICAgICAgIGZ1bmN0aW9uIHJ1
blRlc3RDYXNlKHRlc3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoInNldFRpbWVvdXQoIiArIHRlc3QgKyAiLCA1MCkiKTsKLSAgICAgICAgfQotCi0gICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBmdW5jdGlvbihldmVudCkgewot
ICAgICAgICAgICAgdmFyIHNjcmlwdE9iamVjdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwotICAgICAg
ICAgICAgaWYgKCEvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzXC5qcyQvLnRlc3Qoc2NyaXB0T2Jq
ZWN0LnVybCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAoZXhj
ZXB0aW9uQnJlYWtUeXBlID09ICdBbGxFeGNlcHRpb25zJykKLSAgICAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVk
ID0gZmFsc2U7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTWFuYWdlci5hbGxVbmNhdWdodEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVk
ID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIHJ1blRlc3RDYXNlKHRlc3ROYW1lKTsKLSAgICAgICAg
fSk7Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5n
ZSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZTsKLSAgICAgICAgICAgIGlmIChj
YWxsRnJhbWUpIHsKLSAgICAgICAgICAgICAgICAvLyBQYXVzaW5nLgotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucGF1c2VS
ZWFzb24gPT0gImV4Y2VwdGlvbiIpOwotCi0gICAgICAgICAgICAgICAgdmFyIGZ1bmNOYW1lID0g
Y2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iOwotICAgICAgICAgICAgICAg
IHZhciBsb2NhdGlvbiA9IGNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRpb247Ci0gICAgICAgICAg
ICAgICAgdmFyIGxpbmUgPSBsb2NhdGlvbi5saW5lTnVtYmVyICsgMTsKLSAgICAgICAgICAgICAg
ICB2YXIgY29sdW1uID0gbG9jYXRpb24uY29sdW1uTnVtYmVyICsgMTsKLQotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRSAjIiArICgrK3BhdXNlcykgKyAiIEFUOiAiICsg
ZnVuY05hbWUgKyAiOiIgKyBsaW5lICsgIjoiICsgY29sdW1uKTsKLSAgICAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotCi0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIC8vIFJlc3VtaW5nLgotICAgICAgICAgICAgICAgIGlmIChy
ZXN1bWVBY3Rpb24gPT0gJ0ZpbmlzaE9uUmVzdW1lJykKLSAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0K
LSAgICAgICAgLy8gVGhpcyBpcyBhIHNpZ25hbCBtZWNoYW5pc20gZm9yIHRoZSB3ZWIgcHJvY2Vz
cyB0byB0ZWxsIHVzIHRoYXQgdGhlIHRlc3QgaXMgZG9uZS4KLSAgICAgICAgLy8gVGhlIHdlYiBw
cm9jZXNzIGZpcmVzIHRoZSBzaWduYWwgYnkgZG9pbmcgY29uc29sZS5sb2coIkRPTkUiKS4KLSAg
ICAgICAgV2ViSW5zcGVjdG9yLmxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuTG9nTWFuYWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAg
ICAgICAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGEubWVzc2FnZTsKLSAgICAgICAgICAgIGlm
ICghbWVzc2FnZS5wYXJhbWV0ZXJzIHx8IG1lc3NhZ2UucGFyYW1ldGVycy5sZW5ndGggIT09IDEp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKG1lc3NhZ2UucGFyYW1l
dGVyc1swXS50eXBlICE9PSAic3RyaW5nIiB8fCBtZXNzYWdlLnBhcmFtZXRlcnNbMF0uZGVzY3Jp
cHRpb24gIT09ICJET05FIikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9KTsKLQotICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJlbG9hZFBhZ2UoKTsKLSAgICB9Ci0KLSAgICBkb0V4Y2VwdGlvblRlc3QoJ3Rl
c3RGaW5hbGx5JywgJ1VuY2F1Z2h0RXhjZXB0aW9ucycsICdJZ25vcmVSZXN1bWUnKTsKLX0KLTwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxwPkNoZWNr
aW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0aW9ucy48
L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLW5hdGl2ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0
aW9uLW5hdGl2ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1
MWNjYzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
LW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1uYXRpdmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsOCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzE6IHRlc3RUaHJvd2luZ1Ro
cnVOYXRpdmVDb2RlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9y
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODogVGVzdEVycm9yCi1DaGVja2luZyBwYXVzZSBsb2Nh
dGlvbnMgd2hlbiBwYXVzaW5nIG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbnMuCi0KLVBBVVNFICMxIEFU
OiBkb1Rocm93Ojg6MjIKLVVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiB0ZXN0IHBhZ2U6IFRlc3RFcnJv
ciBbYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzOjhdCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tbmF0aXZl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQt
ZXhjZXB0aW9uLW5hdGl2ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzk5
ZWQwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1v
bi11bmNhdWdodC1leGNlcHRpb24tbmF0aXZlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiAr
MCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9u
VGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAgewot
ICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAg
ICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAgICAg
IH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rp
b24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNj
cmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50
ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtw
b2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtw
b2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFt
ZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxG
cmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2FsbEZy
YW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAg
ICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4KLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAgIHZh
ciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAg
ICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9u
OwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7Ci0g
ICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7Ci0K
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVzZXMp
ICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0gICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQotICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAgICAg
ICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0
aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAg
IC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9n
KCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihl
dmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0g
ICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMu
bGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmICht
ZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0
ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0K
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci0gICAgfQotCi0gICAgZG9FeGNl
cHRpb25UZXN0KCd0ZXN0VGhyb3dpbmdUaHJ1TmF0aXZlQ29kZScsICdVbmNhdWdodEV4Y2VwdGlv
bnMnLCAnSWdub3JlUmVzdW1lJyk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVz
aW5nIG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbnMuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4
Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlz
ZS1leHBlY3RlZC50eHQKaW5kZXggYzY5NzkwMS4uMTliY2Y2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJv
dy1pbi1wcm9taXNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtZXhwZWN0
ZWQudHh0CkBAIC0xLDcgKzEsNDEgQEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAzNjogdGVzdFRo
cm93aW5nSW5Qcm9taXNlCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGluIHByb21pc2UKIENP
TlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKLUNoZWNraW5nIHBhdXNl
IGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0aW9ucy4KK0NPTlNPTEUg
TUVTU0FHRTogbGluZSA1NTogdGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbgorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDU3OiBpbiBwcm9taXNlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6IGluIHBy
b21pc2UudGhlbgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDY2OiB0ZXN0VGhyb3dpbmdJblByb21pc2VUaGVuV2l0aENh
dGNoCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjg6IGluIHByb21pc2UKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSA3MTogaW4gcHJvbWlzZS50aGVuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhy
b3dpbmcgVGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzQ6IGluIHByb21pc2UuY2F0
Y2gKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NTogRE9ORQorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDQ0OiB0ZXN0VGhyb3dpbmdJblByb21pc2VXaXRoQ2F0Y2gKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSA0NjogaW4gcHJvbWlzZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RF
cnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ5OiBpbiBwcm9taXNlLmNhdGNoCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgNTA6IERPTkUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4MDogdGVzdFRo
cm93aW5nSW5Qcm9taXNlV2l0aFJldGhyb3dJbkNhdGNoCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
ODI6IGluIHByb21pc2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJy
b3IKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4NTogaW4gcHJvbWlzZS5jYXRjaAorQ2hlY2tpbmcg
bm8gcGF1c2VzIHdpdGhpbiBQcm9taXNlcyB3aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0
aW9ucy4KIAotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgorCis9PSBSdW5uaW5nIHRlc3Qgc3Vp
dGU6IEJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5Qcm9taXNlCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogQnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9uLlByb21pc2UuRXhjZXB0aW9uSW5Qcm9taXNlQ29u
c3RydWN0b3IKK1BBU1M6IFNob3VsZCBub3QgcGF1c2UsIGV4Y2VwdGlvbiBpcyAnY2F1Z2h0JyBi
eSBQcm9taXNlLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQnJlYWtPblVuY2F1Z2h0RXhjZXB0
aW9uLlByb21pc2UuRXhjZXB0aW9uSW5Qcm9taXNlVGhlbldpdGhvdXRDYXRjaAorUEFTUzogU2hv
dWxkIG5vdCBwYXVzZSwgZXhjZXB0aW9uIGlzICdjYXVnaHQnIGJ5IFByb21pc2UuCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBCcmVha09uVW5jYXVnaHRFeGNlcHRpb24uUHJvbWlzZS5FeGNlcHRp
b25JblByb21pc2VUaGVuV2l0aENhdGNoCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLCBleGNlcHRp
b24gaXMgJ2NhdWdodCcgYnkgUHJvbWlzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEJyZWFr
T25VbmNhdWdodEV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZUNhdGNoCitQQVNT
OiBTaG91bGQgbm90IHBhdXNlLCBleGNlcHRpb24gaXMgJ2NhdWdodCcgYnkgUHJvbWlzZS4KKwor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IEJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5Qcm9taXNlLkV4
Y2VwdGlvbkluUHJvbWlzZVRoZW5BbmRSZXRocm93bkluQ2F0Y2gKK1BBU1M6IFNob3VsZCBub3Qg
cGF1c2UsIGV4Y2VwdGlvbiBpcyAnY2F1Z2h0JyBieSBQcm9taXNlLgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9u
LXRocm93LWluLXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93
LWluLXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGMwNjhhOWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNl
LXJldGhyb3ctaW4tY2F0Y2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCww
IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODA6IHRlc3RUaHJvd2luZ0luUHJvbWlzZVdpdGhS
ZXRocm93SW5DYXRjaAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDgyOiBpbiBwcm9taXNlCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgODU6IGluIHByb21pc2UuY2F0Y2gKLUNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVu
IHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0aW9ucy4KLQotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6
ODoyMgotUEFVU0UgIzIgQVQ6IHByb21pc2VDYXRjaDo4NjoxNgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRo
cm93LWluLXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNl
LXJldGhyb3ctaW4tY2F0Y2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE2
ZTc4Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2JyZWFrLW9u
LWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgp
IHsKLSAgICBmdW5jdGlvbiBkb0V4Y2VwdGlvblRlc3QodGVzdE5hbWUsIGV4Y2VwdGlvbkJyZWFr
VHlwZSwgcmVzdW1lQWN0aW9uKQotICAgIHsKLSAgICAgICAgdmFyIHBhdXNlcyA9IDA7Ci0gICAg
ICAgIHZhciBpbmRleCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuVGVzdENhc2UodGVzdCkg
ewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCgi
ICsgdGVzdCArICIsIDUwKSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFn
ZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIg
c2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0gICAgICAgICAgICBpZiAoIS9icmVh
ay1vbi1leGNlcHRpb24tdGVzdHNcLmpzJC8udGVzdChzY3JpcHRPYmplY3QudXJsKSkKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChleGNlcHRpb25CcmVha1R5cGUg
PT0gJ0FsbEV4Y2VwdGlvbnMnKQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2Vy
LmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLQotICAg
ICAgICAgICAgcnVuVGVzdENhc2UodGVzdE5hbWUpOwotICAgICAgICB9KTsKLQotICAgICAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVu
dCkgewotICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1h
bmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSkgewotICAg
ICAgICAgICAgICAgIC8vIFBhdXNpbmcuCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5wYXVzZVJlYXNvbiA9PSAiZXhjZXB0
aW9uIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgZnVuY05hbWUgPSBjYWxsRnJhbWUuZnVuY3Rp
b25OYW1lIHx8ICI8YW5vbnltb3VzPiI7Ci0gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0g
Y2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAgICAgICAgICB2YXIgbGluZSA9
IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOwotICAgICAgICAgICAgICAgIHZhciBjb2x1bW4gPSBs
b2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAxOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIlBBVVNFICMiICsgKCsrcGF1c2VzKSArICIgQVQ6ICIgKyBmdW5jTmFtZSArICI6IiAr
IGxpbmUgKyAiOiIgKyBjb2x1bW4pOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgLy8gUmVzdW1pbmcuCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VtZUFjdGlvbiA9PSAn
RmluaXNoT25SZXN1bWUnKQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAgICAvLyBUaGlz
IGlzIGEgc2lnbmFsIG1lY2hhbmlzbSBmb3IgdGhlIHdlYiBwcm9jZXNzIHRvIHRlbGwgdXMgdGhh
dCB0aGUgdGVzdCBpcyBkb25lLgotICAgICAgICAvLyBUaGUgd2ViIHByb2Nlc3MgZmlyZXMgdGhl
IHNpZ25hbCBieSBkb2luZyBjb25zb2xlLmxvZygiRE9ORSIpLgotICAgICAgICBXZWJJbnNwZWN0
b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2
ZW50Lk1lc3NhZ2VBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBtZXNz
YWdlID0gZXZlbnQuZGF0YS5tZXNzYWdlOwotICAgICAgICAgICAgaWYgKCFtZXNzYWdlLnBhcmFt
ZXRlcnMgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzLmxlbmd0aCAhPT0gMSkKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICBpZiAobWVzc2FnZS5wYXJhbWV0ZXJzWzBdLnR5cGUgIT09
ICJzdHJpbmciIHx8IG1lc3NhZ2UucGFyYW1ldGVyc1swXS5kZXNjcmlwdGlvbiAhPT0gIkRPTkUi
KQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QucmVsb2Fk
UGFnZSgpOwotICAgIH0KLQotICAgIGRvRXhjZXB0aW9uVGVzdCgndGVzdFRocm93aW5nSW5Qcm9t
aXNlV2l0aFJldGhyb3dJbkNhdGNoJywgJ1VuY2F1Z2h0RXhjZXB0aW9ucycsICdGaW5pc2hPblJl
c3VtZScpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdo
dCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ct
aW4tcHJvbWlzZS10aGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGJiNDYxZi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQt
ZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogdGVzdFRocm93aW5n
SW5Qcm9taXNlVGhlbgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU3OiBpbiBwcm9taXNlCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgNjA6IGluIHByb21pc2UudGhlbgotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4g
cGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLgotCi1QQVVTRSAjMSBBVDogZG9UaHJvdzo4
OjIyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1v
bi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLXdpdGgtY2F0Y2gtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1
Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4td2l0aC1jYXRjaC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5OTUwNWQuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlv
bi10aHJvdy1pbi1wcm9taXNlLXRoZW4td2l0aC1jYXRjaC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjY6IHRlc3RUaHJv
d2luZ0luUHJvbWlzZVRoZW5XaXRoQ2F0Y2gKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA2ODogaW4g
cHJvbWlzZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDcxOiBpbiBwcm9taXNlLnRoZW4KLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSA3NDogaW4gcHJvbWlzZS5jYXRjaAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc1OiBET05F
Ci1DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIHVuY2F1Z2h0IGV4Y2Vw
dGlvbnMuCi0KLVBBVVNFICMxIEFUOiBkb1Rocm93Ojg6MjIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJv
dy1pbi1wcm9taXNlLXRoZW4td2l0aC1jYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRo
ZW4td2l0aC1jYXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDExODI1
My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
dW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWstb24tZXhj
ZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewot
ICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBl
LCByZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAg
dmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0
ZXN0ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5F
dmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBzY3Jp
cHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFrLW9u
LWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAn
QWxsRXhjZXB0aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFu
YWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxs
VW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAg
ICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7
Ci0gICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdl
ci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAg
ICAgICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRpb24i
KTsKLQotICAgICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5h
bWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxs
RnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gbG9j
YXRpb24ubGluZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0
aW9uLmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiUEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGlu
ZSArICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TWFuYWdlci5yZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAvLyBSZXN1bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5p
c2hPblJlc3VtZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMg
YSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRo
ZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2ln
bmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5s
b2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQu
TWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2Ug
PSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVy
cyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0
cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdl
KCk7Ci0gICAgfQotCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0VGhyb3dpbmdJblByb21pc2VU
aGVuV2l0aENhdGNoJywgJ1VuY2F1Z2h0RXhjZXB0aW9ucycsICdJZ25vcmVSZXN1bWUnKTsKLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxwPkNo
ZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0aW9u
cy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Ut
dGhlbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1
Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4uaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNGUwNzY2Zi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Ut
dGhlbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2Jy
ZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24g
dGVzdCgpIHsKLSAgICBmdW5jdGlvbiBkb0V4Y2VwdGlvblRlc3QodGVzdE5hbWUsIGV4Y2VwdGlv
bkJyZWFrVHlwZSwgcmVzdW1lQWN0aW9uKQotICAgIHsKLSAgICAgICAgdmFyIHBhdXNlcyA9IDA7
Ci0gICAgICAgIHZhciBpbmRleCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuVGVzdENhc2Uo
dGVzdCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGlt
ZW91dCgiICsgdGVzdCArICIsIDUwKSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAg
ICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0gICAgICAgICAgICBpZiAo
IS9icmVhay1vbi1leGNlcHRpb24tdGVzdHNcLmpzJC8udGVzdChzY3JpcHRPYmplY3QudXJsKSkK
LSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChleGNlcHRpb25CcmVh
a1R5cGUgPT0gJ0FsbEV4Y2VwdGlvbnMnKQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsK
LQotICAgICAgICAgICAgcnVuVGVzdENhc2UodGVzdE5hbWUpOwotICAgICAgICB9KTsKLQotICAg
ICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBmdW5jdGlv
bihldmVudCkgewotICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSkg
ewotICAgICAgICAgICAgICAgIC8vIFBhdXNpbmcuCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5wYXVzZVJlYXNvbiA9PSAi
ZXhjZXB0aW9uIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgZnVuY05hbWUgPSBjYWxsRnJhbWUu
ZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiI7Ci0gICAgICAgICAgICAgICAgdmFyIGxvY2F0
aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAgICAgICAgICB2YXIg
bGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOwotICAgICAgICAgICAgICAgIHZhciBjb2x1
bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAxOwotCi0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIlBBVVNFICMiICsgKCsrcGF1c2VzKSArICIgQVQ6ICIgKyBmdW5jTmFtZSAr
ICI6IiArIGxpbmUgKyAiOiIgKyBjb2x1bW4pOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgLy8gUmVzdW1pbmcuCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VtZUFjdGlv
biA9PSAnRmluaXNoT25SZXN1bWUnKQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAgICAv
LyBUaGlzIGlzIGEgc2lnbmFsIG1lY2hhbmlzbSBmb3IgdGhlIHdlYiBwcm9jZXNzIHRvIHRlbGwg
dXMgdGhhdCB0aGUgdGVzdCBpcyBkb25lLgotICAgICAgICAvLyBUaGUgd2ViIHByb2Nlc3MgZmly
ZXMgdGhlIHNpZ25hbCBieSBkb2luZyBjb25zb2xlLmxvZygiRE9ORSIpLgotICAgICAgICBXZWJJ
bnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5h
Z2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZh
ciBtZXNzYWdlID0gZXZlbnQuZGF0YS5tZXNzYWdlOwotICAgICAgICAgICAgaWYgKCFtZXNzYWdl
LnBhcmFtZXRlcnMgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzLmxlbmd0aCAhPT0gMSkKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAobWVzc2FnZS5wYXJhbWV0ZXJzWzBdLnR5
cGUgIT09ICJzdHJpbmciIHx8IG1lc3NhZ2UucGFyYW1ldGVyc1swXS5kZXNjcmlwdGlvbiAhPT0g
IkRPTkUiKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
cmVsb2FkUGFnZSgpOwotICAgIH0KLQotICAgIGRvRXhjZXB0aW9uVGVzdCgndGVzdFRocm93aW5n
SW5Qcm9taXNlVGhlbicsICdVbmNhdWdodEV4Y2VwdGlvbnMnLCAnRmluaXNoT25SZXN1bWUnKTsK
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotICAgIDxw
PkNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0
aW9ucy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21p
c2Utd2l0aC1jYXRjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1jYXRj
aC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkODE1NTIuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1
Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXdpdGgtY2F0Y2gtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDQ6IHRl
c3RUaHJvd2luZ0luUHJvbWlzZVdpdGhDYXRjaAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ2OiBp
biBwcm9taXNlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6IGluIHByb21pc2UuY2F0Y2gKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA1MDogRE9ORQotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBv
biB1bmNhdWdodCBleGNlcHRpb25zLgotCi1QQVVTRSAjMSBBVDogZG9UaHJvdzo4OjIyCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdo
dC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS13aXRoLWNhdGNoLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWlu
LXByb21pc2Utd2l0aC1jYXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
YTQ3MTEwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVh
ay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS13aXRoLWNhdGNoLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWstb24tZXhj
ZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewot
ICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBl
LCByZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAg
dmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0
ZXN0ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5F
dmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBzY3Jp
cHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFrLW9u
LWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAn
QWxsRXhjZXB0aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFu
YWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxs
VW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAg
ICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7
Ci0gICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdl
ci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAg
ICAgICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRpb24i
KTsKLQotICAgICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5h
bWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxs
RnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gbG9j
YXRpb24ubGluZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0
aW9uLmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiUEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGlu
ZSArICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TWFuYWdlci5yZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAvLyBSZXN1bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5p
c2hPblJlc3VtZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMg
YSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRo
ZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2ln
bmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5s
b2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQu
TWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2Ug
PSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVy
cyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0
cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdl
KCk7Ci0gICAgfQotCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0VGhyb3dpbmdJblByb21pc2VX
aXRoQ2F0Y2gnLCAnVW5jYXVnaHRFeGNlcHRpb25zJywgJ0lnbm9yZVJlc3VtZScpOwotfQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tp
bmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLjwv
cD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2Vw
dGlvbi10aHJvdy1pbi1wcm9taXNlLmh0bWwKaW5kZXggODM5Y2UzZS4uNWI5MGVlOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4
Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLmh0
bWwKQEAgLTEsNzIgKzEsODAgQEAKLTwhZG9jdHlwZSBodG1sPgorPCFET0NUWVBFIGh0bWw+CiA8
aHRtbD4KIDxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4v
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2JyZWFr
LW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0
aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAg
ewotICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAg
ICAgICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAg
ICAgIH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVu
Y3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRh
LnNjcmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMk
Ly50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJl
YWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJl
YWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0
TmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFn
ZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNh
bGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2Fs
bEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0g
ICAgICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4K
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAg
IHZhciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsK
LSAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0
aW9uOwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7
Ci0gICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7
Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVz
ZXMpICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0g
ICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQot
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAg
ICAgICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CitUZXN0UGFnZS5hbGxv
d1VuY2F1Z2h0RXhjZXB0aW9ucyA9IHRydWU7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8v
IFBhdXNlIG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbiBiZWhhdmlvciBpbiBQcm9taXNlcyBpcyBsaWtl
bHkgdG8gY2hhbmdlLiBUaGlzIHRlc3RzIG91cgorICAgIC8vIGN1cnJlbnQgYmVoYXZpb3Igb2Yg
bm90IHBhdXNpbmcgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbiB3aGVuIHRoZSBQcm9taXNlIHN3YWxs
b3dzCisgICAgLy8gdGhlIGV4Y2VwdGlvbi4gU2VlIHRoZXNlIGJ1Z3M6CisgICAgLy8gRklYTUU6
IDxodHRwczovL3dlYmtpdC5vcmcvYi8xMjQwNjY+IFVuY2F1Z2h0IGV4Y2VwdGlvbnMgcmFpc2Vk
IGluIHByb21pc2UgY29tcGxldGlvbiBmdW5jdGlvbnMgYXJlIG5vdCBwcmludGVkIHRvIGNvbnNv
bGUKKyAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE0NzUwMj4gVW5jYXVnaHQg
RXhjZXB0aW9uIGluIHByb21pc2UgZG9lcyBub3QgdHJpZ2dlciBicmVhayBvbiB1bmNhdWdodCBl
eGNlcHRpb24gYnJlYWtwb2ludCAgICAKKworICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFn
ZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOworCisg
ICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJCcmVha09uVW5j
YXVnaHRFeGNlcHRpb24uUHJvbWlzZSIpOworCisgICAgZnVuY3Rpb24gYWRkVGVzdENhc2Uoe25h
bWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9ufSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3Q6IChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKGV4cHJlc3Npb24pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoYHNldFRpbWVvdXQoKCkgPT4geyBUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9G
cm9udGVuZCgiQWZ0ZXJUZXN0RnVuY3Rpb24iKTsgfSwgNTApYCk7CisKKyAgICAgICAgICAgICAg
ICBsZXQgbGlzdGVuZXIgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnNpbmdsZUZpcmVF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCAo
ZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJTaG91
bGQgbm90IGhhdmUgcGF1c2VkLiIpOworICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOworICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsK
KyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2lu
Z2xlRmlyZUV2ZW50TGlzdGVuZXIoIkFmdGVyVGVzdEZ1bmN0aW9uIiwgKGV2ZW50KSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcygiU2hvdWxkIG5vdCBwYXVzZSwg
ZXhjZXB0aW9uIGlzICdjYXVnaHQnIGJ5IFByb21pc2UuIik7CisgICAgICAgICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgbGlzdGVuZXIpOworICAgICAgICAg
ICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZv
ciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAg
ICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUu
bG9nKCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlv
bihldmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7
Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRl
cnMubGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlm
IChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJh
bWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7
Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7CiAgICAgfQogCi0gICAgZG9F
eGNlcHRpb25UZXN0KCd0ZXN0VGhyb3dpbmdJblByb21pc2UnLCAnVW5jYXVnaHRFeGNlcHRpb25z
JywgJ0ZpbmlzaE9uUmVzdW1lJyk7CisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
QnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9uLlByb21pc2UuRXhjZXB0aW9uSW5Qcm9taXNlQ29uc3Ry
dWN0b3IiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkJyZWFrIG9uIGFuIGV4Y2VwdGlvbiB0aHJv
d24gaW4gUHJvbWlzZSBjb25zdHJ1Y3Rvci4iLAorICAgICAgICBleHByZXNzaW9uOiAic2V0VGlt
ZW91dCh0ZXN0VGhyb3dpbmdJblByb21pc2UpIiwKKyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNl
KHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2Vw
dGlvbkluUHJvbWlzZVRoZW5XaXRob3V0Q2F0Y2giLAorICAgICAgICBkZXNjcmlwdGlvbjogIkJy
ZWFrIG9uIGFuIGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJvbWlzZSB0aGVuIGhhbmRsZXIgd2l0aCBu
byBjYXRjaCBoYW5kbGVyLiIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RU
aHJvd2luZ0luUHJvbWlzZVRoZW4pIiwKKyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAg
ICAgICAgbmFtZTogIkJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbklu
UHJvbWlzZVRoZW5XaXRoQ2F0Y2giLAorICAgICAgICBkZXNjcmlwdGlvbjogIkJyZWFrIG9uIGFu
IGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJvbWlzZSB0aGVuIGhhbmRsZXIgd2l0aCBhIGNhdGNoIGhh
bmRsZXIuIiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVzdFRocm93aW5nSW5Q
cm9taXNlVGhlbldpdGhDYXRjaCkiLAorICAgIH0pOworCisgICAgYWRkVGVzdENhc2UoeworICAg
ICAgICBuYW1lOiAiQnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9uLlByb21pc2UuRXhjZXB0aW9uSW5Q
cm9taXNlQ2F0Y2giLAorICAgICAgICBkZXNjcmlwdGlvbjogIkJyZWFrIG9uIGFuIGV4Y2VwdGlv
biB0aHJvd24gaW4gUHJvbWlzZSBjYXRjaCB3aXRoIG5vIHRoZW4gaGFuZGxlci4iLAorICAgICAg
ICBleHByZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0VGhyb3dpbmdJblByb21pc2VXaXRoQ2F0Y2gp
IiwKKyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25V
bmNhdWdodEV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZVRoZW5BbmRSZXRocm93
bkluQ2F0Y2giLAorICAgICAgICBkZXNjcmlwdGlvbjogIkJyZWFrIG9uIGFuIGV4Y2VwdGlvbiB0
aHJvd24gaW4gUHJvbWlzZSB0aGVuIGhhbmRsZXIsIGFuZCB0aGVuIGFnYWluIHdoZW4gcmV0aHJv
d24gaW4gY2F0Y2ggaGFuZGxlci4iLAorICAgICAgICBleHByZXNzaW9uOiAic2V0VGltZW91dCh0
ZXN0VGhyb3dpbmdJblByb21pc2VXaXRoUmV0aHJvd0luQ2F0Y2gpIiwKKyAgICB9KTsKKworICAg
IHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25z
IHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLjwvcD4KKzxwPkNoZWNraW5nIG5v
IHBhdXNlcyB3aXRoaW4gUHJvbWlzZXMgd2hlbiBwYXVzaW5nIG9uIHVuY2F1Z2h0IGV4Y2VwdGlv
bnMuPC9wPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi13aW5kb3ctb25lcnJvci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5j
YXVnaHQtZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9yLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMTI3ZTU0Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9y
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6
IHdpbmRvdy5vbmVycm9yOiBUZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA5OiBET05F
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODogVGVzdEVycm9yCi1DaGVja2luZyBwYXVzZSBsb2Nh
dGlvbnMgd2hlbiBwYXVzaW5nIG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbnMuCi0KLVBBVVNFICMxIEFU
OiBkb1Rocm93Ojg6MjIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi13aW5kb3ctb25lcnJvci5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi13
aW5kb3ctb25lcnJvci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NDZiZGU4
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11
bmNhdWdodC1leGNlcHRpb24td2luZG93LW9uZXJyb3IuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDc3ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSIuL3Jlc291cmNlcy9icmVhay1vbi1leGNlcHRpb24tdGVzdHMuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLXdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24oZSkgewotICAgIGNv
bnNvbGUubG9nKCJ3aW5kb3cub25lcnJvcjogIiArIGUpOwotICAgIGNvbnNvbGUubG9nKCJET05F
Iik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgZnVuY3Rpb24gZG9FeGNlcHRpb25UZXN0
KHRlc3ROYW1lLCBleGNlcHRpb25CcmVha1R5cGUsIHJlc3VtZUFjdGlvbikKLSAgICB7Ci0gICAg
ICAgIHZhciBwYXVzZXMgPSAwOwotICAgICAgICB2YXIgaW5kZXggPSAwOwotCi0gICAgICAgIGZ1
bmN0aW9uIHJ1blRlc3RDYXNlKHRlc3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoInNldFRpbWVvdXQoIiArIHRlc3QgKyAiLCA1MCkiKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBmdW5jdGlvbihl
dmVudCkgewotICAgICAgICAgICAgdmFyIHNjcmlwdE9iamVjdCA9IGV2ZW50LmRhdGEuc2NyaXB0
OwotICAgICAgICAgICAgaWYgKCEvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzXC5qcyQvLnRlc3Qo
c2NyaXB0T2JqZWN0LnVybCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAg
ICBpZiAoZXhjZXB0aW9uQnJlYWtUeXBlID09ICdBbGxFeGNlcHRpb25zJykKLSAgICAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbEV4Y2VwdGlvbnNCcmVha3BvaW50
LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxVbmNhdWdodEV4Y2VwdGlvbnNCcmVha3BvaW50
LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIHJ1blRlc3RDYXNlKHRlc3ROYW1lKTsK
LSAgICAgICAgfSk7Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2FsbEZyYW1l
c0RpZENoYW5nZSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBjYWxsRnJhbWUg
PSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZTsKLSAgICAgICAg
ICAgIGlmIChjYWxsRnJhbWUpIHsKLSAgICAgICAgICAgICAgICAvLyBQYXVzaW5nLgotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFn
ZXIucGF1c2VSZWFzb24gPT0gImV4Y2VwdGlvbiIpOwotCi0gICAgICAgICAgICAgICAgdmFyIGZ1
bmNOYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iOwotICAgICAg
ICAgICAgICAgIHZhciBsb2NhdGlvbiA9IGNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRpb247Ci0g
ICAgICAgICAgICAgICAgdmFyIGxpbmUgPSBsb2NhdGlvbi5saW5lTnVtYmVyICsgMTsKLSAgICAg
ICAgICAgICAgICB2YXIgY29sdW1uID0gbG9jYXRpb24uY29sdW1uTnVtYmVyICsgMTsKLQotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRSAjIiArICgrK3BhdXNlcykgKyAi
IEFUOiAiICsgZnVuY05hbWUgKyAiOiIgKyBsaW5lICsgIjoiICsgY29sdW1uKTsKLSAgICAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotCi0gICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIFJlc3VtaW5nLgotICAgICAgICAgICAg
ICAgIGlmIChyZXN1bWVBY3Rpb24gPT0gJ0ZpbmlzaE9uUmVzdW1lJykKLSAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSk7Ci0KLSAgICAgICAgLy8gVGhpcyBpcyBhIHNpZ25hbCBtZWNoYW5pc20gZm9yIHRoZSB3
ZWIgcHJvY2VzcyB0byB0ZWxsIHVzIHRoYXQgdGhlIHRlc3QgaXMgZG9uZS4KLSAgICAgICAgLy8g
VGhlIHdlYiBwcm9jZXNzIGZpcmVzIHRoZSBzaWduYWwgYnkgZG9pbmcgY29uc29sZS5sb2coIkRP
TkUiKS4KLSAgICAgICAgV2ViSW5zcGVjdG9yLmxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIGZ1bmN0aW9uKGV2ZW50
KSB7Ci0gICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGEubWVzc2FnZTsKLSAgICAg
ICAgICAgIGlmICghbWVzc2FnZS5wYXJhbWV0ZXJzIHx8IG1lc3NhZ2UucGFyYW1ldGVycy5sZW5n
dGggIT09IDEpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKG1lc3Nh
Z2UucGFyYW1ldGVyc1swXS50eXBlICE9PSAic3RyaW5nIiB8fCBtZXNzYWdlLnBhcmFtZXRlcnNb
MF0uZGVzY3JpcHRpb24gIT09ICJET05FIikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9KTsKLQotICAg
ICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoKTsKLSAgICB9Ci0KLSAgICBkb0V4Y2VwdGlv
blRlc3QoJ2RvVGhyb3cnLCAnVW5jYXVnaHRFeGNlcHRpb25zJywgJ0lnbm9yZVJlc3VtZScpOwot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+
Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRp
b25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24uaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24uaHRtbApp
bmRleCBhYzUxM2M0Li43YzRkNDRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi5odG1sCkBA
IC0xLDcyICsxLDgyIEBACi08IWRvY3R5cGUgaHRtbD4KKzwhRE9DVFlQRSBodG1sPgogPGh0bWw+
CiA8aGVhZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL3Jlc291cmNlcy9icmVhay1vbi1l
eGNlcHRpb24tdGVzdHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBmdW5jdGlvbiBkb0V4Y2VwdGlvblRl
c3QodGVzdE5hbWUsIGV4Y2VwdGlvbkJyZWFrVHlwZSwgcmVzdW1lQWN0aW9uKQotICAgIHsKLSAg
ICAgICAgdmFyIHBhdXNlcyA9IDA7Ci0gICAgICAgIHZhciBpbmRleCA9IDA7Ci0KLSAgICAgICAg
ZnVuY3Rpb24gcnVuVGVzdENhc2UodGVzdCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
dmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCgiICsgdGVzdCArICIsIDUwKSIpOwotICAgICAgICB9
Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9u
KGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3Jp
cHQ7Ci0gICAgICAgICAgICBpZiAoIS9icmVhay1vbi1leGNlcHRpb24tdGVzdHNcLmpzJC8udGVz
dChzY3JpcHRPYmplY3QudXJsKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
ICAgIGlmIChleGNlcHRpb25CcmVha1R5cGUgPT0gJ0FsbEV4Y2VwdGlvbnMnKQotICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9p
bnQuZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9p
bnQuZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgcnVuVGVzdENhc2UodGVzdE5hbWUp
OwotICAgICAgICB9KTsKLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJh
bWVzRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGNhbGxGcmFt
ZSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotICAgICAg
ICAgICAgaWYgKGNhbGxGcmFtZSkgewotICAgICAgICAgICAgICAgIC8vIFBhdXNpbmcuCi0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFu
YWdlci5wYXVzZVJlYXNvbiA9PSAiZXhjZXB0aW9uIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIg
ZnVuY05hbWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiI7Ci0gICAg
ICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsK
LSAgICAgICAgICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOwotICAg
ICAgICAgICAgICAgIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAxOwotCi0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNFICMiICsgKCsrcGF1c2VzKSAr
ICIgQVQ6ICIgKyBmdW5jTmFtZSArICI6IiArIGxpbmUgKyAiOiIgKyBjb2x1bW4pOwotICAgICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0KLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gUmVzdW1pbmcuCi0gICAgICAgICAg
ICAgICAgaWYgKHJlc3VtZUFjdGlvbiA9PSAnRmluaXNoT25SZXN1bWUnKQotICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworVGVzdFBhZ2UuYWxsb3dVbmNh
dWdodEV4Y2VwdGlvbnMgPSB0cnVlOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlz
YWJsZWQgPSBmYWxzZTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5
bmNTdWl0ZSgiQnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9uIik7CisKKyAgICBmdW5jdGlvbiBhZGRU
ZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb259KSB7CisgICAgICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAg
ICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoZXhwcmVzc2lvbik7CisgICAgICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLnBhdXNlUmVhc29uID09PSAiZXhjZXB0aW9uIiwgIlNob3VsZCBwYXVzZSBmb3IgZXhj
ZXB0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICBsZXQgY2FsbEZyYW1lID0gV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7CisgICAgICAgICAgICAgICAgICAg
IGxldCBuYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iOworICAg
ICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0
aW9uOworICAgICAgICAgICAgICAgICAgICBsZXQgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIg
KyAxOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sdW1uID0gbG9jYXRpb24uY29sdW1uTnVt
YmVyICsgMTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYFBBVVNFIEFU
ICR7bmFtZX06JHtsaW5lfToke2NvbHVtbn1gKTsKKyAgICAgICAgICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKS50aGVuKHJlc29sdmUsIHJlamVjdCk7Cisg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwotCi0gICAgICAg
IC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVs
bCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBm
aXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdl
Ykluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01h
bmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAg
dmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3Nh
Z2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0u
dHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9
PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5yZWxvYWRQYWdlKCk7CiAgICAgfQogCi0gICAgZG9FeGNlcHRpb25UZXN0KCdkb1Rocm93Jywg
J1VuY2F1Z2h0RXhjZXB0aW9ucycsICdJZ25vcmVSZXN1bWUnKTsKKyAgICBhZGRUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWU6ICJCcmVha09uVW5jYXVnaHRFeGNlcHRpb24uVW5jYXVnaHRFeGNlcHRp
b25CYXNpYyIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQnJlYWsgb24gYW4gdW5jYXVnaHQgZXhj
ZXB0aW9uIHRocm93biBpbiBhIGZ1bmN0aW9uLiIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRU
aW1lb3V0KGRvVGhyb3cpIiwKKyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIkJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5VbmNhdWdodEV4Y2VwdGlvbkluRmluYWxs
eSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQnJlYWsgb24gYW4gdW5jYXVnaHQgZXhjZXB0aW9u
IHRocm93biBpbiBhIGZpbmFsbHkgYmxvY2suIiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRp
bWVvdXQodGVzdEZpbmFsbHkpIiwKKyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIkJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5VbmNhdWdodEV4Y2VwdGlvblRocnVO
YXRpdmVDb2RlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJCcmVhayBvbiBhbiB1bmNhdWdodCBl
eGNlcHRpb24gdGhyb3duIHRocnUgbmF0aXZlIGNvZGUgKE1hcC5wcm90b3R5cGUuZm9yRWFjaCku
IiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVzdFRocm93aW5nVGhydU5hdGl2
ZUNvZGUpIiwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFt
ZTogIkJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5DYXVnaHRFeGNlcHRpb24iLAorICAgICAgICBk
ZXNjcmlwdGlvbjogIk5vIGJyZWFrIG9uIGEgY2F1Z2h0IGV4Y2VwdGlvbi4iLAorICAgICAgICB0
ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKGBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgICAgICB0ZXN0Q2F0
Y2goKTsKKyAgICAgICAgICAgICAgICBUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgi
QWZ0ZXJUZXN0RnVuY3Rpb24iKTsKKyAgICAgICAgICAgIH0pYCk7CisKKyAgICAgICAgICAgIGxl
dCBsaXN0ZW5lciA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuc2luZ2xlRmlyZUV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIChldmVu
dCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiU2hvdWxkIG5vdCBo
YXZlIHBhdXNlZC4iKTsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5h
Z2VyLnJlc3VtZSgpOworICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoIkFm
dGVyVGVzdEZ1bmN0aW9uIiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5wYXNzKCJTaG91bGQgbm90IHBhdXNlLCBleGNlcHRpb24gd2FzIGNhdWdodC4iKTsKKyAg
ICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlbW92ZUV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIGxpc3RlbmVy
KTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CiB9CiA8L3Nj
cmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2lu
ZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbnMuPC9w
PgorPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBl
eGNlcHRpb25zLjwvcD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlZGFiMGQ2Li5mMjllNjZkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yOTYsOCAr
Mjk2LDYgQEAgd2Via2l0Lm9yZy9iLzE1MTcyOSBbIFlvc2VtaXRlIF0gaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9tZXRob2RzLWFzeW5jLmh0bWwgWwogCiB3ZWJraXQub3JnL2IvMTUyMDI1IFsg
RGVidWcgXSBpbnNwZWN0b3IvY29uc29sZS9tZXNzYWdlc0NsZWFyZWQuaHRtbCBbIFBhc3MgVGlt
ZW91dCBdCiAKLXdlYmtpdC5vcmcvYi8xNTI0OTIgWyBEZWJ1ZyBdIGluc3BlY3Rvci9kZWJ1Z2dl
ci9icmVhay1vbi1leGNlcHRpb24tY2F0Y2guaHRtbCBbIFBhc3MgVGltZW91dCBdCi0KIHdlYmtp
dC5vcmcvYi8xNTUxMzggWyBZb3NlbWl0ZSBFbENhcGl0YW4gXSBpbnNwZWN0b3IvY29uc29sZS9h
ZGRJbnNwZWN0ZWROb2RlLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMTU1
MTUxIFsgRGVidWcgRWxDYXBpdGFuIF0gbWVkaWEvdHJhY2svdHJhY2stY3Vlcy1wYXVzZS1vbi1l
eGl0Lmh0bWwgWyBQYXNzIFRpbWVvdXQgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCA2NmViNWRmLi5hMjQ5MzU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzM3LDE1ICs3MzcsMTUgQEAgd2Via2l0Lm9yZy9i
LzEyMzI1MCBwbHVnaW5zL2Rlc3Ryb3ktZHVyaW5nLW5wcC1uZXctb2JqZWN0LXdpdGgtZmFsbGJh
Y2stY29udGVudC4KIHdlYmtpdC5vcmcvYi8xMjMzNjkgc3ZnL2Nzcy9wYXJlbnQtc2hhZG93LW9m
ZnNjcmVlbi5zdmcgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMjMzNjkgc3Zn
L2Nzcy9yb290LXNoYWRvdy1vZmZzY3JlZW4uc3ZnIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKLXdl
YmtpdC5vcmcvYi8xNTE4MzIgaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4
Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0Y2guaHRtbAotd2Via2l0Lm9y
Zy9iLzE1MTgzMiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9u
LXRocm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLmh0bWwKLXdlYmtpdC5vcmcvYi8xNTE4
MzIgaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1p
bi1wcm9taXNlLXRoZW4uaHRtbAotd2Via2l0Lm9yZy9iLzE1MTgzMiBpbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1jYXRj
aC5odG1sCi13ZWJraXQub3JnL2IvMTUxODMyIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11
bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS5odG1sCiBpbnNwZWN0b3IvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1kZmctY2FsbGVlLWFuZC1leGFtaW5lLWRmZy1sb2NhbC5odG1sCiBp
bnNwZWN0b3IvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUtcHJvYmVzLmh0bWwKIGlu
c3BlY3Rvci9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sCiAKK2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS5odG1sIFsgU2xvdyBdCitp
bnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLmh0bWwgWyBTbG93IF0KK2luc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlz
ZS5odG1sIFsgU2xvdyBdCitpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhj
ZXB0aW9uLmh0bWwgWyBTbG93IF0KKwogd2Via2l0Lm9yZy9iLzEyNDMxMSBjb21wb3NpdGluZy9y
ZWdpb25zL3RyYW5zZm9ybS10cmFuc3BhcmVudC1wb3NpdGlvbmVkLXZpZGVvLWluc2lkZS1yZWdp
b24uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTI0MzIxIGFuaW1h
dGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCkBAIC0x
MjMyLDEzICsxMjMyLDYgQEAgd2Via2l0Lm9yZy9iLzE1ODAwNiBpbnNwZWN0b3IvY29uc29sZS9j
b25zb2xlLXRpbWUuaHRtbCBbIFBhc3MgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMTU2NjM0IGlu
c3BlY3Rvci9mb3JtYXR0aW5nL2Zvcm1hdHRpbmctamF2YXNjcmlwdC5odG1sIFsgUGFzcyBUaW1l
b3V0IF0KIHdlYmtpdC5vcmcvYi8xNTg5NDggaW5zcGVjdG9yL3RpbWVsaW5lIFsgUGFzcyBUaW1l
b3V0IF0KIAotd2Via2l0Lm9yZy9iLzE1OTI3MiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
ZXhjZXB0aW9uLWZpbmFsbHkuaHRtbAotd2Via2l0Lm9yZy9iLzE1OTI3MiBpbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLW5hdGl2ZS5odG1sCi13ZWJraXQub3JnL2IvMTU5Mjcy
IGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24uaHRtbAotd2Via2l0Lm9yZy9i
LzE1OTI3MiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWZp
bmFsbHkuaHRtbAotd2Via2l0Lm9yZy9iLzE1OTI3MiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tdW5jYXVnaHQtZXhjZXB0aW9uLW5hdGl2ZS5odG1sCi13ZWJraXQub3JnL2IvMTU5MjcyIGlu
c3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24uaHRtbAotCiAjIENv
bG9yc3BhY2VzIG9uIENBIE9wZW5HTCBsYXllcnMgbm90IGF2YWlsYWJsZSBpbiBZb3NlbWl0ZQog
WyBZb3NlbWl0ZSBdIGZhc3QvY2FudmFzL3dlYmdsL21hdGNoLXBhZ2UtY29sb3Itc3BhY2UuaHRt
bCBbIFNraXAgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282616</attachid>
            <date>2016-07-01 17:41:07 -0700</date>
            <delta_ts>2016-07-02 20:33:45 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>break-on-3.patch</filename>
            <type>text/plain</type>
            <size>107343</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NDJjNzc1Li4wOTlhYjVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTYtMDct
MDEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdS
RVNTSU9OIChyMjAyNTI5PykgaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLSogdGVzdHMgYXJl
IGZsYWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTkyNzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI3MDg3OTM4PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJld3JpdGUgdGhlIGJyZWFrIG9uIGV4
Y2VwdGlvbiBhbmQgdW5jYXVnaHQgZXhjZXB0aW9uIHRlc3RzCisgICAgICAgIHRvIGJlIGVhc2ll
ciB0byByZWFkIGFuZCB1bmRlcnN0YW5kLCByZWR1Y2UgZHVwbGljYXRlZCBjb2RlLAorICAgICAg
ICBhbmQgYXZvaWQgdW5uZWNlc3Nhcnkgd29yayAoc3VjaCBhcyBhIHJlbG9hZCBhbmQgc2NyaXB0
IGNoZWNrKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zOgorICAgICAgICBVbnNraXAgdGhlIGNvcmUgYnJlYWstb24tKiB0ZXN0cywg
YnV0IG1hcmsgdGhlbSBhcyBTbG93LgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLmh0bWw6CisgICAgICAgICogaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhj
ZXB0aW9uLXRocm93LWluLXByb21pc2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRp
b24uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQt
ZXhjZXB0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLmh0bWw6CisgICAgICAgIENvbnZlcmdlIGludG8gNCB0
ZXN0cywgc2hhcmUgYSBzaWduaWZpY2FudCBhbW91bnQgb2YgY29kZSwKKyAgICAgICAgYW5kIG1h
a2UgdGhlbSBlYXNpZXIgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZC4KKyAgICAgICAgCisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1jYXRjaC1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2Vw
dGlvbi1jYXRjaC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9i
cmVhay1vbi1leGNlcHRpb24tZmluYWxseS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1maW5hbGx5Lmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1u
YXRpdmUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dl
ci9icmVhay1vbi1leGNlcHRpb24tbmF0aXZlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXJldGhy
b3ctaW4tY2F0Y2gtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS1yZXRocm93LWluLWNh
dGNoLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9u
LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4t
cHJvbWlzZS10aGVuLXdpdGgtY2F0Y2gtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10
aGVuLXdpdGgtY2F0Y2guaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ct
aW4tcHJvbWlzZS13aXRoLWNhdGNoLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0
aC1jYXRjaC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVh
ay1vbi11bmNhdWdodC1leGNlcHRpb24tY2F0Y2gtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tY2F0
Y2guaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
dW5jYXVnaHQtZXhjZXB0aW9uLWZpbmFsbHktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tZmluYWxs
eS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11
bmNhdWdodC1leGNlcHRpb24tbmF0aXZlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLW5hdGl2ZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNh
dWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS1yZXRocm93LWluLWNhdGNoLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5j
YXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1l
eGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRo
cm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRo
cm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1w
cm9taXNlLXRoZW4uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
YnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1jYXRjaC1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
LW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXdpdGgtY2F0Y2guaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgTWVyZ2VkIGludG8gdGhlIDQgdGVzdHMgYWJvdmUuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9y
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWstb24tZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9yLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi13aW5kb3ctb25l
cnJvci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi13aW5kb3ctb25lcnJvci5odG1sOiBSZW1vdmVk
LgorICAgICAgICBFbGltaW5hdGUgdGhlc2UgZW50aXJlbHkuIFRlc3RzIGFscmVhZHkgaGF2ZSBh
biBvbmVycm9yIGxpc3RlbmVyLAorICAgICAgICBzbyB0aGVzZSB3ZXJlIGFjdHVhbGx5IGFscmVh
ZHkgZXF1aXZhbGVudCB0byB0aGUgYmFzaWMgdGVzdHMuCisKIDIwMTYtMDctMDEgIERlYW4gSmFj
a3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgICJpbWFnZS1zcmMiIHN1cHBvcnQgaXMg
bWlzc2luZy4gV2Ugb25seSBzdXBwb3J0ICItd2Via2l0LWltYWdlLXNyYyIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IGNmYmIxNGQuLjhjOTMyMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTMxLDEx
ICsxMzEsNiBAQCB3ZWJraXQub3JnL2IvMTQ4MDM2IGh0dHAvdGVzdHMvaW5zcGVjdG9yL3JlcGxh
eS8gWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9iLzEyOTYzOSBpbnNwZWN0b3IvZG9tL2RvbS1zZWFy
Y2gtY3Jhc2guaHRtbCBbIFNraXAgXQogCi13ZWJraXQub3JnL2IvMTQ3NTAyIGluc3BlY3Rvci9k
ZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS1yZXRo
cm93LWluLWNhdGNoLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNDc1MDIgaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRo
ZW4td2l0aC1jYXRjaC5odG1sIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMTQ3NTAyIGluc3BlY3Rv
ci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10
aGVuLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNDc1MDIgaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXdpdGgtY2F0Y2gu
aHRtbCBbIFNraXAgXQotd2Via2l0Lm9yZy9iLzE0NzUwMiBpbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UuaHRtbCBbIFNraXAgXQog
d2Via2l0Lm9yZy9iLzEyODczNiBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmcu
aHRtbCBbIEZhaWx1cmUgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTM0OTgyIGluc3BlY3Rvci9kZWJ1
Z2dlci9zZXRCcmVha3BvaW50LWRmZy1hbmQtbW9kaWZ5LWxvY2FsLmh0bWwgWyBGYWlsdXJlIFBh
c3MgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tZXhjZXB0aW9uLWNhdGNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tY2F0Y2gtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzYTgxZTMwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tY2F0Y2gtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IHRl
c3RDYXRjaAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE2OiBjYXRjaCBUZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAxODogRE9ORQotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBh
bGwgZXhjZXB0aW9ucy4KLQotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLWNhdGNo
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9u
LWNhdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzYmNhZTMuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlv
bi1jYXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotPCFkb2N0eXBlIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2Vz
L2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rp
b24gdGVzdCgpIHsKLSAgICBmdW5jdGlvbiBkb0V4Y2VwdGlvblRlc3QodGVzdE5hbWUsIGV4Y2Vw
dGlvbkJyZWFrVHlwZSwgcmVzdW1lQWN0aW9uKQotICAgIHsKLSAgICAgICAgdmFyIHBhdXNlcyA9
IDA7Ci0gICAgICAgIHZhciBpbmRleCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuVGVzdENh
c2UodGVzdCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0
VGltZW91dCgiICsgdGVzdCArICIsIDUwKSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAg
ICAgICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0gICAgICAgICAgICBp
ZiAoIS9icmVhay1vbi1leGNlcHRpb24tdGVzdHNcLmpzJC8udGVzdChzY3JpcHRPYmplY3QudXJs
KSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChleGNlcHRpb25C
cmVha1R5cGUgPT0gJ0FsbEV4Y2VwdGlvbnMnKQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxz
ZTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxz
ZTsKLQotICAgICAgICAgICAgcnVuVGVzdENhc2UodGVzdE5hbWUpOwotICAgICAgICB9KTsKLQot
ICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBmdW5j
dGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotICAgICAgICAgICAgaWYgKGNhbGxGcmFt
ZSkgewotICAgICAgICAgICAgICAgIC8vIFBhdXNpbmcuCi0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5wYXVzZVJlYXNvbiA9
PSAiZXhjZXB0aW9uIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgZnVuY05hbWUgPSBjYWxsRnJh
bWUuZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiI7Ci0gICAgICAgICAgICAgICAgdmFyIGxv
Y2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAgICAgICAgICB2
YXIgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOwotICAgICAgICAgICAgICAgIHZhciBj
b2x1bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAxOwotCi0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlBBVVNFICMiICsgKCsrcGF1c2VzKSArICIgQVQ6ICIgKyBmdW5jTmFt
ZSArICI6IiArIGxpbmUgKyAiOiIgKyBjb2x1bW4pOwotICAgICAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgLy8gUmVzdW1pbmcuCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VtZUFj
dGlvbiA9PSAnRmluaXNoT25SZXN1bWUnKQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAg
ICAvLyBUaGlzIGlzIGEgc2lnbmFsIG1lY2hhbmlzbSBmb3IgdGhlIHdlYiBwcm9jZXNzIHRvIHRl
bGwgdXMgdGhhdCB0aGUgdGVzdCBpcyBkb25lLgotICAgICAgICAvLyBUaGUgd2ViIHByb2Nlc3Mg
ZmlyZXMgdGhlIHNpZ25hbCBieSBkb2luZyBjb25zb2xlLmxvZygiRE9ORSIpLgotICAgICAgICBX
ZWJJbnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dN
YW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAg
IHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YS5tZXNzYWdlOwotICAgICAgICAgICAgaWYgKCFtZXNz
YWdlLnBhcmFtZXRlcnMgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzLmxlbmd0aCAhPT0gMSkKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAobWVzc2FnZS5wYXJhbWV0ZXJzWzBd
LnR5cGUgIT09ICJzdHJpbmciIHx8IG1lc3NhZ2UucGFyYW1ldGVyc1swXS5kZXNjcmlwdGlvbiAh
PT0gIkRPTkUiKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIEluc3BlY3RvclRl
c3QucmVsb2FkUGFnZSgpOwotICAgIH0KLQotICAgIGRvRXhjZXB0aW9uVGVzdCgndGVzdENhdGNo
JywgJ0FsbEV4Y2VwdGlvbnMnLCAnSWdub3JlUmVzdW1lJyk7Ci19Ci08L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBsb2Nh
dGlvbnMgd2hlbiBwYXVzaW5nIG9uIGFsbCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1l
eGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrLW9uLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKaW5kZXggYTg0M2Y3Yy4uZjFmZGI1OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlv
bi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
LW9uLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKQEAgLTEsNyArMSwzNiBAQAogQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6
IFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIyOiB0ZXN0RmluYWxseQorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDI2OiBmaW5hbGx5CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODogVGVzdEVycm9yCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMzE6IHRlc3RUaHJvd2luZ1RocnVOYXRpdmVDb2RlCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgODogVGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IHRlc3RDYXRjaAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE2OiBjYXRjaCBUZXN0RXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxODogRE9O
RQogQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9u
cy4KIAotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgorCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6
IEJyZWFrT25BbnlFeGNlcHRpb24KKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBCcmVha09uQW55RXhj
ZXB0aW9uLlVuY2F1Z2h0RXhjZXB0aW9uQmFzaWMKK1BBU1M6IFNob3VsZCBwYXVzZSBmb3IgZXhj
ZXB0aW9uLgorUEFVU0UgQVQgZG9UaHJvdzo4OjIyCitVbmNhdWdodCBleGNlcHRpb24gaW4gdGVz
dCBwYWdlOiBUZXN0RXJyb3IgW2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qczo4XQorCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogQnJlYWtPbkFueUV4Y2VwdGlvbi5VbmNhdWdodEV4Y2VwdGlvbklu
RmluYWxseQorUEFTUzogU2hvdWxkIHBhdXNlIGZvciBleGNlcHRpb24uCitQQVVTRSBBVCBkb1Ro
cm93Ojg6MjIKIFVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiB0ZXN0IHBhZ2U6IFRlc3RFcnJvciBbYnJl
YWstb24tZXhjZXB0aW9uLXRlc3RzLmpzOjhdCiAKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBCcmVh
a09uQW55RXhjZXB0aW9uLlVuY2F1Z2h0RXhjZXB0aW9uVGhydU5hdGl2ZUNvZGUKK1BBU1M6IFNo
b3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLgorUEFVU0UgQVQgZG9UaHJvdzo4OjIyCitVbmNhdWdo
dCBleGNlcHRpb24gaW4gdGVzdCBwYWdlOiBUZXN0RXJyb3IgW2JyZWFrLW9uLWV4Y2VwdGlvbi10
ZXN0cy5qczo4XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQnJlYWtPbkFueUV4Y2VwdGlvbi5D
YXVnaHRFeGNlcHRpb24KK1BBU1M6IFNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLgorUEFVU0Ug
QVQgZG9UaHJvdzo4OjIyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVhay1vbi1leGNlcHRpb24tZmluYWxseS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLWZpbmFsbHktZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMWJiZGZkLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tZmluYWxs
eS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAyMjogdGVzdEZpbmFsbHkKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJv
d2luZyBUZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNjogZmluYWxseQotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDg6IFRlc3RFcnJvcgotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdo
ZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy4KLQotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoy
MgotVW5jYXVnaHQgZXhjZXB0aW9uIGluIHRlc3QgcGFnZTogVGVzdEVycm9yIFticmVhay1vbi1l
eGNlcHRpb24tdGVzdHMuanM6OF0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi1maW5hbGx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLWZpbmFsbHkuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjc2ZGU3YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLWZpbmFsbHkuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL3Jlc291cmNlcy9icmVhay1vbi1leGNlcHRp
b24tdGVzdHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAg
ZnVuY3Rpb24gZG9FeGNlcHRpb25UZXN0KHRlc3ROYW1lLCBleGNlcHRpb25CcmVha1R5cGUsIHJl
c3VtZUFjdGlvbikKLSAgICB7Ci0gICAgICAgIHZhciBwYXVzZXMgPSAwOwotICAgICAgICB2YXIg
aW5kZXggPSAwOwotCi0gICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RDYXNlKHRlc3QpIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldFRpbWVvdXQoIiArIHRlc3Qg
KyAiLCA1MCkiKTsKLSAgICAgICAgfQotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1h
bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50
LlNjcmlwdEFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIHNjcmlwdE9i
amVjdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwotICAgICAgICAgICAgaWYgKCEvYnJlYWstb24tZXhj
ZXB0aW9uLXRlc3RzXC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAoZXhjZXB0aW9uQnJlYWtUeXBlID09ICdBbGxF
eGNlcHRpb25zJykKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2Vy
LmFsbEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxVbmNh
dWdodEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAg
IHJ1blRlc3RDYXNlKHRlc3ROYW1lKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1hbmFnZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAg
ICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFj
dGl2ZUNhbGxGcmFtZTsKLSAgICAgICAgICAgIGlmIChjYWxsRnJhbWUpIHsKLSAgICAgICAgICAg
ICAgICAvLyBQYXVzaW5nLgotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucGF1c2VSZWFzb24gPT0gImV4Y2VwdGlvbiIpOwot
Ci0gICAgICAgICAgICAgICAgdmFyIGZ1bmNOYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8
fCAiPGFub255bW91cz4iOwotICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IGNhbGxGcmFt
ZS5zb3VyY2VDb2RlTG9jYXRpb247Ci0gICAgICAgICAgICAgICAgdmFyIGxpbmUgPSBsb2NhdGlv
bi5saW5lTnVtYmVyICsgMTsKLSAgICAgICAgICAgICAgICB2YXIgY29sdW1uID0gbG9jYXRpb24u
Y29sdW1uTnVtYmVyICsgMTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQ
QVVTRSAjIiArICgrK3BhdXNlcykgKyAiIEFUOiAiICsgZnVuY05hbWUgKyAiOiIgKyBsaW5lICsg
IjoiICsgY29sdW1uKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5h
Z2VyLnJlc3VtZSgpOwotCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8v
IFJlc3VtaW5nLgotICAgICAgICAgICAgICAgIGlmIChyZXN1bWVBY3Rpb24gPT0gJ0ZpbmlzaE9u
UmVzdW1lJykKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gVGhpcyBpcyBhIHNp
Z25hbCBtZWNoYW5pc20gZm9yIHRoZSB3ZWIgcHJvY2VzcyB0byB0ZWxsIHVzIHRoYXQgdGhlIHRl
c3QgaXMgZG9uZS4KLSAgICAgICAgLy8gVGhlIHdlYiBwcm9jZXNzIGZpcmVzIHRoZSBzaWduYWwg
YnkgZG9pbmcgY29uc29sZS5sb2coIkRPTkUiKS4KLSAgICAgICAgV2ViSW5zcGVjdG9yLmxvZ01h
bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5NZXNz
YWdlQWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGV2
ZW50LmRhdGEubWVzc2FnZTsKLSAgICAgICAgICAgIGlmICghbWVzc2FnZS5wYXJhbWV0ZXJzIHx8
IG1lc3NhZ2UucGFyYW1ldGVycy5sZW5ndGggIT09IDEpCi0gICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgaWYgKG1lc3NhZ2UucGFyYW1ldGVyc1swXS50eXBlICE9PSAic3RyaW5n
IiB8fCBtZXNzYWdlLnBhcmFtZXRlcnNbMF0uZGVzY3JpcHRpb24gIT09ICJET05FIikKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgICAgICB9KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoKTsK
LSAgICB9Ci0KLSAgICBkb0V4Y2VwdGlvblRlc3QoJ3Rlc3RGaW5hbGx5JywgJ0FsbEV4Y2VwdGlv
bnMnLCAnSWdub3JlUmVzdW1lJyk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVz
aW5nIG9uIGFsbCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tbmF0aXZl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1l
eGNlcHRpb24tbmF0aXZlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNmM1OGU1MC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
YnJlYWstb24tZXhjZXB0aW9uLW5hdGl2ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSw4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzMTogdGVzdFRocm93aW5nVGhydU5h
dGl2ZUNvZGUKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA4OiBUZXN0RXJyb3IKLUNoZWNraW5nIHBhdXNlIGxvY2F0aW9u
cyB3aGVuIHBhdXNpbmcgb24gYWxsIGV4Y2VwdGlvbnMuCi0KLVBBVVNFICMxIEFUOiBkb1Rocm93
Ojg6MjIKLVVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiB0ZXN0IHBhZ2U6IFRlc3RFcnJvciBbYnJlYWst
b24tZXhjZXB0aW9uLXRlc3RzLmpzOjhdCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tbmF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLW5hdGl2ZS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NGQyYzk2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tbmF0aXZlLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWstb24tZXhjZXB0
aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAg
IGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBlLCBy
ZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAgdmFy
IGluZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0ZXN0
ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVu
dC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRP
YmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFrLW9uLWV4
Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAnQWxs
RXhjZXB0aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdl
ci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5j
YXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAgICAg
ICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0g
ICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5h
Y3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAgICAg
ICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRpb24iKTsK
LQotICAgICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUg
fHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxsRnJh
bWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gbG9jYXRp
b24ubGluZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0aW9u
LmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
UEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGluZSAr
ICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFu
YWdlci5yZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAv
LyBSZXN1bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5pc2hP
blJlc3VtZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBz
aWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0
ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFs
IGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVz
c2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBl
dmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8
fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmlu
ZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7
Ci0gICAgfQotCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0VGhyb3dpbmdUaHJ1TmF0aXZlQ29k
ZScsICdBbGxFeGNlcHRpb25zJywgJ0lnbm9yZVJlc3VtZScpOwotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2UgbG9j
YXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy48L3A+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
ZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLWV4cGVj
dGVkLnR4dAppbmRleCA0YTAwYTdhLi5lMTYxNGIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1l
eGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw0OCBAQAog
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiB0ZXN0VGhyb3dpbmdJblByb21pc2UKIENPTlNPTEUg
TUVTU0FHRTogbGluZSAzODogaW4gcHJvbWlzZQogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRo
cm93aW5nIFRlc3RFcnJvcgotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBv
biBhbGwgZXhjZXB0aW9ucy4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogdGVzdFRocm93aW5n
SW5Qcm9taXNlVGhlbgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU3OiBpbiBwcm9taXNlCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgNjA6IGluIHByb21pc2UudGhlbgorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY2OiB0ZXN0
VGhyb3dpbmdJblByb21pc2VUaGVuV2l0aENhdGNoCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjg6
IGluIHByb21pc2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3MTogaW4gcHJvbWlzZS50aGVuCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgNzQ6IGluIHByb21pc2UuY2F0Y2gKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NTog
RE9ORQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ0OiB0ZXN0VGhyb3dpbmdJblByb21pc2VXaXRo
Q2F0Y2gKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0NjogaW4gcHJvbWlzZQorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ5
OiBpbiBwcm9taXNlLmNhdGNoCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTA6IERPTkUKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSA4MDogdGVzdFRocm93aW5nSW5Qcm9taXNlV2l0aFJldGhyb3dJbkNh
dGNoCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODI6IGluIHByb21pc2UKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4NTog
aW4gcHJvbWlzZS5jYXRjaAorQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdpdGhpbiBQcm9taXNl
cyB3aGVuIHBhdXNpbmcgb24gYWxsIGV4Y2VwdGlvbnMuCiAKLVBBVVNFICMxIEFUOiBkb1Rocm93
Ojg6MjIKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBCcmVha09uQW55RXhjZXB0aW9uLlByb21p
c2UKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBCcmVha09uQW55RXhjZXB0aW9uLlByb21pc2UuRXhj
ZXB0aW9uSW5Qcm9taXNlQ29uc3RydWN0b3IKK1BBU1M6IFNob3VsZCBwYXVzZSBmb3IgZXhjZXB0
aW9uLgorUEFVU0UgQVQgZG9UaHJvdzo4OjIyCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBCcmVh
a09uQW55RXhjZXB0aW9uLlByb21pc2UuRXhjZXB0aW9uSW5Qcm9taXNlVGhlbldpdGhvdXRDYXRj
aAorUEFTUzogU2hvdWxkIHBhdXNlIGZvciBleGNlcHRpb24uCitQQVVTRSBBVCBkb1Rocm93Ojg6
MjIKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEJyZWFrT25BbnlFeGNlcHRpb24uUHJvbWlzZS5F
eGNlcHRpb25JblByb21pc2VUaGVuV2l0aENhdGNoCitQQVNTOiBTaG91bGQgcGF1c2UgZm9yIGV4
Y2VwdGlvbi4KK1BBVVNFIEFUIGRvVGhyb3c6ODoyMgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
QnJlYWtPbkFueUV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZUNhdGNoCitQQVNT
OiBTaG91bGQgcGF1c2UgZm9yIGV4Y2VwdGlvbi4KK1BBVVNFIEFUIGRvVGhyb3c6ODoyMgorCist
LSBSdW5uaW5nIHRlc3QgY2FzZTogQnJlYWtPbkFueUV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlv
bkluUHJvbWlzZVRoZW5BbmRSZXRocm93bkluQ2F0Y2gKK1BBU1M6IFNob3VsZCBwYXVzZSBmb3Ig
ZXhjZXB0aW9uLgorUEFVU0UgQVQgZG9UaHJvdzo4OjIyCitQQVNTOiBTaG91bGQgcGF1c2UgZm9y
IGV4Y2VwdGlvbi4KK1BBVVNFIEFUIHByb21pc2VDYXRjaDo4NjoxNgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWlu
LXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJv
dy1pbi1jYXRjaC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRi
OGFmYzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
LW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0Y2gtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
ODA6IHRlc3RUaHJvd2luZ0luUHJvbWlzZVdpdGhSZXRocm93SW5DYXRjaAotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDgyOiBpbiBwcm9taXNlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dp
bmcgVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODU6IGluIHByb21pc2UuY2F0Y2gK
LUNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gYWxsIGV4Y2VwdGlvbnMu
Ci0KLVBBVVNFICMxIEFUOiBkb1Rocm93Ojg6MjIKLVBBVVNFICMyIEFUOiBwcm9taXNlQ2F0Y2g6
ODY6MTYKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
LW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0Y2guaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4t
cHJvbWlzZS1yZXRocm93LWluLWNhdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDZiMTkxNDcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0Y2guaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL3Jlc291cmNlcy9icmVhay1vbi1l
eGNlcHRpb24tdGVzdHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKSB7
Ci0gICAgZnVuY3Rpb24gZG9FeGNlcHRpb25UZXN0KHRlc3ROYW1lLCBleGNlcHRpb25CcmVha1R5
cGUsIHJlc3VtZUFjdGlvbikKLSAgICB7Ci0gICAgICAgIHZhciBwYXVzZXMgPSAwOwotICAgICAg
ICB2YXIgaW5kZXggPSAwOwotCi0gICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RDYXNlKHRlc3QpIHsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldFRpbWVvdXQoIiAr
IHRlc3QgKyAiLCA1MCkiKTsKLSAgICAgICAgfQotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2Vy
LkV2ZW50LlNjcmlwdEFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIHNj
cmlwdE9iamVjdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwotICAgICAgICAgICAgaWYgKCEvYnJlYWst
b24tZXhjZXB0aW9uLXRlc3RzXC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBpZiAoZXhjZXB0aW9uQnJlYWtUeXBlID09
ICdBbGxFeGNlcHRpb25zJykKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLmFsbEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5h
bGxVbmNhdWdodEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAgICAg
ICAgICAgIHJ1blRlc3RDYXNlKHRlc3ROYW1lKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgZnVuY3Rpb24oZXZlbnQp
IHsKLSAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5h
Z2VyLmFjdGl2ZUNhbGxGcmFtZTsKLSAgICAgICAgICAgIGlmIChjYWxsRnJhbWUpIHsKLSAgICAg
ICAgICAgICAgICAvLyBQYXVzaW5nLgotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucGF1c2VSZWFzb24gPT0gImV4Y2VwdGlv
biIpOwotCi0gICAgICAgICAgICAgICAgdmFyIGZ1bmNOYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9u
TmFtZSB8fCAiPGFub255bW91cz4iOwotICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IGNh
bGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRpb247Ci0gICAgICAgICAgICAgICAgdmFyIGxpbmUgPSBs
b2NhdGlvbi5saW5lTnVtYmVyICsgMTsKLSAgICAgICAgICAgICAgICB2YXIgY29sdW1uID0gbG9j
YXRpb24uY29sdW1uTnVtYmVyICsgMTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJQQVVTRSAjIiArICgrK3BhdXNlcykgKyAiIEFUOiAiICsgZnVuY05hbWUgKyAiOiIgKyBs
aW5lICsgIjoiICsgY29sdW1uKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNYW5hZ2VyLnJlc3VtZSgpOwotCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgIC8vIFJlc3VtaW5nLgotICAgICAgICAgICAgICAgIGlmIChyZXN1bWVBY3Rpb24gPT0gJ0Zp
bmlzaE9uUmVzdW1lJykKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gVGhpcyBp
cyBhIHNpZ25hbCBtZWNoYW5pc20gZm9yIHRoZSB3ZWIgcHJvY2VzcyB0byB0ZWxsIHVzIHRoYXQg
dGhlIHRlc3QgaXMgZG9uZS4KLSAgICAgICAgLy8gVGhlIHdlYiBwcm9jZXNzIGZpcmVzIHRoZSBz
aWduYWwgYnkgZG9pbmcgY29uc29sZS5sb2coIkRPTkUiKS4KLSAgICAgICAgV2ViSW5zcGVjdG9y
LmxvZ01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVu
dC5NZXNzYWdlQWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgbWVzc2Fn
ZSA9IGV2ZW50LmRhdGEubWVzc2FnZTsKLSAgICAgICAgICAgIGlmICghbWVzc2FnZS5wYXJhbWV0
ZXJzIHx8IG1lc3NhZ2UucGFyYW1ldGVycy5sZW5ndGggIT09IDEpCi0gICAgICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICAgICAgaWYgKG1lc3NhZ2UucGFyYW1ldGVyc1swXS50eXBlICE9PSAi
c3RyaW5nIiB8fCBtZXNzYWdlLnBhcmFtZXRlcnNbMF0uZGVzY3JpcHRpb24gIT09ICJET05FIikK
LSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOwotICAgICAgICB9KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBh
Z2UoKTsKLSAgICB9Ci0KLSAgICBkb0V4Y2VwdGlvblRlc3QoJ3Rlc3RUaHJvd2luZ0luUHJvbWlz
ZVdpdGhSZXRocm93SW5DYXRjaCcsICdBbGxFeGNlcHRpb25zJywgJ0ZpbmlzaE9uUmVzdW1lJyk7
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8
cD5DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIGFsbCBleGNlcHRpb25z
LjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRp
b24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDY3MGE0ZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA1NTogdGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU3
OiBpbiBwcm9taXNlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6IGluIHByb21pc2UudGhlbgot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgotQ2hlY2tpbmcgcGF1
c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy4KLQotUEFVU0UgIzEg
QVQ6IGRvVGhyb3c6ODoyMgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNo
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1l
eGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLXdpdGgtY2F0Y2gtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTc0MzFjLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJv
bWlzZS10aGVuLXdpdGgtY2F0Y2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAg
KzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY2OiB0ZXN0VGhyb3dpbmdJblByb21pc2VU
aGVuV2l0aENhdGNoCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjg6IGluIHByb21pc2UKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA3MTogaW4gcHJvbWlzZS50aGVuCi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzQ6IGluIHBy
b21pc2UuY2F0Y2gKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3NTogRE9ORQotQ2hlY2tpbmcgcGF1
c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy4KLQotUEFVU0UgIzEg
QVQ6IGRvVGhyb3c6ODoyMgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNo
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9u
LXRocm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGZlODk3YmIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4td2l0aC1j
YXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2Jy
ZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24g
dGVzdCgpIHsKLSAgICBmdW5jdGlvbiBkb0V4Y2VwdGlvblRlc3QodGVzdE5hbWUsIGV4Y2VwdGlv
bkJyZWFrVHlwZSwgcmVzdW1lQWN0aW9uKQotICAgIHsKLSAgICAgICAgdmFyIHBhdXNlcyA9IDA7
Ci0gICAgICAgIHZhciBpbmRleCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuVGVzdENhc2Uo
dGVzdCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGlt
ZW91dCgiICsgdGVzdCArICIsIDUwKSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAg
ICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0gICAgICAgICAgICBpZiAo
IS9icmVhay1vbi1leGNlcHRpb24tdGVzdHNcLmpzJC8udGVzdChzY3JpcHRPYmplY3QudXJsKSkK
LSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChleGNlcHRpb25CcmVh
a1R5cGUgPT0gJ0FsbEV4Y2VwdGlvbnMnKQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsK
LQotICAgICAgICAgICAgcnVuVGVzdENhc2UodGVzdE5hbWUpOwotICAgICAgICB9KTsKLQotICAg
ICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBmdW5jdGlv
bihldmVudCkgewotICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSkg
ewotICAgICAgICAgICAgICAgIC8vIFBhdXNpbmcuCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5wYXVzZVJlYXNvbiA9PSAi
ZXhjZXB0aW9uIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgZnVuY05hbWUgPSBjYWxsRnJhbWUu
ZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiI7Ci0gICAgICAgICAgICAgICAgdmFyIGxvY2F0
aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAgICAgICAgICB2YXIg
bGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOwotICAgICAgICAgICAgICAgIHZhciBjb2x1
bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAxOwotCi0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIlBBVVNFICMiICsgKCsrcGF1c2VzKSArICIgQVQ6ICIgKyBmdW5jTmFtZSAr
ICI6IiArIGxpbmUgKyAiOiIgKyBjb2x1bW4pOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgLy8gUmVzdW1pbmcuCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VtZUFjdGlv
biA9PSAnRmluaXNoT25SZXN1bWUnKQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLQotICAgICAgICAv
LyBUaGlzIGlzIGEgc2lnbmFsIG1lY2hhbmlzbSBmb3IgdGhlIHdlYiBwcm9jZXNzIHRvIHRlbGwg
dXMgdGhhdCB0aGUgdGVzdCBpcyBkb25lLgotICAgICAgICAvLyBUaGUgd2ViIHByb2Nlc3MgZmly
ZXMgdGhlIHNpZ25hbCBieSBkb2luZyBjb25zb2xlLmxvZygiRE9ORSIpLgotICAgICAgICBXZWJJ
bnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5h
Z2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZh
ciBtZXNzYWdlID0gZXZlbnQuZGF0YS5tZXNzYWdlOwotICAgICAgICAgICAgaWYgKCFtZXNzYWdl
LnBhcmFtZXRlcnMgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzLmxlbmd0aCAhPT0gMSkKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAobWVzc2FnZS5wYXJhbWV0ZXJzWzBdLnR5
cGUgIT09ICJzdHJpbmciIHx8IG1lc3NhZ2UucGFyYW1ldGVyc1swXS5kZXNjcmlwdGlvbiAhPT0g
IkRPTkUiKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
cmVsb2FkUGFnZSgpOwotICAgIH0KLQotICAgIGRvRXhjZXB0aW9uVGVzdCgndGVzdFRocm93aW5n
SW5Qcm9taXNlVGhlbldpdGhDYXRjaCcsICdBbGxFeGNlcHRpb25zJywgJ0lnbm9yZVJlc3VtZScp
OwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAg
PHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9u
cy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJv
dy1pbi1wcm9taXNlLXRoZW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTFl
ZmIxMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNzIgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBmdW5jdGlvbiBkb0V4
Y2VwdGlvblRlc3QodGVzdE5hbWUsIGV4Y2VwdGlvbkJyZWFrVHlwZSwgcmVzdW1lQWN0aW9uKQot
ICAgIHsKLSAgICAgICAgdmFyIHBhdXNlcyA9IDA7Ci0gICAgICAgIHZhciBpbmRleCA9IDA7Ci0K
LSAgICAgICAgZnVuY3Rpb24gcnVuVGVzdENhc2UodGVzdCkgewotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCgiICsgdGVzdCArICIsIDUwKSIpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQs
IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQu
ZGF0YS5zY3JpcHQ7Ci0gICAgICAgICAgICBpZiAoIS9icmVhay1vbi1leGNlcHRpb24tdGVzdHNc
LmpzJC8udGVzdChzY3JpcHRPYmplY3QudXJsKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgICAgIGlmIChleGNlcHRpb25CcmVha1R5cGUgPT0gJ0FsbEV4Y2VwdGlvbnMnKQot
ICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9u
c0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9u
c0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgcnVuVGVzdENhc2Uo
dGVzdE5hbWUpOwotICAgICAgICB9KTsKLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVu
dC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFy
IGNhbGxGcmFtZSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1l
OwotICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSkgewotICAgICAgICAgICAgICAgIC8vIFBhdXNp
bmcuCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTWFuYWdlci5wYXVzZVJlYXNvbiA9PSAiZXhjZXB0aW9uIik7Ci0KLSAgICAgICAgICAg
ICAgICB2YXIgZnVuY05hbWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3Vz
PiI7Ci0gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVM
b2NhdGlvbjsKLSAgICAgICAgICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIg
KyAxOwotICAgICAgICAgICAgICAgIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIg
KyAxOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNFICMiICsgKCsr
cGF1c2VzKSArICIgQVQ6ICIgKyBmdW5jTmFtZSArICI6IiArIGxpbmUgKyAiOiIgKyBjb2x1bW4p
OwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7
Ci0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gUmVzdW1pbmcuCi0g
ICAgICAgICAgICAgICAgaWYgKHJlc3VtZUFjdGlvbiA9PSAnRmluaXNoT25SZXN1bWUnKQotICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAg
ICAgfQotICAgICAgICB9KTsKLQotICAgICAgICAvLyBUaGlzIGlzIGEgc2lnbmFsIG1lY2hhbmlz
bSBmb3IgdGhlIHdlYiBwcm9jZXNzIHRvIHRlbGwgdXMgdGhhdCB0aGUgdGVzdCBpcyBkb25lLgot
ICAgICAgICAvLyBUaGUgd2ViIHByb2Nlc3MgZmlyZXMgdGhlIHNpZ25hbCBieSBkb2luZyBjb25z
b2xlLmxvZygiRE9ORSIpLgotICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgZnVu
Y3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YS5tZXNz
YWdlOwotICAgICAgICAgICAgaWYgKCFtZXNzYWdlLnBhcmFtZXRlcnMgfHwgbWVzc2FnZS5wYXJh
bWV0ZXJzLmxlbmd0aCAhPT0gMSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICBpZiAobWVzc2FnZS5wYXJhbWV0ZXJzWzBdLnR5cGUgIT09ICJzdHJpbmciIHx8IG1lc3NhZ2Uu
cGFyYW1ldGVyc1swXS5kZXNjcmlwdGlvbiAhPT0gIkRPTkUiKQotICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAg
IH0pOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOwotICAgIH0KLQotICAg
IGRvRXhjZXB0aW9uVGVzdCgndGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbicsICdBbGxFeGNlcHRp
b25zJywgJ0ZpbmlzaE9uUmVzdW1lJyk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBw
YXVzaW5nIG9uIGFsbCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhy
b3ctaW4tcHJvbWlzZS13aXRoLWNhdGNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS13aXRoLWNh
dGNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWI3OGRhYS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhj
ZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1jYXRjaC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw5ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NDogdGVzdFRocm93
aW5nSW5Qcm9taXNlV2l0aENhdGNoCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDY6IGluIHByb21p
c2UKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSA0OTogaW4gcHJvbWlzZS5jYXRjaAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDUwOiBET05FCi1DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIGFsbCBl
eGNlcHRpb25zLgotCi1QQVVTRSAjMSBBVDogZG9UaHJvdzo4OjIyCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4t
cHJvbWlzZS13aXRoLWNhdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
YnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1jYXRjaC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzY4ZDc0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlz
ZS13aXRoLWNhdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IWRvY3R5
cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNv
dXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1m
dW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwg
ZXhjZXB0aW9uQnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1
c2VzID0gMDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5U
ZXN0Q2FzZSh0ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KCJzZXRUaW1lb3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAg
ICAgICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAg
ICAgIGlmICghL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVj
dC51cmwpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2Vw
dGlvbkJyZWFrVHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9
IGZhbHNlOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9
IGZhbHNlOwotCi0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0p
OwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2Us
IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2Fs
bEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVh
c29uID09ICJleGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNh
bGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2
YXIgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAg
ICAgIHZhciBsaW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAg
dmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1
bmNOYW1lICsgIjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVz
dW1lQWN0aW9uID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0g
ICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3Mg
dG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJv
Y2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAg
ICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAg
ICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAo
IW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRl
cnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0
aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci0gICAgfQotCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0
VGhyb3dpbmdJblByb21pc2VXaXRoQ2F0Y2gnLCAnQWxsRXhjZXB0aW9ucycsICdJZ25vcmVSZXN1
bWUnKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgot
ICAgIDxwPkNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gYWxsIGV4Y2Vw
dGlvbnMuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93
LWluLXByb21pc2UuaHRtbAppbmRleCAzNWE2ZmYyLi45NGE5ZDU4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93LWluLXBy
b21pc2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
ZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UuaHRtbApAQCAtMSw3MiArMSwxMTEgQEAKLTwhZG9j
dHlwZSBodG1sPgorPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJl
YWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiB0
ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9u
QnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1c2VzID0gMDsK
LSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0
ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1l
b3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
TWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAg
IHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAgICAgIGlmICgh
L2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFr
VHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1h
bmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwot
Ci0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAg
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9u
KGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2FsbEZyYW1lKSB7
Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09ICJl
eGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5m
dW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2YXIgbG9jYXRp
b24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAgICAgIHZhciBs
aW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbHVt
biA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1bmNOYW1lICsg
IjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVzdW1lQWN0aW9u
ID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7CitUZXN0UGFnZS5hbGxvd1VuY2F1Z2h0RXhjZXB0aW9ucyA9IHRydWU7
CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIu
YWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIGxldCBzdWl0
ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQnJlYWtPbkFueUV4Y2VwdGlvbi5Q
cm9taXNlIik7CisKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBmdW5jdGlvbiBh
ZGRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb259KSB7CisgICAgICAgIHN1
aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAg
ICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoZXhwcmVzc2lvbik7CisgICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50KSA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09PSAiZXhjZXB0aW9uIiwgIlNob3VsZCBwYXVzZSBmb3Ig
ZXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICBsZXQgY2FsbEZyYW1lID0gV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7CisgICAgICAgICAgICAgICAg
ICAgIGxldCBuYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iOwor
ICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxv
Y2F0aW9uOworICAgICAgICAgICAgICAgICAgICBsZXQgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1i
ZXIgKyAxOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sdW1uID0gbG9jYXRpb24uY29sdW1u
TnVtYmVyICsgMTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYFBBVVNF
IEFUICR7bmFtZX06JHtsaW5lfToke2NvbHVtbn1gKTsKKyAgICAgICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKS50aGVuKHJlc29sdmUsIHJlamVjdCk7
CisgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwotCi0gICAg
ICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8g
dGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2Vz
cyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAg
IFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxv
Z01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAg
ICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1l
c3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAg
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNb
MF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9u
ICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5yZWxvYWRQYWdlKCk7CiAgICAgfQogCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0VGhy
b3dpbmdJblByb21pc2UnLCAnQWxsRXhjZXB0aW9ucycsICdGaW5pc2hPblJlc3VtZScpOworICAg
IGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25BbnlFeGNlcHRpb24uUHJvbWlz
ZS5FeGNlcHRpb25JblByb21pc2VDb25zdHJ1Y3RvciIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAi
QnJlYWsgb24gYW4gZXhjZXB0aW9uIHRocm93biBpbiBQcm9taXNlIGNvbnN0cnVjdG9yLiIsCisg
ICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RUaHJvd2luZ0luUHJvbWlzZSkiLAor
ICAgIH0pOworCisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQnJlYWtPbkFueUV4
Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZVRoZW5XaXRob3V0Q2F0Y2giLAorICAg
ICAgICBkZXNjcmlwdGlvbjogIkJyZWFrIG9uIGFuIGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJvbWlz
ZSB0aGVuIGhhbmRsZXIgd2l0aCBubyBjYXRjaCBoYW5kbGVyLiIsCisgICAgICAgIGV4cHJlc3Np
b246ICJzZXRUaW1lb3V0KHRlc3RUaHJvd2luZ0luUHJvbWlzZVRoZW4pIiwKKyAgICB9KTsKKwor
ICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25BbnlFeGNlcHRpb24uUHJv
bWlzZS5FeGNlcHRpb25JblByb21pc2VUaGVuV2l0aENhdGNoIiwKKyAgICAgICAgZGVzY3JpcHRp
b246ICJCcmVhayBvbiBhbiBleGNlcHRpb24gdGhyb3duIGluIFByb21pc2UgdGhlbiBoYW5kbGVy
IHdpdGggYSBjYXRjaCBoYW5kbGVyLiIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0
KHRlc3RUaHJvd2luZ0luUHJvbWlzZVRoZW5XaXRoQ2F0Y2gpIiwKKyAgICB9KTsKKworICAgIGFk
ZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25BbnlFeGNlcHRpb24uUHJvbWlzZS5F
eGNlcHRpb25JblByb21pc2VDYXRjaCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQnJlYWsgb24g
YW4gZXhjZXB0aW9uIHRocm93biBpbiBQcm9taXNlIGNhdGNoIHdpdGggbm8gdGhlbiBoYW5kbGVy
LiIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RUaHJvd2luZ0luUHJvbWlz
ZVdpdGhDYXRjaCkiLAorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAg
ICBuYW1lOiAiQnJlYWtPbkFueUV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZVRo
ZW5BbmRSZXRocm93bkluQ2F0Y2giLAorICAgICAgICBkZXNjcmlwdGlvbjogIkJyZWFrIG9uIGFu
IGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJvbWlzZSB0aGVuIGhhbmRsZXIsIGFuZCB0aGVuIGFnYWlu
IHdoZW4gcmV0aHJvd24gaW4gY2F0Y2ggaGFuZGxlci4iLAorICAgICAgICB0ZXN0OiAocmVzb2x2
ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KCJzZXRUaW1lb3V0KHRlc3RUaHJvd2luZ0luUHJvbWlzZVdpdGhSZXRocm93SW5DYXRjaCkiKTsK
KworICAgICAgICAgICAgZnVuY3Rpb24gbG9nUGF1c2VMb2NhdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICBsZXQgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVD
YWxsRnJhbWU7CisgICAgICAgICAgICAgICAgbGV0IG5hbWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25O
YW1lIHx8ICI8YW5vbnltb3VzPiI7CisgICAgICAgICAgICAgICAgbGV0IGxvY2F0aW9uID0gY2Fs
bEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKKyAgICAgICAgICAgICAgICBsZXQgbGluZSA9IGxv
Y2F0aW9uLmxpbmVOdW1iZXIgKyAxOworICAgICAgICAgICAgICAgIGxldCBjb2x1bW4gPSBsb2Nh
dGlvbi5jb2x1bW5OdW1iZXIgKyAxOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KGBQQVVTRSBBVCAke25hbWV9OiR7bGluZX06JHtjb2x1bW59YCk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGxldCBwaGFzZSA9IDA7CisgICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCAoZXZlbnQpID0+IHsK
KyAgICAgICAgICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZl
Q2FsbEZyYW1lKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAg
ICBwaGFzZSsrOworCisgICAgICAgICAgICAgICAgLy8gUGF1c2UgYXQgdGhyb3cgaW5zaWRlIHRo
ZW4uCisgICAgICAgICAgICAgICAgaWYgKHBoYXNlID09PSAxKSB7CisgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2Vy
LnBhdXNlUmVhc29uID09PSAiZXhjZXB0aW9uIiwgIlNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9u
LiIpOworICAgICAgICAgICAgICAgICAgICBsb2dQYXVzZUxvY2F0aW9uKCk7CisgICAgICAgICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICAvLyBQYXVzZSBhdCByZS10aHJvdyBpbnNpZGUgY2F0Y2guCisgICAgICAgICAgICAgICAgaWYg
KHBoYXNlID09PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
VGhhdChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09PSAiZXhjZXB0
aW9uIiwgIlNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgICAg
ICBsb2dQYXVzZUxvY2F0aW9uKCk7CisgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBsaXN0
ZW5lcik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAg
ICAgICAgIH0sIHJlamVjdCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3Vp
dGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hl
biBwYXVzaW5nIG9uIGFsbCBleGNlcHRpb25zLjwvcD4KKzxwPkNoZWNraW5nIHBhdXNlIGxvY2F0
aW9ucyB3aXRoaW4gUHJvbWlzZXMgd2hlbiBwYXVzaW5nIG9uIGFsbCBleGNlcHRpb25zLjwvcD4K
IDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVhay1vbi1leGNlcHRpb24td2luZG93LW9uZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi13aW5kb3ctb25l
cnJvci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0YmU2MTku
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4
Y2VwdGlvbi13aW5kb3ctb25lcnJvci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4
ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA4OiB3aW5kb3cub25lcnJvcjogVGVzdEVycm9yCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgOTogRE9ORQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6IFRlc3RFcnJv
cgotQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9u
cy4KLQotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9yLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXdp
bmRvdy1vbmVycm9yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkMTM3N2Uu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4
Y2VwdGlvbi13aW5kb3ctb25lcnJvci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBA
QAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0Pgotd2luZG93Lm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Ci0gICAgY29uc29sZS5sb2co
IndpbmRvdy5vbmVycm9yOiAiICsgZSk7Ci0gICAgY29uc29sZS5sb2coIkRPTkUiKTsKLX0KLQot
ZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBmdW5jdGlvbiBkb0V4Y2VwdGlvblRlc3QodGVzdE5hbWUs
IGV4Y2VwdGlvbkJyZWFrVHlwZSwgcmVzdW1lQWN0aW9uKQotICAgIHsKLSAgICAgICAgdmFyIHBh
dXNlcyA9IDA7Ci0gICAgICAgIHZhciBpbmRleCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVu
VGVzdENhc2UodGVzdCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZSgic2V0VGltZW91dCgiICsgdGVzdCArICIsIDUwKSIpOwotICAgICAgICB9Ci0KLSAgICAgICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0g
ICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0gICAgICAg
ICAgICBpZiAoIS9icmVhay1vbi1leGNlcHRpb24tdGVzdHNcLmpzJC8udGVzdChzY3JpcHRPYmpl
Y3QudXJsKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChleGNl
cHRpb25CcmVha1R5cGUgPT0gJ0FsbEV4Y2VwdGlvbnMnKQotICAgICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQg
PSBmYWxzZTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQg
PSBmYWxzZTsKLQotICAgICAgICAgICAgcnVuVGVzdENhc2UodGVzdE5hbWUpOwotICAgICAgICB9
KTsKLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdl
LCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotICAgICAgICAgICAgaWYgKGNh
bGxGcmFtZSkgewotICAgICAgICAgICAgICAgIC8vIFBhdXNpbmcuCi0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5wYXVzZVJl
YXNvbiA9PSAiZXhjZXB0aW9uIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgZnVuY05hbWUgPSBj
YWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiI7Ci0gICAgICAgICAgICAgICAg
dmFyIGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAgICAg
ICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOwotICAgICAgICAgICAgICAg
IHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAxOwotCi0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNFICMiICsgKCsrcGF1c2VzKSArICIgQVQ6ICIgKyBm
dW5jTmFtZSArICI6IiArIGxpbmUgKyAiOiIgKyBjb2x1bW4pOwotICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0KLSAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgLy8gUmVzdW1pbmcuCi0gICAgICAgICAgICAgICAgaWYgKHJl
c3VtZUFjdGlvbiA9PSAnRmluaXNoT25SZXN1bWUnKQotICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLQot
ICAgICAgICAvLyBUaGlzIGlzIGEgc2lnbmFsIG1lY2hhbmlzbSBmb3IgdGhlIHdlYiBwcm9jZXNz
IHRvIHRlbGwgdXMgdGhhdCB0aGUgdGVzdCBpcyBkb25lLgotICAgICAgICAvLyBUaGUgd2ViIHBy
b2Nlc3MgZmlyZXMgdGhlIHNpZ25hbCBieSBkb2luZyBjb25zb2xlLmxvZygiRE9ORSIpLgotICAg
ICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5Mb2dNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAg
ICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YS5tZXNzYWdlOwotICAgICAgICAgICAgaWYg
KCFtZXNzYWdlLnBhcmFtZXRlcnMgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzLmxlbmd0aCAhPT0gMSkK
LSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAobWVzc2FnZS5wYXJhbWV0
ZXJzWzBdLnR5cGUgIT09ICJzdHJpbmciIHx8IG1lc3NhZ2UucGFyYW1ldGVyc1swXS5kZXNjcmlw
dGlvbiAhPT0gIkRPTkUiKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIEluc3Bl
Y3RvclRlc3QucmVsb2FkUGFnZSgpOwotICAgIH0KLQotICAgIGRvRXhjZXB0aW9uVGVzdCgnZG9U
aHJvdycsICdBbGxFeGNlcHRpb25zJywgJ0lnbm9yZVJlc3VtZScpOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2Ug
bG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiBhbGwgZXhjZXB0aW9ucy48L3A+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tZXhjZXB0aW9uLmh0bWwKaW5kZXggMDJkZWI4Mi4uY2I2ZDYwYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24uaHRtbApA
QCAtMSw3MiArMSw2NSBAQAotPCFkb2N0eXBlIGh0bWw+Cis8IURPQ1RZUEUgaHRtbD4KIDxodG1s
PgogPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWstb24t
ZXhjZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9icmVhay1vbi1leGNlcHRpb24tdGVzdHMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgZnVuY3Rpb24gZG9FeGNlcHRpb25U
ZXN0KHRlc3ROYW1lLCBleGNlcHRpb25CcmVha1R5cGUsIHJlc3VtZUFjdGlvbikKLSAgICB7Ci0g
ICAgICAgIHZhciBwYXVzZXMgPSAwOwotICAgICAgICB2YXIgaW5kZXggPSAwOwotCi0gICAgICAg
IGZ1bmN0aW9uIHJ1blRlc3RDYXNlKHRlc3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoInNldFRpbWVvdXQoIiArIHRlc3QgKyAiLCA1MCkiKTsKLSAgICAgICAg
fQotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBmdW5jdGlv
bihldmVudCkgewotICAgICAgICAgICAgdmFyIHNjcmlwdE9iamVjdCA9IGV2ZW50LmRhdGEuc2Ny
aXB0OwotICAgICAgICAgICAgaWYgKCEvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzXC5qcyQvLnRl
c3Qoc2NyaXB0T2JqZWN0LnVybCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
ICAgICBpZiAoZXhjZXB0aW9uQnJlYWtUeXBlID09ICdBbGxFeGNlcHRpb25zJykKLSAgICAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbEV4Y2VwdGlvbnNCcmVha3Bv
aW50LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxVbmNhdWdodEV4Y2VwdGlvbnNCcmVha3Bv
aW50LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIHJ1blRlc3RDYXNlKHRlc3ROYW1l
KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2FsbEZy
YW1lc0RpZENoYW5nZSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBjYWxsRnJh
bWUgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZTsKLSAgICAg
ICAgICAgIGlmIChjYWxsRnJhbWUpIHsKLSAgICAgICAgICAgICAgICAvLyBQYXVzaW5nLgotICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1h
bmFnZXIucGF1c2VSZWFzb24gPT0gImV4Y2VwdGlvbiIpOwotCi0gICAgICAgICAgICAgICAgdmFy
IGZ1bmNOYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iOwotICAg
ICAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IGNhbGxGcmFtZS5zb3VyY2VDb2RlTG9jYXRpb247
Ci0gICAgICAgICAgICAgICAgdmFyIGxpbmUgPSBsb2NhdGlvbi5saW5lTnVtYmVyICsgMTsKLSAg
ICAgICAgICAgICAgICB2YXIgY29sdW1uID0gbG9jYXRpb24uY29sdW1uTnVtYmVyICsgMTsKLQot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRSAjIiArICgrK3BhdXNlcykg
KyAiIEFUOiAiICsgZnVuY05hbWUgKyAiOiIgKyBsaW5lICsgIjoiICsgY29sdW1uKTsKLSAgICAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotCi0gICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIFJlc3VtaW5nLgotICAgICAgICAg
ICAgICAgIGlmIChyZXN1bWVBY3Rpb24gPT0gJ0ZpbmlzaE9uUmVzdW1lJykKLSAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKK1Rlc3RQYWdlLmFsbG93VW5j
YXVnaHRFeGNlcHRpb25zID0gdHJ1ZTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9
IGZhbHNlOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRl
KCJCcmVha09uQW55RXhjZXB0aW9uIik7CisKKyAgICBmdW5jdGlvbiBhZGRUZXN0Q2FzZSh7bmFt
ZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb259KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNl
KHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdDogKHJl
c29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoZXhwcmVzc2lvbik7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJN
YW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0VGhhdChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNl
UmVhc29uID09PSAiZXhjZXB0aW9uIiwgIlNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLiIpOwor
ICAgICAgICAgICAgICAgICAgICBsZXQgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7CisgICAgICAgICAgICAgICAgICAgIGxldCBuYW1lID0g
Y2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4iOworICAgICAgICAgICAgICAg
ICAgICBsZXQgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOworICAgICAg
ICAgICAgICAgICAgICBsZXQgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOworICAgICAg
ICAgICAgICAgICAgICBsZXQgY29sdW1uID0gbG9jYXRpb24uY29sdW1uTnVtYmVyICsgMTsKKyAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYFBBVVNFIEFUICR7bmFtZX06JHts
aW5lfToke2NvbHVtbn1gKTsKKyAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTWFuYWdlci5yZXN1bWUoKS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMg
YSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRo
ZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2ln
bmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5s
b2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQu
TWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2Ug
PSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVy
cyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0
cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdl
KCk7CiAgICAgfQogCi0gICAgZG9FeGNlcHRpb25UZXN0KCdkb1Rocm93JywgJ0FsbEV4Y2VwdGlv
bnMnLCAnSWdub3JlUmVzdW1lJyk7CisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
QnJlYWtPbkFueUV4Y2VwdGlvbi5VbmNhdWdodEV4Y2VwdGlvbkJhc2ljIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJCcmVhayBvbiBhbiB1bmNhdWdodCBleGNlcHRpb24gdGhyb3duIGluIGEgZnVu
Y3Rpb24uIiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZG9UaHJvdykiLAorICAg
IH0pOworCisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQnJlYWtPbkFueUV4Y2Vw
dGlvbi5VbmNhdWdodEV4Y2VwdGlvbkluRmluYWxseSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAi
QnJlYWsgb24gYW4gdW5jYXVnaHQgZXhjZXB0aW9uIHRocm93biBpbiBhIGZpbmFsbHkgYmxvY2su
IiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVzdEZpbmFsbHkpIiwKKyAgICB9
KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25BbnlFeGNlcHRp
b24uVW5jYXVnaHRFeGNlcHRpb25UaHJ1TmF0aXZlQ29kZSIsCisgICAgICAgIGRlc2NyaXB0aW9u
OiAiQnJlYWsgb24gYW4gdW5jYXVnaHQgZXhjZXB0aW9uIHRocm93biB0aHJ1IG5hdGl2ZSBjb2Rl
IChNYXAucHJvdG90eXBlLmZvckVhY2gpLiIsCisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1l
b3V0KHRlc3RUaHJvd2luZ1RocnVOYXRpdmVDb2RlKSIsCisgICAgfSk7CisKKyAgICBhZGRUZXN0
Q2FzZSh7CisgICAgICAgIG5hbWU6ICJCcmVha09uQW55RXhjZXB0aW9uLkNhdWdodEV4Y2VwdGlv
biIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQnJlYWsgb24gYSBjYXVnaHQgZXhjZXB0aW9uLiIs
CisgICAgICAgIGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRlc3RDYXRjaCkiLAorICAgIH0pOwor
CisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVh
ZD4KIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBsb2Nh
dGlvbnMgd2hlbiBwYXVzaW5nIG9uIGFsbCBleGNlcHRpb25zLjwvcD4KKzxwPkNoZWNraW5nIHBh
dXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gYWxsIGV4Y2VwdGlvbnMuPC9wPgogPC9ib2R5
PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1jYXRjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWNhdGNoLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNiZWFlNy4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQt
ZXhjZXB0aW9uLWNhdGNoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBA
QAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiB0ZXN0Q2F0Y2gKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNjogY2F0
Y2ggVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IERPTkUKLUNoZWNraW5nIHBh
dXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0aW9ucy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1l
eGNlcHRpb24tY2F0Y2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVh
ay1vbi11bmNhdWdodC1leGNlcHRpb24tY2F0Y2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOTdmMzIyNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWNhdGNoLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw3MiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRlc3Rz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1bmN0aW9u
IGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBlLCByZXN1bWVBY3Rp
b24pCi0gICAgewotICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAgdmFyIGluZGV4ID0g
MDsKLQotICAgICAgICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0ZXN0ICsgIiwgNTAp
Iik7Ci0gICAgICAgIH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRB
ZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBl
dmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFrLW9uLWV4Y2VwdGlvbi10
ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAnQWxsRXhjZXB0aW9u
cycpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNl
cHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNl
cHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBydW5UZXN0
Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2Vy
LkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAg
ICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxs
RnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgLy8g
UGF1c2luZy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0
b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRpb24iKTsKLQotICAgICAg
ICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIjxhbm9u
eW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNl
Q29kZUxvY2F0aW9uOwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gbG9jYXRpb24ubGluZU51
bWJlciArIDE7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbk51
bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0UgIyIg
KyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGluZSArICI6IiArIGNv
bHVtbik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1
bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBSZXN1bWlu
Zy4KLSAgICAgICAgICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5pc2hPblJlc3VtZScp
Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVj
aGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRv
bmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5n
IGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVk
LCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRh
Lm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdl
LnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVz
c2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAg
ICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci0gICAgfQot
Ci0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0Q2F0Y2gnLCAnVW5jYXVnaHRFeGNlcHRpb25zJywg
J0lnbm9yZVJlc3VtZScpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBv
biB1bmNhdWdodCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9u
LXVuY2F1Z2h0LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKaW5kZXggMzFkY2EyOC4uYWMyYWU5YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1
Z2h0LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKQEAgLTEsNyAr
MSwzNSBAQAogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgogQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDg6IFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIy
OiB0ZXN0RmluYWxseQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJv
cgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI2OiBmaW5hbGx5CitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgODogVGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzE6IHRlc3RUaHJvd2luZ1Ro
cnVOYXRpdmVDb2RlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9y
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODogVGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTI6IHRlc3RDYXRjaAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RF
cnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE2OiBjYXRjaCBUZXN0RXJyb3IKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxODogRE9ORQogQ2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1
c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLgogCi1QQVVTRSAjMSBBVDogZG9UaHJvdzo4OjIy
CisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9uCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogQnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9uLlVuY2F1Z2h0RXhjZXB0
aW9uQmFzaWMKK1BBU1M6IFNob3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLgorUEFVU0UgQVQgZG9U
aHJvdzo4OjIyCitVbmNhdWdodCBleGNlcHRpb24gaW4gdGVzdCBwYWdlOiBUZXN0RXJyb3IgW2Jy
ZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qczo4XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQnJl
YWtPblVuY2F1Z2h0RXhjZXB0aW9uLlVuY2F1Z2h0RXhjZXB0aW9uSW5GaW5hbGx5CitQQVNTOiBT
aG91bGQgcGF1c2UgZm9yIGV4Y2VwdGlvbi4KK1BBVVNFIEFUIGRvVGhyb3c6ODoyMgogVW5jYXVn
aHQgZXhjZXB0aW9uIGluIHRlc3QgcGFnZTogVGVzdEVycm9yIFticmVhay1vbi1leGNlcHRpb24t
dGVzdHMuanM6OF0KIAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEJyZWFrT25VbmNhdWdodEV4Y2Vw
dGlvbi5VbmNhdWdodEV4Y2VwdGlvblRocnVOYXRpdmVDb2RlCitQQVNTOiBTaG91bGQgcGF1c2Ug
Zm9yIGV4Y2VwdGlvbi4KK1BBVVNFIEFUIGRvVGhyb3c6ODoyMgorVW5jYXVnaHQgZXhjZXB0aW9u
IGluIHRlc3QgcGFnZTogVGVzdEVycm9yIFticmVhay1vbi1leGNlcHRpb24tdGVzdHMuanM6OF0K
KworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5DYXVnaHRF
eGNlcHRpb24KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UsIGV4Y2VwdGlvbiB3YXMgY2F1Z2h0Lgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5j
YXVnaHQtZXhjZXB0aW9uLWZpbmFsbHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1maW5hbGx5LWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjViZDFhYS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0
aW9uLWZpbmFsbHktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgMjI6IHRlc3RGaW5hbGx5Ci1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjY6IGZpbmFs
bHkKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA4OiBUZXN0RXJyb3IKLUNoZWNraW5nIHBhdXNlIGxv
Y2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0aW9ucy4KLQotUEFVU0UgIzEg
QVQ6IGRvVGhyb3c6ODoyMgotVW5jYXVnaHQgZXhjZXB0aW9uIGluIHRlc3QgcGFnZTogVGVzdEVy
cm9yIFticmVhay1vbi1leGNlcHRpb24tdGVzdHMuanM6OF0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1maW5h
bGx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVn
aHQtZXhjZXB0aW9uLWZpbmFsbHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NjBiMzkzMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLWZpbmFsbHkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDcyICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSIuL3Jlc291cmNlcy9icmVhay1vbi1leGNlcHRpb24tdGVzdHMuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgZnVuY3Rpb24gZG9FeGNl
cHRpb25UZXN0KHRlc3ROYW1lLCBleGNlcHRpb25CcmVha1R5cGUsIHJlc3VtZUFjdGlvbikKLSAg
ICB7Ci0gICAgICAgIHZhciBwYXVzZXMgPSAwOwotICAgICAgICB2YXIgaW5kZXggPSAwOwotCi0g
ICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RDYXNlKHRlc3QpIHsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UoInNldFRpbWVvdXQoIiArIHRlc3QgKyAiLCA1MCkiKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBm
dW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIHNjcmlwdE9iamVjdCA9IGV2ZW50LmRh
dGEuc2NyaXB0OwotICAgICAgICAgICAgaWYgKCEvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzXC5q
cyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgICAgICBpZiAoZXhjZXB0aW9uQnJlYWtUeXBlID09ICdBbGxFeGNlcHRpb25zJykKLSAg
ICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbEV4Y2VwdGlvbnNC
cmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxVbmNhdWdodEV4Y2VwdGlvbnNC
cmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIHJ1blRlc3RDYXNlKHRl
c3ROYW1lKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQu
Q2FsbEZyYW1lc0RpZENoYW5nZSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBj
YWxsRnJhbWUgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZTsK
LSAgICAgICAgICAgIGlmIChjYWxsRnJhbWUpIHsKLSAgICAgICAgICAgICAgICAvLyBQYXVzaW5n
LgotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1hbmFnZXIucGF1c2VSZWFzb24gPT0gImV4Y2VwdGlvbiIpOwotCi0gICAgICAgICAgICAg
ICAgdmFyIGZ1bmNOYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFub255bW91cz4i
OwotICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IGNhbGxGcmFtZS5zb3VyY2VDb2RlTG9j
YXRpb247Ci0gICAgICAgICAgICAgICAgdmFyIGxpbmUgPSBsb2NhdGlvbi5saW5lTnVtYmVyICsg
MTsKLSAgICAgICAgICAgICAgICB2YXIgY29sdW1uID0gbG9jYXRpb24uY29sdW1uTnVtYmVyICsg
MTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRSAjIiArICgrK3Bh
dXNlcykgKyAiIEFUOiAiICsgZnVuY05hbWUgKyAiOiIgKyBsaW5lICsgIjoiICsgY29sdW1uKTsK
LSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwot
Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIFJlc3VtaW5nLgotICAg
ICAgICAgICAgICAgIGlmIChyZXN1bWVBY3Rpb24gPT0gJ0ZpbmlzaE9uUmVzdW1lJykKLSAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gVGhpcyBpcyBhIHNpZ25hbCBtZWNoYW5pc20g
Zm9yIHRoZSB3ZWIgcHJvY2VzcyB0byB0ZWxsIHVzIHRoYXQgdGhlIHRlc3QgaXMgZG9uZS4KLSAg
ICAgICAgLy8gVGhlIHdlYiBwcm9jZXNzIGZpcmVzIHRoZSBzaWduYWwgYnkgZG9pbmcgY29uc29s
ZS5sb2coIkRPTkUiKS4KLSAgICAgICAgV2ViSW5zcGVjdG9yLmxvZ01hbmFnZXIuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5NZXNzYWdlQWRkZWQsIGZ1bmN0
aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGEubWVzc2Fn
ZTsKLSAgICAgICAgICAgIGlmICghbWVzc2FnZS5wYXJhbWV0ZXJzIHx8IG1lc3NhZ2UucGFyYW1l
dGVycy5sZW5ndGggIT09IDEpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
aWYgKG1lc3NhZ2UucGFyYW1ldGVyc1swXS50eXBlICE9PSAic3RyaW5nIiB8fCBtZXNzYWdlLnBh
cmFtZXRlcnNbMF0uZGVzY3JpcHRpb24gIT09ICJET05FIikKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9
KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoKTsKLSAgICB9Ci0KLSAgICBk
b0V4Y2VwdGlvblRlc3QoJ3Rlc3RGaW5hbGx5JywgJ1VuY2F1Z2h0RXhjZXB0aW9ucycsICdJZ25v
cmVSZXN1bWUnKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotICAgIDxwPkNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gdW5j
YXVnaHQgZXhjZXB0aW9ucy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLW5h
dGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tdW5jYXVnaHQtZXhjZXB0aW9uLW5hdGl2ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGU1MWNjYzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi1uYXRpdmUtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
MzE6IHRlc3RUaHJvd2luZ1RocnVOYXRpdmVDb2RlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzog
dGhyb3dpbmcgVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODogVGVzdEVycm9yCi1D
aGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIHVuY2F1Z2h0IGV4Y2VwdGlv
bnMuCi0KLVBBVVNFICMxIEFUOiBkb1Rocm93Ojg6MjIKLVVuY2F1Z2h0IGV4Y2VwdGlvbiBpbiB0
ZXN0IHBhZ2U6IFRlc3RFcnJvciBbYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzOjhdCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdo
dC1leGNlcHRpb24tbmF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
YnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLW5hdGl2ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiMzk5ZWQwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tbmF0aXZlLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWstb24tZXhjZXB0aW9u
LXRlc3RzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1
bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBlLCByZXN1
bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAgdmFyIGlu
ZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0ZXN0ICsg
IiwgNTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5h
Z2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5T
Y3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRPYmpl
Y3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFrLW9uLWV4Y2Vw
dGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAnQWxsRXhj
ZXB0aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5h
bGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVn
aHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBy
dW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJN
YW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAg
ICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3Rp
dmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICAg
ICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRpb24iKTsKLQot
ICAgICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwg
Ijxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxsRnJhbWUu
c291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gbG9jYXRpb24u
bGluZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNv
bHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFV
U0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGluZSArICI6
IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdl
ci5yZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBS
ZXN1bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5pc2hPblJl
c3VtZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBzaWdu
YWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0
IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5
IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5h
Z2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVzc2Fn
ZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVu
dC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8fCBt
ZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmluZyIg
fHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci0g
ICAgfQotCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0VGhyb3dpbmdUaHJ1TmF0aXZlQ29kZScs
ICdVbmNhdWdodEV4Y2VwdGlvbnMnLCAnSWdub3JlUmVzdW1lJyk7Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBs
b2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbnMuPC9wPgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRp
b24tdGhyb3ctaW4tcHJvbWlzZS1leHBlY3RlZC50eHQKaW5kZXggYzY5NzkwMS4uMTliY2Y2ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1
Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93
LWluLXByb21pc2UtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNDEgQEAKIENPTlNPTEUgTUVTU0FH
RTogbGluZSAzNjogdGVzdFRocm93aW5nSW5Qcm9taXNlCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUg
Mzg6IGluIHByb21pc2UKIENPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJy
b3IKLUNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhj
ZXB0aW9ucy4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1NTogdGVzdFRocm93aW5nSW5Qcm9taXNl
VGhlbgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU3OiBpbiBwcm9taXNlCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgNjA6IGluIHByb21pc2UudGhlbgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRo
cm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY2OiB0ZXN0VGhyb3dpbmdJ
blByb21pc2VUaGVuV2l0aENhdGNoCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjg6IGluIHByb21p
c2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3MTogaW4gcHJvbWlzZS50aGVuCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9yCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
NzQ6IGluIHByb21pc2UuY2F0Y2gKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3NTogRE9ORQorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDQ0OiB0ZXN0VGhyb3dpbmdJblByb21pc2VXaXRoQ2F0Y2gKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSA0NjogaW4gcHJvbWlzZQorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDc6IHRocm93aW5nIFRlc3RFcnJvcgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ5OiBpbiBwcm9t
aXNlLmNhdGNoCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTA6IERPTkUKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSA4MDogdGVzdFRocm93aW5nSW5Qcm9taXNlV2l0aFJldGhyb3dJbkNhdGNoCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgODI6IGluIHByb21pc2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3
OiB0aHJvd2luZyBUZXN0RXJyb3IKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4NTogaW4gcHJvbWlz
ZS5jYXRjaAorQ2hlY2tpbmcgbm8gcGF1c2VzIHdpdGhpbiBQcm9taXNlcyB3aGVuIHBhdXNpbmcg
b24gdW5jYXVnaHQgZXhjZXB0aW9ucy4KIAotUEFVU0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgorCis9
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5Qcm9taXNlCist
LSBSdW5uaW5nIHRlc3QgY2FzZTogQnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9uLlByb21pc2UuRXhj
ZXB0aW9uSW5Qcm9taXNlQ29uc3RydWN0b3IKK1BBU1M6IFNob3VsZCBub3QgcGF1c2UsIGV4Y2Vw
dGlvbiBpcyAnY2F1Z2h0JyBieSBQcm9taXNlLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQnJl
YWtPblVuY2F1Z2h0RXhjZXB0aW9uLlByb21pc2UuRXhjZXB0aW9uSW5Qcm9taXNlVGhlbldpdGhv
dXRDYXRjaAorUEFTUzogU2hvdWxkIG5vdCBwYXVzZSwgZXhjZXB0aW9uIGlzICdjYXVnaHQnIGJ5
IFByb21pc2UuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBCcmVha09uVW5jYXVnaHRFeGNlcHRp
b24uUHJvbWlzZS5FeGNlcHRpb25JblByb21pc2VUaGVuV2l0aENhdGNoCitQQVNTOiBTaG91bGQg
bm90IHBhdXNlLCBleGNlcHRpb24gaXMgJ2NhdWdodCcgYnkgUHJvbWlzZS4KKworLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IEJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbklu
UHJvbWlzZUNhdGNoCitQQVNTOiBTaG91bGQgbm90IHBhdXNlLCBleGNlcHRpb24gaXMgJ2NhdWdo
dCcgYnkgUHJvbWlzZS4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IEJyZWFrT25VbmNhdWdodEV4
Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZVRoZW5BbmRSZXRocm93bkluQ2F0Y2gK
K1BBU1M6IFNob3VsZCBub3QgcGF1c2UsIGV4Y2VwdGlvbiBpcyAnY2F1Z2h0JyBieSBQcm9taXNl
LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
dW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVn
aHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwNjhhOWEuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlv
bi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0Y2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODA6IHRlc3RUaHJv
d2luZ0luUHJvbWlzZVdpdGhSZXRocm93SW5DYXRjaAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDgy
OiBpbiBwcm9taXNlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhyb3dpbmcgVGVzdEVycm9y
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODU6IGluIHByb21pc2UuY2F0Y2gKLUNoZWNraW5nIHBh
dXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24gdW5jYXVnaHQgZXhjZXB0aW9ucy4KLQotUEFV
U0UgIzEgQVQ6IGRvVGhyb3c6ODoyMgotUEFVU0UgIzIgQVQ6IHByb21pc2VDYXRjaDo4NjoxNgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5j
YXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtcmV0aHJvdy1pbi1jYXRjaC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlv
bi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0Y2guaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYWE2ZTc4Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Ut
cmV0aHJvdy1pbi1jYXRjaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotPCFk
b2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4v
cmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBmdW5jdGlvbiBkb0V4Y2VwdGlvblRlc3QodGVzdE5h
bWUsIGV4Y2VwdGlvbkJyZWFrVHlwZSwgcmVzdW1lQWN0aW9uKQotICAgIHsKLSAgICAgICAgdmFy
IHBhdXNlcyA9IDA7Ci0gICAgICAgIHZhciBpbmRleCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24g
cnVuVGVzdENhc2UodGVzdCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgic2V0VGltZW91dCgiICsgdGVzdCArICIsIDUwKSIpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7
Ci0gICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0gICAg
ICAgICAgICBpZiAoIS9icmVhay1vbi1leGNlcHRpb24tdGVzdHNcLmpzJC8udGVzdChzY3JpcHRP
YmplY3QudXJsKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChl
eGNlcHRpb25CcmVha1R5cGUgPT0gJ0FsbEV4Y2VwdGlvbnMnKQotICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJs
ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJs
ZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgcnVuVGVzdENhc2UodGVzdE5hbWUpOwotICAgICAg
ICB9KTsKLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hh
bmdlLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotICAgICAgICAgICAgaWYg
KGNhbGxGcmFtZSkgewotICAgICAgICAgICAgICAgIC8vIFBhdXNpbmcuCi0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5wYXVz
ZVJlYXNvbiA9PSAiZXhjZXB0aW9uIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgZnVuY05hbWUg
PSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiI7Ci0gICAgICAgICAgICAg
ICAgdmFyIGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAg
ICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOwotICAgICAgICAgICAg
ICAgIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAxOwotCi0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNFICMiICsgKCsrcGF1c2VzKSArICIgQVQ6ICIg
KyBmdW5jTmFtZSArICI6IiArIGxpbmUgKyAiOiIgKyBjb2x1bW4pOwotICAgICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0KLSAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gUmVzdW1pbmcuCi0gICAgICAgICAgICAgICAgaWYg
KHJlc3VtZUFjdGlvbiA9PSAnRmluaXNoT25SZXN1bWUnKQotICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsK
LQotICAgICAgICAvLyBUaGlzIGlzIGEgc2lnbmFsIG1lY2hhbmlzbSBmb3IgdGhlIHdlYiBwcm9j
ZXNzIHRvIHRlbGwgdXMgdGhhdCB0aGUgdGVzdCBpcyBkb25lLgotICAgICAgICAvLyBUaGUgd2Vi
IHByb2Nlc3MgZmlyZXMgdGhlIHNpZ25hbCBieSBkb2luZyBjb25zb2xlLmxvZygiRE9ORSIpLgot
ICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5Mb2dNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAg
ICAgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YS5tZXNzYWdlOwotICAgICAgICAgICAg
aWYgKCFtZXNzYWdlLnBhcmFtZXRlcnMgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzLmxlbmd0aCAhPT0g
MSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAobWVzc2FnZS5wYXJh
bWV0ZXJzWzBdLnR5cGUgIT09ICJzdHJpbmciIHx8IG1lc3NhZ2UucGFyYW1ldGVyc1swXS5kZXNj
cmlwdGlvbiAhPT0gIkRPTkUiKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIElu
c3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOwotICAgIH0KLQotICAgIGRvRXhjZXB0aW9uVGVzdCgn
dGVzdFRocm93aW5nSW5Qcm9taXNlV2l0aFJldGhyb3dJbkNhdGNoJywgJ1VuY2F1Z2h0RXhjZXB0
aW9ucycsICdGaW5pc2hPblJlc3VtZScpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4g
cGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdo
dC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10aGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ct
aW4tcHJvbWlzZS10aGVuLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZGJiNDYxZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
YnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA1NTogdGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDU3
OiBpbiBwcm9taXNlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6IGluIHByb21pc2UudGhlbgot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgotQ2hlY2tpbmcgcGF1
c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLgotCi1QQVVT
RSAjMSBBVDogZG9UaHJvdzo4OjIyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS10
aGVuLXdpdGgtY2F0Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4td2l0
aC1jYXRjaC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5OTUw
NWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9u
LXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4td2l0aC1jYXRjaC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgNjY6IHRlc3RUaHJvd2luZ0luUHJvbWlzZVRoZW5XaXRoQ2F0Y2gKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSA2ODogaW4gcHJvbWlzZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDcxOiBpbiBw
cm9taXNlLnRoZW4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiB0aHJvd2luZyBUZXN0RXJyb3IK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSA3NDogaW4gcHJvbWlzZS5jYXRjaAotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDc1OiBET05FCi1DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5n
IG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbnMuCi0KLVBBVVNFICMxIEFUOiBkb1Rocm93Ojg6MjIKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1
Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4td2l0aC1jYXRjaC5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10
aHJvdy1pbi1wcm9taXNlLXRoZW4td2l0aC1jYXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3ZDExODI1My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhl
bi13aXRoLWNhdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IWRvY3R5
cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNv
dXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1m
dW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwg
ZXhjZXB0aW9uQnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1
c2VzID0gMDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5U
ZXN0Q2FzZSh0ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KCJzZXRUaW1lb3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAg
ICAgICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAg
ICAgIGlmICghL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVj
dC51cmwpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2Vw
dGlvbkJyZWFrVHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9
IGZhbHNlOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9
IGZhbHNlOwotCi0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0p
OwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2Us
IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2Fs
bEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVh
c29uID09ICJleGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNh
bGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2
YXIgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAg
ICAgIHZhciBsaW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAg
dmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1
bmNOYW1lICsgIjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVz
dW1lQWN0aW9uID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0g
ICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3Mg
dG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJv
Y2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAg
ICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAg
ICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAo
IW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRl
cnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0
aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci0gICAgfQotCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0
VGhyb3dpbmdJblByb21pc2VUaGVuV2l0aENhdGNoJywgJ1VuY2F1Z2h0RXhjZXB0aW9ucycsICdJ
Z25vcmVSZXN1bWUnKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotICAgIDxwPkNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcgb24g
dW5jYXVnaHQgZXhjZXB0aW9ucy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9u
LXRocm93LWluLXByb21pc2UtdGhlbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4uaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGUwNzY2Zi4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9u
LXRocm93LWluLXByb21pc2UtdGhlbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBA
QAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBmdW5jdGlvbiBkb0V4Y2VwdGlvblRlc3Qo
dGVzdE5hbWUsIGV4Y2VwdGlvbkJyZWFrVHlwZSwgcmVzdW1lQWN0aW9uKQotICAgIHsKLSAgICAg
ICAgdmFyIHBhdXNlcyA9IDA7Ci0gICAgICAgIHZhciBpbmRleCA9IDA7Ci0KLSAgICAgICAgZnVu
Y3Rpb24gcnVuVGVzdENhc2UodGVzdCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZSgic2V0VGltZW91dCgiICsgdGVzdCArICIsIDUwKSIpOwotICAgICAgICB9Ci0K
LSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2
ZW50KSB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7
Ci0gICAgICAgICAgICBpZiAoIS9icmVhay1vbi1leGNlcHRpb24tdGVzdHNcLmpzJC8udGVzdChz
Y3JpcHRPYmplY3QudXJsKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAg
IGlmIChleGNlcHRpb25CcmVha1R5cGUgPT0gJ0FsbEV4Y2VwdGlvbnMnKQotICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQu
ZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQu
ZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgcnVuVGVzdENhc2UodGVzdE5hbWUpOwot
ICAgICAgICB9KTsKLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5DYWxsRnJhbWVz
RGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9
IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lOwotICAgICAgICAg
ICAgaWYgKGNhbGxGcmFtZSkgewotICAgICAgICAgICAgICAgIC8vIFBhdXNpbmcuCi0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdl
ci5wYXVzZVJlYXNvbiA9PSAiZXhjZXB0aW9uIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgZnVu
Y05hbWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiI7Ci0gICAgICAg
ICAgICAgICAgdmFyIGxvY2F0aW9uID0gY2FsbEZyYW1lLnNvdXJjZUNvZGVMb2NhdGlvbjsKLSAg
ICAgICAgICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmVOdW1iZXIgKyAxOwotICAgICAg
ICAgICAgICAgIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1bW5OdW1iZXIgKyAxOwotCi0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNFICMiICsgKCsrcGF1c2VzKSArICIg
QVQ6ICIgKyBmdW5jTmFtZSArICI6IiArIGxpbmUgKyAiOiIgKyBjb2x1bW4pOwotICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0KLSAgICAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gUmVzdW1pbmcuCi0gICAgICAgICAgICAg
ICAgaWYgKHJlc3VtZUFjdGlvbiA9PSAnRmluaXNoT25SZXN1bWUnKQotICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9KTsKLQotICAgICAgICAvLyBUaGlzIGlzIGEgc2lnbmFsIG1lY2hhbmlzbSBmb3IgdGhlIHdl
YiBwcm9jZXNzIHRvIHRlbGwgdXMgdGhhdCB0aGUgdGVzdCBpcyBkb25lLgotICAgICAgICAvLyBU
aGUgd2ViIHByb2Nlc3MgZmlyZXMgdGhlIHNpZ25hbCBieSBkb2luZyBjb25zb2xlLmxvZygiRE9O
RSIpLgotICAgICAgICBXZWJJbnNwZWN0b3IubG9nTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5Mb2dNYW5hZ2VyLkV2ZW50Lk1lc3NhZ2VBZGRlZCwgZnVuY3Rpb24oZXZlbnQp
IHsKLSAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YS5tZXNzYWdlOwotICAgICAg
ICAgICAgaWYgKCFtZXNzYWdlLnBhcmFtZXRlcnMgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzLmxlbmd0
aCAhPT0gMSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAobWVzc2Fn
ZS5wYXJhbWV0ZXJzWzBdLnR5cGUgIT09ICJzdHJpbmciIHx8IG1lc3NhZ2UucGFyYW1ldGVyc1sw
XS5kZXNjcmlwdGlvbiAhPT0gIkRPTkUiKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0pOwotCi0gICAg
ICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOwotICAgIH0KLQotICAgIGRvRXhjZXB0aW9u
VGVzdCgndGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbicsICdVbmNhdWdodEV4Y2VwdGlvbnMnLCAn
RmluaXNoT25SZXN1bWUnKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotICAgIDxwPkNoZWNraW5nIHBhdXNlIGxvY2F0aW9ucyB3aGVuIHBhdXNpbmcg
b24gdW5jYXVnaHQgZXhjZXB0aW9ucy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0
aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1jYXRjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWlu
LXByb21pc2Utd2l0aC1jYXRjaC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGVkODE1NTIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXdpdGgtY2F0
Y2gtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgNDQ6IHRlc3RUaHJvd2luZ0luUHJvbWlzZVdpdGhDYXRjaAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDQ2OiBpbiBwcm9taXNlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzogdGhy
b3dpbmcgVGVzdEVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6IGluIHByb21pc2UuY2F0
Y2gKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MDogRE9ORQotQ2hlY2tpbmcgcGF1c2UgbG9jYXRp
b25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLgotCi1QQVVTRSAjMSBBVDog
ZG9UaHJvdzo4OjIyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS13aXRoLWNhdGNo
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQt
ZXhjZXB0aW9uLXRocm93LWluLXByb21pc2Utd2l0aC1jYXRjaC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlYTQ3MTEwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlz
ZS13aXRoLWNhdGNoLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBACi08IWRvY3R5
cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNv
dXJjZXMvYnJlYWstb24tZXhjZXB0aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1m
dW5jdGlvbiB0ZXN0KCkgewotICAgIGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwg
ZXhjZXB0aW9uQnJlYWtUeXBlLCByZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1
c2VzID0gMDsKLSAgICAgICAgdmFyIGluZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5U
ZXN0Q2FzZSh0ZXN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KCJzZXRUaW1lb3V0KCIgKyB0ZXN0ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAg
ICAgICAgICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAg
ICAgIGlmICghL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVj
dC51cmwpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2Vw
dGlvbkJyZWFrVHlwZSA9PSAnQWxsRXhjZXB0aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9
IGZhbHNlOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9
IGZhbHNlOwotCi0gICAgICAgICAgICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0p
OwotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2Us
IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2Fs
bEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVh
c29uID09ICJleGNlcHRpb24iKTsKLQotICAgICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNh
bGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2
YXIgbG9jYXRpb24gPSBjYWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAg
ICAgIHZhciBsaW5lID0gbG9jYXRpb24ubGluZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAg
dmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiUEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1
bmNOYW1lICsgIjoiICsgbGluZSArICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAvLyBSZXN1bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVz
dW1lQWN0aW9uID09ICdGaW5pc2hPblJlc3VtZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0pOwotCi0g
ICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3Mg
dG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJv
Y2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAg
ICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAg
ICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAo
IW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRl
cnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0
aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5yZWxvYWRQYWdlKCk7Ci0gICAgfQotCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0
VGhyb3dpbmdJblByb21pc2VXaXRoQ2F0Y2gnLCAnVW5jYXVnaHRFeGNlcHRpb25zJywgJ0lnbm9y
ZVJlc3VtZScpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNh
dWdodCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhy
b3ctaW4tcHJvbWlzZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
LW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLmh0bWwKaW5kZXggODM5Y2Uz
ZS4uNWI5MGVlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10
aHJvdy1pbi1wcm9taXNlLmh0bWwKQEAgLTEsNzIgKzEsODAgQEAKLTwhZG9jdHlwZSBodG1sPgor
PCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4vcmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJlYWstb24tZXhjZXB0
aW9uLXRlc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkgewotICAg
IGZ1bmN0aW9uIGRvRXhjZXB0aW9uVGVzdCh0ZXN0TmFtZSwgZXhjZXB0aW9uQnJlYWtUeXBlLCBy
ZXN1bWVBY3Rpb24pCi0gICAgewotICAgICAgICB2YXIgcGF1c2VzID0gMDsKLSAgICAgICAgdmFy
IGluZGV4ID0gMDsKLQotICAgICAgICBmdW5jdGlvbiBydW5UZXN0Q2FzZSh0ZXN0KSB7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KCIgKyB0ZXN0
ICsgIiwgNTApIik7Ci0gICAgICAgIH0KLQotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVu
dC5TY3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRP
YmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKLSAgICAgICAgICAgIGlmICghL2JyZWFrLW9uLWV4
Y2VwdGlvbi10ZXN0c1wuanMkLy50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQotICAgICAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbkJyZWFrVHlwZSA9PSAnQWxs
RXhjZXB0aW9ucycpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdl
ci5hbGxFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5j
YXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNhYmxlZCA9IGZhbHNlOwotCi0gICAgICAgICAg
ICBydW5UZXN0Q2FzZSh0ZXN0TmFtZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNYW5hZ2VyLkV2ZW50LkNhbGxGcmFtZXNEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0g
ICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5h
Y3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgICAgICBpZiAoY2FsbEZyYW1lKSB7Ci0gICAgICAgICAg
ICAgICAgLy8gUGF1c2luZy4KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09ICJleGNlcHRpb24iKTsK
LQotICAgICAgICAgICAgICAgIHZhciBmdW5jTmFtZSA9IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUg
fHwgIjxhbm9ueW1vdXM+IjsKLSAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBjYWxsRnJh
bWUuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICAgICAgICAgIHZhciBsaW5lID0gbG9jYXRp
b24ubGluZU51bWJlciArIDE7Ci0gICAgICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGxvY2F0aW9u
LmNvbHVtbk51bWJlciArIDE7Ci0KLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
UEFVU0UgIyIgKyAoKytwYXVzZXMpICsgIiBBVDogIiArIGZ1bmNOYW1lICsgIjoiICsgbGluZSAr
ICI6IiArIGNvbHVtbik7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFu
YWdlci5yZXN1bWUoKTsKLQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAv
LyBSZXN1bWluZy4KLSAgICAgICAgICAgICAgICBpZiAocmVzdW1lQWN0aW9uID09ICdGaW5pc2hP
blJlc3VtZScpCi0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7CitUZXN0UGFnZS5hbGxvd1VuY2F1Z2h0RXhjZXB0aW9ucyA9IHRydWU7CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIC8vIFBhdXNlIG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbiBiZWhhdmlvciBp
biBQcm9taXNlcyBpcyBsaWtlbHkgdG8gY2hhbmdlLiBUaGlzIHRlc3RzIG91cgorICAgIC8vIGN1
cnJlbnQgYmVoYXZpb3Igb2Ygbm90IHBhdXNpbmcgZm9yIHVuY2F1Z2h0IGV4Y2VwdGlvbiB3aGVu
IHRoZSBQcm9taXNlIHN3YWxsb3dzCisgICAgLy8gdGhlIGV4Y2VwdGlvbi4gU2VlIHRoZXNlIGJ1
Z3M6CisgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xMjQwNjY+IFVuY2F1Z2h0
IGV4Y2VwdGlvbnMgcmFpc2VkIGluIHByb21pc2UgY29tcGxldGlvbiBmdW5jdGlvbnMgYXJlIG5v
dCBwcmludGVkIHRvIGNvbnNvbGUKKyAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9i
LzE0NzUwMj4gVW5jYXVnaHQgRXhjZXB0aW9uIGluIHByb21pc2UgZG9lcyBub3QgdHJpZ2dlciBi
cmVhayBvbiB1bmNhdWdodCBleGNlcHRpb24gYnJlYWtwb2ludCAgICAKKworICAgIFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludC5kaXNh
YmxlZCA9IGZhbHNlOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3lu
Y1N1aXRlKCJCcmVha09uVW5jYXVnaHRFeGNlcHRpb24uUHJvbWlzZSIpOworCisgICAgZnVuY3Rp
b24gYWRkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9ufSkgeworICAgICAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAg
ICAgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGV4cHJlc3Npb24pOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHNldFRpbWVvdXQoKCkgPT4geyBUZXN0UGFn
ZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiQWZ0ZXJUZXN0RnVuY3Rpb24iKTsgfSwgNTApYCk7
CisKKyAgICAgICAgICAgICAgICBsZXQgbGlzdGVuZXIgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFn
ZXIuRXZlbnQuUGF1c2VkLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5mYWlsKCJTaG91bGQgbm90IGhhdmUgcGF1c2VkLiIpOworICAgICAgICAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOworICAgICAgICAgICAg
ICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3Quc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoIkFmdGVyVGVzdEZ1bmN0aW9u
IiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcygi
U2hvdWxkIG5vdCBwYXVzZSwgZXhjZXB0aW9uIGlzICdjYXVnaHQnIGJ5IFByb21pc2UuIik7Cisg
ICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVtb3ZlRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgbGlz
dGVuZXIpOworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBz
aWduYWwgbWVjaGFuaXNtIGZvciB0aGUgd2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0
ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8vIFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFs
IGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJET05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVz
c2FnZUFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBl
dmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAgICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8
fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVuZ3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmlu
ZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7
CiAgICAgfQogCi0gICAgZG9FeGNlcHRpb25UZXN0KCd0ZXN0VGhyb3dpbmdJblByb21pc2UnLCAn
VW5jYXVnaHRFeGNlcHRpb25zJywgJ0ZpbmlzaE9uUmVzdW1lJyk7CisgICAgYWRkVGVzdENhc2Uo
eworICAgICAgICBuYW1lOiAiQnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9uLlByb21pc2UuRXhjZXB0
aW9uSW5Qcm9taXNlQ29uc3RydWN0b3IiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkJyZWFrIG9u
IGFuIGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJvbWlzZSBjb25zdHJ1Y3Rvci4iLAorICAgICAgICBl
eHByZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0VGhyb3dpbmdJblByb21pc2UpIiwKKyAgICB9KTsK
KworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25VbmNhdWdodEV4Y2Vw
dGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZVRoZW5XaXRob3V0Q2F0Y2giLAorICAgICAg
ICBkZXNjcmlwdGlvbjogIkJyZWFrIG9uIGFuIGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJvbWlzZSB0
aGVuIGhhbmRsZXIgd2l0aCBubyBjYXRjaCBoYW5kbGVyLiIsCisgICAgICAgIGV4cHJlc3Npb246
ICJzZXRUaW1lb3V0KHRlc3RUaHJvd2luZ0luUHJvbWlzZVRoZW4pIiwKKyAgICB9KTsKKworICAg
IGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5Q
cm9taXNlLkV4Y2VwdGlvbkluUHJvbWlzZVRoZW5XaXRoQ2F0Y2giLAorICAgICAgICBkZXNjcmlw
dGlvbjogIkJyZWFrIG9uIGFuIGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJvbWlzZSB0aGVuIGhhbmRs
ZXIgd2l0aCBhIGNhdGNoIGhhbmRsZXIuIiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVv
dXQodGVzdFRocm93aW5nSW5Qcm9taXNlVGhlbldpdGhDYXRjaCkiLAorICAgIH0pOworCisgICAg
YWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9uLlBy
b21pc2UuRXhjZXB0aW9uSW5Qcm9taXNlQ2F0Y2giLAorICAgICAgICBkZXNjcmlwdGlvbjogIkJy
ZWFrIG9uIGFuIGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJvbWlzZSBjYXRjaCB3aXRoIG5vIHRoZW4g
aGFuZGxlci4iLAorICAgICAgICBleHByZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0VGhyb3dpbmdJ
blByb21pc2VXaXRoQ2F0Y2gpIiwKKyAgICB9KTsKKworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIkJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5Qcm9taXNlLkV4Y2VwdGlvbkluUHJv
bWlzZVRoZW5BbmRSZXRocm93bkluQ2F0Y2giLAorICAgICAgICBkZXNjcmlwdGlvbjogIkJyZWFr
IG9uIGFuIGV4Y2VwdGlvbiB0aHJvd24gaW4gUHJvbWlzZSB0aGVuIGhhbmRsZXIsIGFuZCB0aGVu
IGFnYWluIHdoZW4gcmV0aHJvd24gaW4gY2F0Y2ggaGFuZGxlci4iLAorICAgICAgICBleHByZXNz
aW9uOiAic2V0VGltZW91dCh0ZXN0VGhyb3dpbmdJblByb21pc2VXaXRoUmV0aHJvd0luQ2F0Y2gp
IiwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwogfQogPC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tp
bmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLjwv
cD4KKzxwPkNoZWNraW5nIG5vIHBhdXNlcyB3aXRoaW4gUHJvbWlzZXMgd2hlbiBwYXVzaW5nIG9u
IHVuY2F1Z2h0IGV4Y2VwdGlvbnMuPC9wPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlv
bi13aW5kb3ctb25lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXdpbmRvdy1vbmVycm9yLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI3ZTU0Yi4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0
aW9uLXdpbmRvdy1vbmVycm9yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAs
MCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IHRocm93aW5nIFRlc3RFcnJvcgotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDg6IHdpbmRvdy5vbmVycm9yOiBUZXN0RXJyb3IKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSA5OiBET05FCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODogVGVzdEVycm9yCi1D
aGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIHVuY2F1Z2h0IGV4Y2VwdGlv
bnMuCi0KLVBBVVNFICMxIEFUOiBkb1Rocm93Ojg6MjIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi13aW5kb3ct
b25lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVu
Y2F1Z2h0LWV4Y2VwdGlvbi13aW5kb3ctb25lcnJvci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3NDZiZGU4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24td2luZG93LW9uZXJyb3IuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL3Jlc291cmNlcy9icmVhay1vbi1leGNl
cHRpb24tdGVzdHMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXdpbmRvdy5vbmVycm9yID0gZnVu
Y3Rpb24oZSkgewotICAgIGNvbnNvbGUubG9nKCJ3aW5kb3cub25lcnJvcjogIiArIGUpOwotICAg
IGNvbnNvbGUubG9nKCJET05FIik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgZnVuY3Rp
b24gZG9FeGNlcHRpb25UZXN0KHRlc3ROYW1lLCBleGNlcHRpb25CcmVha1R5cGUsIHJlc3VtZUFj
dGlvbikKLSAgICB7Ci0gICAgICAgIHZhciBwYXVzZXMgPSAwOwotICAgICAgICB2YXIgaW5kZXgg
PSAwOwotCi0gICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RDYXNlKHRlc3QpIHsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInNldFRpbWVvdXQoIiArIHRlc3QgKyAiLCA1
MCkiKTsKLSAgICAgICAgfQotCi0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlw
dEFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgdmFyIHNjcmlwdE9iamVjdCA9
IGV2ZW50LmRhdGEuc2NyaXB0OwotICAgICAgICAgICAgaWYgKCEvYnJlYWstb24tZXhjZXB0aW9u
LXRlc3RzXC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgICAgICBpZiAoZXhjZXB0aW9uQnJlYWtUeXBlID09ICdBbGxFeGNlcHRp
b25zJykKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbEV4
Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hbGxVbmNhdWdodEV4
Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIHJ1blRl
c3RDYXNlKHRlc3ROYW1lKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFn
ZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAg
ICAgIHZhciBjYWxsRnJhbWUgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNh
bGxGcmFtZTsKLSAgICAgICAgICAgIGlmIChjYWxsRnJhbWUpIHsKLSAgICAgICAgICAgICAgICAv
LyBQYXVzaW5nLgotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1hbmFnZXIucGF1c2VSZWFzb24gPT0gImV4Y2VwdGlvbiIpOwotCi0gICAg
ICAgICAgICAgICAgdmFyIGZ1bmNOYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAiPGFu
b255bW91cz4iOwotICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IGNhbGxGcmFtZS5zb3Vy
Y2VDb2RlTG9jYXRpb247Ci0gICAgICAgICAgICAgICAgdmFyIGxpbmUgPSBsb2NhdGlvbi5saW5l
TnVtYmVyICsgMTsKLSAgICAgICAgICAgICAgICB2YXIgY29sdW1uID0gbG9jYXRpb24uY29sdW1u
TnVtYmVyICsgMTsKLQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVVTRSAj
IiArICgrK3BhdXNlcykgKyAiIEFUOiAiICsgZnVuY05hbWUgKyAiOiIgKyBsaW5lICsgIjoiICsg
Y29sdW1uKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJl
c3VtZSgpOwotCi0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIFJlc3Vt
aW5nLgotICAgICAgICAgICAgICAgIGlmIChyZXN1bWVBY3Rpb24gPT0gJ0ZpbmlzaE9uUmVzdW1l
JykKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gVGhpcyBpcyBhIHNpZ25hbCBt
ZWNoYW5pc20gZm9yIHRoZSB3ZWIgcHJvY2VzcyB0byB0ZWxsIHVzIHRoYXQgdGhlIHRlc3QgaXMg
ZG9uZS4KLSAgICAgICAgLy8gVGhlIHdlYiBwcm9jZXNzIGZpcmVzIHRoZSBzaWduYWwgYnkgZG9p
bmcgY29uc29sZS5sb2coIkRPTkUiKS4KLSAgICAgICAgV2ViSW5zcGVjdG9yLmxvZ01hbmFnZXIu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTG9nTWFuYWdlci5FdmVudC5NZXNzYWdlQWRk
ZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRh
dGEubWVzc2FnZTsKLSAgICAgICAgICAgIGlmICghbWVzc2FnZS5wYXJhbWV0ZXJzIHx8IG1lc3Nh
Z2UucGFyYW1ldGVycy5sZW5ndGggIT09IDEpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgaWYgKG1lc3NhZ2UucGFyYW1ldGVyc1swXS50eXBlICE9PSAic3RyaW5nIiB8fCBt
ZXNzYWdlLnBhcmFtZXRlcnNbMF0uZGVzY3JpcHRpb24gIT09ICJET05FIikKLSAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwot
ICAgICAgICB9KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoKTsKLSAgICB9
Ci0KLSAgICBkb0V4Y2VwdGlvblRlc3QoJ2RvVGhyb3cnLCAnVW5jYXVnaHRFeGNlcHRpb25zJywg
J0lnbm9yZVJlc3VtZScpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci0gICAgPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1c2luZyBv
biB1bmNhdWdodCBleGNlcHRpb25zLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRp
b24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdo
dC1leGNlcHRpb24uaHRtbAppbmRleCBhYzUxM2M0Li43YzRkNDRjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0
LWV4Y2VwdGlvbi5odG1sCkBAIC0xLDcyICsxLDgyIEBACi08IWRvY3R5cGUgaHRtbD4KKzwhRE9D
VFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuL3Jl
c291cmNlcy9icmVhay1vbi1leGNlcHRpb24tdGVzdHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JyZWFrLW9uLWV4Y2VwdGlvbi10
ZXN0cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBmdW5j
dGlvbiBkb0V4Y2VwdGlvblRlc3QodGVzdE5hbWUsIGV4Y2VwdGlvbkJyZWFrVHlwZSwgcmVzdW1l
QWN0aW9uKQotICAgIHsKLSAgICAgICAgdmFyIHBhdXNlcyA9IDA7Ci0gICAgICAgIHZhciBpbmRl
eCA9IDA7Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuVGVzdENhc2UodGVzdCkgewotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dCgiICsgdGVzdCArICIs
IDUwKSIpOwotICAgICAgICB9Ci0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdl
ci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2Ny
aXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0T2JqZWN0
ID0gZXZlbnQuZGF0YS5zY3JpcHQ7Ci0gICAgICAgICAgICBpZiAoIS9icmVhay1vbi1leGNlcHRp
b24tdGVzdHNcLmpzJC8udGVzdChzY3JpcHRPYmplY3QudXJsKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgICAgIGlmIChleGNlcHRpb25CcmVha1R5cGUgPT0gJ0FsbEV4Y2Vw
dGlvbnMnKQotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxs
RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0
RXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgcnVu
VGVzdENhc2UodGVzdE5hbWUpOwotICAgICAgICB9KTsKLQotICAgICAgICBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFu
YWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgewotICAgICAg
ICAgICAgdmFyIGNhbGxGcmFtZSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZl
Q2FsbEZyYW1lOwotICAgICAgICAgICAgaWYgKGNhbGxGcmFtZSkgewotICAgICAgICAgICAgICAg
IC8vIFBhdXNpbmcuCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5wYXVzZVJlYXNvbiA9PSAiZXhjZXB0aW9uIik7Ci0KLSAg
ICAgICAgICAgICAgICB2YXIgZnVuY05hbWUgPSBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8ICI8
YW5vbnltb3VzPiI7Ci0gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gY2FsbEZyYW1lLnNv
dXJjZUNvZGVMb2NhdGlvbjsKLSAgICAgICAgICAgICAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxp
bmVOdW1iZXIgKyAxOwotICAgICAgICAgICAgICAgIHZhciBjb2x1bW4gPSBsb2NhdGlvbi5jb2x1
bW5OdW1iZXIgKyAxOwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBVVNF
ICMiICsgKCsrcGF1c2VzKSArICIgQVQ6ICIgKyBmdW5jTmFtZSArICI6IiArIGxpbmUgKyAiOiIg
KyBjb2x1bW4pOwotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIu
cmVzdW1lKCk7Ci0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gUmVz
dW1pbmcuCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VtZUFjdGlvbiA9PSAnRmluaXNoT25SZXN1
bWUnKQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwor
VGVzdFBhZ2UuYWxsb3dVbmNhdWdodEV4Y2VwdGlvbnMgPSB0cnVlOworCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFsbFVuY2F1Z2h0RXhjZXB0
aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQgPSBmYWxzZTsKKworICAgIGxldCBzdWl0ZSA9IEluc3Bl
Y3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQnJlYWtPblVuY2F1Z2h0RXhjZXB0aW9uIik7CisK
KyAgICBmdW5jdGlvbiBhZGRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb259
KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2Ny
aXB0aW9uLAorICAgICAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoZXhwcmVzc2lvbik7CisgICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50
KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnBhdXNlUmVhc29uID09PSAiZXhjZXB0aW9uIiwgIlNo
b3VsZCBwYXVzZSBmb3IgZXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICBsZXQgY2Fs
bEZyYW1lID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Cisg
ICAgICAgICAgICAgICAgICAgIGxldCBuYW1lID0gY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCAi
PGFub255bW91cz4iOworICAgICAgICAgICAgICAgICAgICBsZXQgbG9jYXRpb24gPSBjYWxsRnJh
bWUuc291cmNlQ29kZUxvY2F0aW9uOworICAgICAgICAgICAgICAgICAgICBsZXQgbGluZSA9IGxv
Y2F0aW9uLmxpbmVOdW1iZXIgKyAxOworICAgICAgICAgICAgICAgICAgICBsZXQgY29sdW1uID0g
bG9jYXRpb24uY29sdW1uTnVtYmVyICsgMTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coYFBBVVNFIEFUICR7bmFtZX06JHtsaW5lfToke2NvbHVtbn1gKTsKKyAgICAgICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKS50aGVuKHJl
c29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0pOwotCi0gICAgICAgIC8vIFRoaXMgaXMgYSBzaWduYWwgbWVjaGFuaXNtIGZvciB0aGUg
d2ViIHByb2Nlc3MgdG8gdGVsbCB1cyB0aGF0IHRoZSB0ZXN0IGlzIGRvbmUuCi0gICAgICAgIC8v
IFRoZSB3ZWIgcHJvY2VzcyBmaXJlcyB0aGUgc2lnbmFsIGJ5IGRvaW5nIGNvbnNvbGUubG9nKCJE
T05FIikuCi0gICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkxvZ01hbmFnZXIuRXZlbnQuTWVzc2FnZUFkZGVkLCBmdW5jdGlvbihldmVu
dCkgewotICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBldmVudC5kYXRhLm1lc3NhZ2U7Ci0gICAg
ICAgICAgICBpZiAoIW1lc3NhZ2UucGFyYW1ldGVycyB8fCBtZXNzYWdlLnBhcmFtZXRlcnMubGVu
Z3RoICE9PSAxKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmIChtZXNz
YWdlLnBhcmFtZXRlcnNbMF0udHlwZSAhPT0gInN0cmluZyIgfHwgbWVzc2FnZS5wYXJhbWV0ZXJz
WzBdLmRlc2NyaXB0aW9uICE9PSAiRE9ORSIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0KLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKCk7CiAgICAgfQogCi0gICAgZG9FeGNlcHRp
b25UZXN0KCdkb1Rocm93JywgJ1VuY2F1Z2h0RXhjZXB0aW9ucycsICdJZ25vcmVSZXN1bWUnKTsK
KyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJCcmVha09uVW5jYXVnaHRFeGNlcHRp
b24uVW5jYXVnaHRFeGNlcHRpb25CYXNpYyIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQnJlYWsg
b24gYW4gdW5jYXVnaHQgZXhjZXB0aW9uIHRocm93biBpbiBhIGZ1bmN0aW9uLiIsCisgICAgICAg
IGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KGRvVGhyb3cpIiwKKyAgICB9KTsKKworICAgIGFkZFRl
c3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5VbmNhdWdo
dEV4Y2VwdGlvbkluRmluYWxseSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQnJlYWsgb24gYW4g
dW5jYXVnaHQgZXhjZXB0aW9uIHRocm93biBpbiBhIGZpbmFsbHkgYmxvY2suIiwKKyAgICAgICAg
ZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVzdEZpbmFsbHkpIiwKKyAgICB9KTsKKworICAgIGFk
ZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5VbmNh
dWdodEV4Y2VwdGlvblRocnVOYXRpdmVDb2RlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJCcmVh
ayBvbiBhbiB1bmNhdWdodCBleGNlcHRpb24gdGhyb3duIHRocnUgbmF0aXZlIGNvZGUgKE1hcC5w
cm90b3R5cGUuZm9yRWFjaCkuIiwKKyAgICAgICAgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodGVz
dFRocm93aW5nVGhydU5hdGl2ZUNvZGUpIiwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKKyAgICAgICAgbmFtZTogIkJyZWFrT25VbmNhdWdodEV4Y2VwdGlvbi5DYXVnaHRFeGNl
cHRpb24iLAorICAgICAgICBkZXNjcmlwdGlvbjogIk5vIGJyZWFrIG9uIGEgY2F1Z2h0IGV4Y2Vw
dGlvbi4iLAorICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAg
ICAgICAgICAgICB0ZXN0Q2F0Y2goKTsKKyAgICAgICAgICAgICAgICBUZXN0UGFnZS5kaXNwYXRj
aEV2ZW50VG9Gcm9udGVuZCgiQWZ0ZXJUZXN0RnVuY3Rpb24iKTsKKyAgICAgICAgICAgIH0pYCk7
CisKKyAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFn
ZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5F
dmVudC5QYXVzZWQsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZmFpbCgiU2hvdWxkIG5vdCBoYXZlIHBhdXNlZC4iKTsKKyAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOworICAgICAgICAgICAgICAgIHJlamVjdCgp
OworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2luZ2xlRmly
ZUV2ZW50TGlzdGVuZXIoIkFmdGVyVGVzdEZ1bmN0aW9uIiwgKGV2ZW50KSA9PiB7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKCJTaG91bGQgbm90IHBhdXNlLCBleGNlcHRpb24g
d2FzIGNhdWdodC4iKTsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5h
Z2VyLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVu
dC5QYXVzZWQsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5k
RmluaXNoKCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLSAgICA8cD5DaGVja2luZyBwYXVzZSBsb2NhdGlvbnMgd2hlbiBwYXVzaW5nIG9uIHVuY2F1
Z2h0IGV4Y2VwdGlvbnMuPC9wPgorPHA+Q2hlY2tpbmcgcGF1c2UgbG9jYXRpb25zIHdoZW4gcGF1
c2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zLjwvcD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlZGFiMGQ2
Li5mMjllNjZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yOTYsOCArMjk2LDYgQEAgd2Via2l0Lm9yZy9iLzE1MTcyOSBbIFlvc2VtaXRl
IF0gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9tZXRob2RzLWFzeW5jLmh0bWwgWwogCiB3ZWJr
aXQub3JnL2IvMTUyMDI1IFsgRGVidWcgXSBpbnNwZWN0b3IvY29uc29sZS9tZXNzYWdlc0NsZWFy
ZWQuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKLXdlYmtpdC5vcmcvYi8xNTI0OTIgWyBEZWJ1ZyBd
IGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24tY2F0Y2guaHRtbCBbIFBhc3Mg
VGltZW91dCBdCi0KIHdlYmtpdC5vcmcvYi8xNTUxMzggWyBZb3NlbWl0ZSBFbENhcGl0YW4gXSBp
bnNwZWN0b3IvY29uc29sZS9hZGRJbnNwZWN0ZWROb2RlLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQog
CiB3ZWJraXQub3JnL2IvMTU1MTUxIFsgRGVidWcgRWxDYXBpdGFuIF0gbWVkaWEvdHJhY2svdHJh
Y2stY3Vlcy1wYXVzZS1vbi1leGl0Lmh0bWwgWyBQYXNzIFRpbWVvdXQgXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkOGFmZDZhLi4wZjIyOWNkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzM3LDE2ICs3Mzcs
MTYgQEAgd2Via2l0Lm9yZy9iLzEyMzI1MCBwbHVnaW5zL2Rlc3Ryb3ktZHVyaW5nLW5wcC1uZXct
b2JqZWN0LXdpdGgtZmFsbGJhY2stY29udGVudC4KIHdlYmtpdC5vcmcvYi8xMjMzNjkgc3ZnL2Nz
cy9wYXJlbnQtc2hhZG93LW9mZnNjcmVlbi5zdmcgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtp
dC5vcmcvYi8xMjMzNjkgc3ZnL2Nzcy9yb290LXNoYWRvdy1vZmZzY3JlZW4uc3ZnIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8xNTE4MzIgaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0
Y2guaHRtbAotd2Via2l0Lm9yZy9iLzE1MTgzMiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24t
dW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLmh0bWwK
LXdlYmtpdC5vcmcvYi8xNTE4MzIgaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0
LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLXRoZW4uaHRtbAotd2Via2l0Lm9yZy9iLzE1MTgz
MiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWlu
LXByb21pc2Utd2l0aC1jYXRjaC5odG1sCi13ZWJraXQub3JnL2IvMTUxODMyIGluc3BlY3Rvci9k
ZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS5odG1s
CiBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmctY2FsbGVlLWFuZC1leGFtaW5l
LWRmZy1sb2NhbC5odG1sCiBpbnNwZWN0b3IvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlw
bGUtcHJvYmVzLmh0bWwKIGluc3BlY3Rvci9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1s
CiBpbnNwZWN0b3IvZGVidWdnZXIvcGF1c2UtcmVhc29uLmh0bWwKIAoraW5zcGVjdG9yL2RlYnVn
Z2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLmh0bWwgWyBTbG93IF0KK2lu
c3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24uaHRtbCBbIFNsb3cgXQoraW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNl
Lmh0bWwgWyBTbG93IF0KK2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNl
cHRpb24uaHRtbCBbIFNsb3cgXQorCiB3ZWJraXQub3JnL2IvMTI0MzExIGNvbXBvc2l0aW5nL3Jl
Z2lvbnMvdHJhbnNmb3JtLXRyYW5zcGFyZW50LXBvc2l0aW9uZWQtdmlkZW8taW5zaWRlLXJlZ2lv
bi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xMjQzMjEgYW5pbWF0
aW9ucy9yZXN1bWUtYWZ0ZXItcGFnZS1jYWNoZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KQEAgLTEy
MzUsMTMgKzEyMzUsNiBAQCB3ZWJraXQub3JnL2IvMTU4MDA2IGluc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtdGltZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi8xNTY2MzQgaW5z
cGVjdG9yL2Zvcm1hdHRpbmcvZm9ybWF0dGluZy1qYXZhc2NyaXB0Lmh0bWwgWyBQYXNzIFRpbWVv
dXQgXQogd2Via2l0Lm9yZy9iLzE1ODk0OCBpbnNwZWN0b3IvdGltZWxpbmUgWyBQYXNzIFRpbWVv
dXQgXQogCi13ZWJraXQub3JnL2IvMTU5MjcyIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1l
eGNlcHRpb24tZmluYWxseS5odG1sCi13ZWJraXQub3JnL2IvMTU5MjcyIGluc3BlY3Rvci9kZWJ1
Z2dlci9icmVhay1vbi1leGNlcHRpb24tbmF0aXZlLmh0bWwKLXdlYmtpdC5vcmcvYi8xNTkyNzIg
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi5odG1sCi13ZWJraXQub3JnL2Iv
MTU5MjcyIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tZmlu
YWxseS5odG1sCi13ZWJraXQub3JnL2IvMTU5MjcyIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1v
bi11bmNhdWdodC1leGNlcHRpb24tbmF0aXZlLmh0bWwKLXdlYmtpdC5vcmcvYi8xNTkyNzIgaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi5odG1sCi0KICMgQ29s
b3JzcGFjZXMgb24gQ0EgT3BlbkdMIGxheWVycyBub3QgYXZhaWxhYmxlIGluIFlvc2VtaXRlCiBb
IFlvc2VtaXRlIF0gZmFzdC9jYW52YXMvd2ViZ2wvbWF0Y2gtcGFnZS1jb2xvci1zcGFjZS5odG1s
IFsgU2tpcCBdCiAK
</data>
<flag name="review"
          id="306426"
          type_id="1"
          status="+"
          setter="timothy"
    />
    <flag name="commit-queue"
          id="306427"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>