<?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>178614</bug_id>
          
          <creation_ts>2017-10-20 21:32:39 -0700</creation_ts>
          <short_desc>Web Inspector: Support `async test() { ... }` in Inspector Test Suites</short_desc>
          <delta_ts>2017-11-15 13:01:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1362978</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-10-20 21:32:39 -0700</bug_when>
    <thetext>Support `async test() { ... }` in Inspector Test Suites

So we can use `await` in test code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362982</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-10-20 21:40:57 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #0)
&gt; Support `async test() { ... }` in Inspector Test Suites
&gt; 
&gt; So we can use `await` in test code.
😍</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362985</commentid>
    <comment_count>2</comment_count>
      <attachid>324485</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-10-20 21:46:48 -0700</bug_when>
    <thetext>Created attachment 324485
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362986</commentid>
    <comment_count>3</comment_count>
      <attachid>324486</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-10-20 21:49:29 -0700</bug_when>
    <thetext>Created attachment 324486
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362993</commentid>
    <comment_count>4</comment_count>
      <attachid>324486</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2017-10-20 22:05:13 -0700</bug_when>
    <thetext>Comment on attachment 324486
[PATCH] Proposed Fix

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

r=me.  One typo.  Also waiting on the tests to make sure it&apos;s all good :)

&gt; LayoutTests/inspector/unit-tests/async-test-suite.html:445
&gt; +        description: &quot;Check that an async suite with async test functions that throws with a runtime erorr will reject&quot;,

Typo.  &quot;erorr&quot; -&gt; &quot;error&quot;

&gt; Source/WebInspectorUI/UserInterface/Test/TestSuite.js:153
&gt; +                if (testcase.test.toString().startsWith(&quot;async &quot;))

This feels hacky, but I&apos;m not sure if there&apos;s any other way around it :|</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362999</commentid>
    <comment_count>5</comment_count>
      <attachid>324490</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-10-20 23:16:54 -0700</bug_when>
    <thetext>Created attachment 324490
[PATCH] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363000</commentid>
    <comment_count>6</comment_count>
      <attachid>324486</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-10-20 23:17:20 -0700</bug_when>
    <thetext>Comment on attachment 324486
[PATCH] Proposed Fix

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Test/TestSuite.js:153
&gt;&gt; +                if (testcase.test.toString().startsWith(&quot;async &quot;))
&gt; 
&gt; This feels hacky, but I&apos;m not sure if there&apos;s any other way around it :|

Switched to:

    if (testcase.test[Symbol.toStringTag] === &quot;AsyncFunction&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363008</commentid>
    <comment_count>7</comment_count>
      <attachid>324490</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-20 23:52:50 -0700</bug_when>
    <thetext>Comment on attachment 324490
[PATCH] For Landing

Clearing flags on attachment: 324490

Committed r223809: &lt;https://trac.webkit.org/changeset/223809&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372318</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 13:01:58 -0800</bug_when>
    <thetext>&lt;rdar://problem/35568648&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324485</attachid>
            <date>2017-10-20 21:46:48 -0700</date>
            <delta_ts>2017-10-20 21:49:29 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>async-test-1.patch</filename>
            <type>text/plain</type>
            <size>27407</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyOTkwYWY5MjA5ZS4uZDJjZTg4YWJiZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MyBAQAor
MjAxNy0xMC0yMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFN1cHBvcnQgYGFzeW5jIHRlc3QoKSB7IC4uLiB9YCBpbiBJbnNw
ZWN0b3IgVGVzdCBTdWl0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3ODYxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCB0aGUgYWJpbGl0eSB0byBoYXZlIHRlc3QgZnVuY3Rpb25zIGJlIGFzeW5j
IGZ1bmN0aW9ucy4gQSBzdWNjZXNzZnVsCisgICAgICAgIGFzeW5jIHRlc3QgZnVuY3Rpb24ganVz
dCBuZWVkcyB0byBjb21wbGV0ZSBldmFsdWF0aW9uLiBUbyBpbmRpY2F0ZQorICAgICAgICBmYWls
dXJlIGl0IHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCisKKyAgICAgICAgICAgIHN1aXRlLmFk
ZFRlc3RDYXNlKHsKKyAgICAgICAgICAgICAgICBuYW1lOiAiRXhjZXB0aW9uT2ZOb3JtYWwiLAor
ICAgICAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdCguLi4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgICAgIG5h
bWU6ICJFeGFtcGxlT2ZSZWplY3Rpb24iLAorICAgICAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7
CisgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGF3YWl0IFNvbWVBZ2VudC5tZXRob2Qo
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmVycm9yKQorICAgICAgICAgICAgICAg
ICAgICAgICAgdGhyb3cgIkV4Y2VwdGlvbiI7CisgICAgICAgICAgICAgICAgICAgIC4uLgorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICBVc2luZyBhc3luYyB0ZXN0
IGZ1bmN0aW9ucyBoYXMgdGhlIGFkZGVkIGJlbmVmaXQgdGhhdCBhIHJ1bnRpbWUgZXhjZXB0aW9u
CisgICAgICAgIGluc2lkZSBvZiBhc3luY2hyb25vdXMgdGVzdCBjb2RlIHdpbGwgcmVqZWN0IHRo
ZSBjdXJyZW50IHRlc3QgY2FzZSBpbnN0ZWFkCisgICAgICAgIG9mIHRpbWluZyBvdXQuIEZvciBl
eGFtcGxlLi4uCisgICAgICAgIAorICAgICAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAg
ICAgICAgICAgICAgIG5hbWU6ICJFeGFtcGxlT2ZSZWplY3Rpb25UaHJvdWdoUnVudGltZUV4Y2Vw
dGlvbiIsCisgICAgICAgICAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgbGV0IGFyciA9IFtdOworICAgICAgICAgICAgICAgICAgICBhcnIudGhpcy5kb2VzLm5vdC5l
eGlzdDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICAuLi4gc2hvdWxkIHdpbGwgbGVhZCB0byBhIGZhaWx1cmUgaW5zdGVhZCBvZiBhIHRpbWVvdXQu
CisgICAgICAgIAorICAgICAgICBUaGlzIHNob3VsZCBhbGxvdyB1cyB0byBzdHJ1Y3R1cmUgc29t
ZSBjb21tb24gdGVzdHMgbW9yZSBuYXR1cmFsbHksIGxpa2Ugc286CisKKyAgICAgICAgICAgIHN1
aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgICAgICBuYW1lOiAiRXhhbXBsZU9mTm9ybWFs
QXN5bmNUZXN0IiwKKyAgICAgICAgICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGAuLi5gKTsKKyAgICAgICAgICAg
ICAgICAgICAgbGV0IGV2ZW50ID0gYXdhaXQgV0kuTWFuYWdlci5hd2FpdEV2ZW50KC4uLik7Cisg
ICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IGV2ZW50LmRhdGEucmVzb3VyY2U7Cisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoLi4uKTsKKyAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbCguLi4pOworICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKC4uLik7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXN5
bmMtdGVzdC1zdWl0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVz
dHMvYXN5bmMtdGVzdC1zdWl0ZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3Rz
L3RhcmdldC1tYW5hZ2VyLmh0bWw6CisKIDIwMTctMTAtMjAgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvZHJh
Zy1kcm9wLWh0bWwtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1pbi1zYW1lLW9yaWdpbi5odG1sIGlzIGZs
YWt5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hc3luYy10
ZXN0LXN1aXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3Rz
L2FzeW5jLXRlc3Qtc3VpdGUtZXhwZWN0ZWQudHh0CmluZGV4IGRmYTEwMjBmZjY2Li5kNmZmM2Nk
MDJmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXN5bmMt
dGVzdC1zdWl0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQt
dGVzdHMvYXN5bmMtdGVzdC1zdWl0ZS1leHBlY3RlZC50eHQKQEAgLTgzLDMgKzgzLDI1IEBAIFBB
U1M6IFByb21pc2UgZnJvbSB0ZWFyZG93bkV4Y2VwdGlvblRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMo
KSBzaG91bGQgcmVqZWN0LgogU3RhY2sgVHJhY2U6IChzdXBwcmVzc2VkKQogUEFTUzogUHJvbWlz
ZSBmcm9tIHRlYXJkb3duRmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVq
ZWN0LgogCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFzeW5jVGVzdFN1aXRlLkFzeW5jRnVuY3Rp
b25TdWNjZXNzCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQXN5bmNGdW5jdGlvblN1Y2Nlc3MKK1BB
U1M6IFByb21pc2UgZnJvbSBhc3luY0Z1bmN0aW9uU3VjY2Vzc1Rlc3RTdWl0ZS5ydW5UZXN0Q2Fz
ZXMoKSBzaG91bGQgc3VjY2VlZC4KK1BBU1M6IFByb21pc2UgZGlkIGV2YWx1YXRlIHRoZSBhc3lu
YyB0ZXN0IGZ1bmN0aW9uLgorUEFTUzogUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIDQyLgorCis9
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFzeW5jVGVzdFN1aXRlLkFzeW5jRnVuY3Rpb25FeHBsaWNp
dEZhaWx1cmUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBc3luY0Z1bmN0aW9uRmFpbHVyZQorISEg
RVhDRVBUSU9OOiBBc3luY0Z1bmN0aW9uRmFpbHVyZSBFeGNlcHRpb24gTWVzc2FnZQorU3RhY2sg
VHJhY2U6IChzdXBwcmVzc2VkKQorUEFTUzogUHJvbWlzZSBmcm9tIGFzeW5jRnVuY3Rpb25FeHBs
aWNpdEZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4KK1BBU1M6
IFByb21pc2UgZGlkIGV2YWx1YXRlIHRoZSBhc3luYyB0ZXN0IGZ1bmN0aW9uLgorUEFTUzogUmVq
ZWN0ZWQgdmFsdWUgc2hvdWxkIGJlIHRocm93biBleGNlcHRpb24uCisKKz09IFJ1bm5pbmcgdGVz
dCBzdWl0ZTogQXN5bmNUZXN0U3VpdGUuQXN5bmNGdW5jdGlvblJ1bnRpbWVGYWlsdXJlCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogQXN5bmNGdW5jdGlvbkZhaWx1cmUKKyEhIEVYQ0VQVElPTjogdW5k
ZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJyh7fSkueC54JykKK1N0YWNrIFRy
YWNlOiAoc3VwcHJlc3NlZCkKK1BBU1M6IFByb21pc2UgZnJvbSBhc3luY0Z1bmN0aW9uUnVudGlt
ZUZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4KK1BBU1M6IFBy
b21pc2UgZGlkIGV2YWx1YXRlIHRoZSBhc3luYyB0ZXN0IGZ1bmN0aW9uLgorUEFTUzogUmVqZWN0
ZWQgdmFsdWUgc2hvdWxkIGJlIGEgcnVudGltZSBleGNlcHRpb24uCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUuaHRtbAppbmRl
eCAwMGY5ZWMzNjI0ZS4uODgyNmU0NzUwNDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci91bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdW5pdC10ZXN0cy9hc3luYy10ZXN0LXN1aXRlLmh0bWwKQEAgLTksNzEgKzksNzEg
QEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICB0cnkgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3
IEFzeW5jVGVzdFN1aXRlKHRoaXMpOwotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBp
bnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRlIHJlcXVpcmVzIG5hbWUgYXJndW1lbnQuIik7Cisg
ICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJpbnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRlIHJl
cXVpcmVzIG5hbWUgYXJndW1lbnQuIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBQcm90
b2NvbFRlc3QubG9nKCJQQVNTOiBpbnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRlIHJlcXVpcmVz
IG5hbWUgYXJndW1lbnQuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJpbnN0YW50aWF0
aW5nIEFzeW5jVGVzdFN1aXRlIHJlcXVpcmVzIG5hbWUgYXJndW1lbnQuIik7CiAgICAgfQogCiAg
ICAgdHJ5IHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBc3luY1Rlc3RTdWl0ZSh0aGlzLCB7
fSk7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IGluc3RhbnRpYXRpbmcgQXN5bmNU
ZXN0U3VpdGUgcmVxdWlyZXMgc3RyaW5nIG5hbWUgYXJndW1lbnQuIik7CisgICAgICAgIFByb3Rv
Y29sVGVzdC5mYWlsKCJpbnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRlIHJlcXVpcmVzIHN0cmlu
ZyBuYW1lIGFyZ3VtZW50LiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgUHJvdG9jb2xU
ZXN0LmxvZygiUEFTUzogaW5zdGFudGlhdGluZyBBc3luY1Rlc3RTdWl0ZSByZXF1aXJlcyBzdHJp
bmcgbmFtZSBhcmd1bWVudC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoImluc3RhbnRp
YXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgc3RyaW5nIG5hbWUgYXJndW1lbnQuIik7CiAg
ICAgfQogCiAgICAgdHJ5IHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBc3luY1Rlc3RTdWl0
ZSh0aGlzLCAiICAgICAgIik7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IGluc3Rh
bnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgbm9uLXdoaXRlc3BhY2UgbmFtZSBhcmd1
bWVudC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoImluc3RhbnRpYXRpbmcgQXN5bmNU
ZXN0U3VpdGUgcmVxdWlyZXMgbm9uLXdoaXRlc3BhY2UgbmFtZSBhcmd1bWVudC4iKTsKICAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6IGluc3RhbnRpYXRp
bmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgbm9uLXdoaXRlc3BhY2UgbmFtZSBhcmd1bWVudC4i
KTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoImluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3Vp
dGUgcmVxdWlyZXMgbm9uLXdoaXRlc3BhY2UgbmFtZSBhcmd1bWVudC4iKTsKICAgICB9CiAKICAg
ICB0cnkgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFzeW5jVGVzdFN1aXRlKCJzb21ldGhp
bmciLCB7fSk7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IGluc3RhbnRpYXRpbmcg
QXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgdGVzdCBoYXJuZXNzIGFyZ3VtZW50LiIpOworICAgICAg
ICBQcm90b2NvbFRlc3QuZmFpbCgiaW5zdGFudGlhdGluZyBBc3luY1Rlc3RTdWl0ZSByZXF1aXJl
cyB0ZXN0IGhhcm5lc3MgYXJndW1lbnQuIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBQ
cm90b2NvbFRlc3QubG9nKCJQQVNTOiBpbnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRlIHJlcXVp
cmVzIHRlc3QgaGFybmVzcyBhcmd1bWVudC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3Mo
Imluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgdGVzdCBoYXJuZXNzIGFyZ3Vt
ZW50LiIpOwogICAgIH0KIAogICAgIGxldCBiYWRBcmdzU3VpdGUgPSBQcm90b2NvbFRlc3QuY3Jl
YXRlQXN5bmNTdWl0ZSgiZHVtbXkiKTsKICAgICB0cnkgewogICAgICAgICBiYWRBcmdzU3VpdGUu
YWRkVGVzdENhc2UoKTsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogc2hvdWxkIG5v
dCBiZSBhYmxlIHRvIGFkZCBlbXB0eSB0ZXN0IGNhc2UuIik7CisgICAgICAgIFByb3RvY29sVGVz
dC5mYWlsKCJzaG91bGQgbm90IGJlIGFibGUgdG8gYWRkIGVtcHR5IHRlc3QgY2FzZS4iKTsKICAg
ICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6IHNob3VsZCBu
b3QgYmUgYWJsZSB0byBhZGQgZW1wdHkgdGVzdCBjYXNlLiIpOworICAgICAgICBQcm90b2NvbFRl
c3QucGFzcygic2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFkZCBlbXB0eSB0ZXN0IGNhc2UuIik7CiAg
ICAgfQogICAgIHRyeSB7CiAgICAgICAgIGJhZEFyZ3NTdWl0ZS5hZGRUZXN0Q2FzZSgic3RyaW5n
Iik7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0
byBhZGQgbm9uLW9iamVjdCB0ZXN0IGNhc2UuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWls
KCJzaG91bGQgbm90IGJlIGFibGUgdG8gYWRkIG5vbi1vYmplY3QgdGVzdCBjYXNlLiIpOwogICAg
IH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzogc2hvdWxkIG5v
dCBiZSBhYmxlIHRvIGFkZCBub24tb2JqZWN0IHRlc3QgY2FzZS4iKTsKKyAgICAgICAgUHJvdG9j
b2xUZXN0LnBhc3MoInNob3VsZCBub3QgYmUgYWJsZSB0byBhZGQgbm9uLW9iamVjdCB0ZXN0IGNh
c2UuIik7CiAgICAgfQogICAgIHRyeSB7CiAgICAgICAgIGJhZEFyZ3NTdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CiAgICAgICAgICAgICBuYW1lOiB7fSwKICAgICAgICAgICAgIHRlc3QoKSB7fSwKICAgICAg
ICAgfSk7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IHRlc3QgY2FzZSBzaG91bGQg
cmVxdWlyZSBzdHJpbmcgbmFtZS4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoInRlc3Qg
Y2FzZSBzaG91bGQgcmVxdWlyZSBzdHJpbmcgbmFtZS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0g
ICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6IHRlc3QgY2FzZSBzaG91bGQgcmVxdWlyZSBz
dHJpbmcgbmFtZS4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoInRlc3QgY2FzZSBzaG91
bGQgcmVxdWlyZSBzdHJpbmcgbmFtZS4iKTsKICAgICB9CiAgICAgdHJ5IHsKICAgICAgICAgYmFk
QXJnc1N1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgICAgIG5hbWU6ICIgICAgICAgICIsCiAg
ICAgICAgICAgICB0ZXN0KCkge30sCiAgICAgICAgIH0pOwotICAgICAgICBQcm90b2NvbFRlc3Qu
bG9nKCJGQUlMOiB0ZXN0IGNhc2Ugc2hvdWxkIHJlcXVpcmUgbm9uLXdoaXRlc3BhY2UgbmFtZS4i
KTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoInRlc3QgY2FzZSBzaG91bGQgcmVxdWlyZSBu
b24td2hpdGVzcGFjZSBuYW1lLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgUHJvdG9j
b2xUZXN0LmxvZygiUEFTUzogdGVzdCBjYXNlIHNob3VsZCByZXF1aXJlIG5vbi13aGl0ZXNwYWNl
IG5hbWUuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJ0ZXN0IGNhc2Ugc2hvdWxkIHJl
cXVpcmUgbm9uLXdoaXRlc3BhY2UgbmFtZS4iKTsKICAgICB9CiAgICAgdHJ5IHsKICAgICAgICAg
YmFkQXJnc1N1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgICAgIG5hbWU6ICJmb28iLAogICAg
ICAgICAgICAgdGVzdDogbnVsbCwKICAgICAgICAgfSk7Ci0gICAgICAgIFByb3RvY29sVGVzdC5s
b2coIkZBSUw6IHRlc3QgY2FzZSBzaG91bGQgcmVxdWlyZSB0ZXN0IGZ1bmN0aW9uLiIpOworICAg
ICAgICBQcm90b2NvbFRlc3QuZmFpbCgidGVzdCBjYXNlIHNob3VsZCByZXF1aXJlIHRlc3QgZnVu
Y3Rpb24uIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQ
QVNTOiB0ZXN0IGNhc2Ugc2hvdWxkIHJlcXVpcmUgdGVzdCBmdW5jdGlvbi4iKTsKKyAgICAgICAg
UHJvdG9jb2xUZXN0LnBhc3MoInRlc3QgY2FzZSBzaG91bGQgcmVxdWlyZSB0ZXN0IGZ1bmN0aW9u
LiIpOwogICAgIH0KICAgICB0cnkgewogICAgICAgICBiYWRBcmdzU3VpdGUuYWRkVGVzdENhc2Uo
ewpAQCAtODEsOSArODEsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHRlc3QoKSB7
fSwKICAgICAgICAgICAgIHNldHVwOiAiYXN0ZCIKICAgICAgICAgfSk7Ci0gICAgICAgIFByb3Rv
Y29sVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5j
dGlvbiBgc2V0dXBgIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoInNo
b3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgc2V0dXBgIHBhcmFtZXRl
ci4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6
IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgc2V0dXBgIHBhcmFt
ZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoInNob3VsZCBub3QgYmUgYWJsZSB0
byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgc2V0dXBgIHBhcmFtZXRlci4iKTsKICAgICB9CiAgICAg
dHJ5IHsKICAgICAgICAgYmFkQXJnc1N1aXRlLmFkZFRlc3RDYXNlKHsKQEAgLTkxLDkgKzkxLDkg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB0ZXN0KCkge30sCiAgICAgICAgICAgICBz
ZXR1cDogMTIzCiAgICAgICAgIH0pOwotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBz
aG91bGQgbm90IGJlIGFibGUgdG8gc3BlY2lmeSBub24tRnVuY3Rpb24gYHNldHVwYCBwYXJhbWV0
ZXIuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJzaG91bGQgbm90IGJlIGFibGUgdG8g
c3BlY2lmeSBub24tRnVuY3Rpb24gYHNldHVwYCBwYXJhbWV0ZXIuIik7CiAgICAgfSBjYXRjaCAo
ZSkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQQVNTOiBzaG91bGQgbm90IGJlIGFibGUg
dG8gc3BlY2lmeSBub24tRnVuY3Rpb24gYHNldHVwYCBwYXJhbWV0ZXIuIik7CisgICAgICAgIFBy
b3RvY29sVGVzdC5wYXNzKCJzaG91bGQgbm90IGJlIGFibGUgdG8gc3BlY2lmeSBub24tRnVuY3Rp
b24gYHNldHVwYCBwYXJhbWV0ZXIuIik7CiAgICAgfQogICAgIHRyeSB7CiAgICAgICAgIGJhZEFy
Z3NTdWl0ZS5hZGRUZXN0Q2FzZSh7CkBAIC0xMDEsOSArMTAxLDkgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgICAgICB0ZXN0KCkge30sCiAgICAgICAgICAgICBzZXR1cDoge30KICAgICAgICAg
fSk7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0
byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgc2V0dXBgIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJv
dG9jb2xUZXN0LmZhaWwoInNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlv
biBgc2V0dXBgIHBhcmFtZXRlci4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3Rv
Y29sVGVzdC5sb2coIlBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5j
dGlvbiBgc2V0dXBgIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoInNo
b3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgc2V0dXBgIHBhcmFtZXRl
ci4iKTsKICAgICB9CiAgICAgdHJ5IHsKICAgICAgICAgYmFkQXJnc1N1aXRlLmFkZFRlc3RDYXNl
KHsKQEAgLTExMSw5ICsxMTEsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHRlc3Qo
KSB7fSwKICAgICAgICAgICAgIHRlYXJkb3duOiAiYXN0ZCIKICAgICAgICAgfSk7Ci0gICAgICAg
IFByb3RvY29sVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5v
bi1GdW5jdGlvbiBgdGVhcmRvd25gIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0
LmZhaWwoInNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgdGVhcmRv
d25gIHBhcmFtZXRlci4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVz
dC5sb2coIlBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBg
dGVhcmRvd25gIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoInNob3Vs
ZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgdGVhcmRvd25gIHBhcmFtZXRl
ci4iKTsKICAgICB9CiAgICAgdHJ5IHsKICAgICAgICAgYmFkQXJnc1N1aXRlLmFkZFRlc3RDYXNl
KHsKQEAgLTEyMSw5ICsxMjEsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHRlc3Qo
KSB7fSwKICAgICAgICAgICAgIHRlYXJkb3duOiAxMjMKICAgICAgICAgfSk7Ci0gICAgICAgIFBy
b3RvY29sVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1G
dW5jdGlvbiBgdGVhcmRvd25gIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZh
aWwoInNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgdGVhcmRvd25g
IHBhcmFtZXRlci4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5s
b2coIlBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgdGVh
cmRvd25gIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoInNob3VsZCBu
b3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgdGVhcmRvd25gIHBhcmFtZXRlci4i
KTsKICAgICB9CiAgICAgdHJ5IHsKICAgICAgICAgYmFkQXJnc1N1aXRlLmFkZFRlc3RDYXNlKHsK
QEAgLTEzMSwxNyArMTMxLDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgdGVzdCgp
IHt9LAogICAgICAgICAgICAgdGVhcmRvd246IHt9CiAgICAgICAgIH0pOwotICAgICAgICBQcm90
b2NvbFRlc3QubG9nKCJGQUlMOiBzaG91bGQgbm90IGJlIGFibGUgdG8gc3BlY2lmeSBub24tRnVu
Y3Rpb24gYHRlYXJkb3duYCBwYXJhbWV0ZXIuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWls
KCJzaG91bGQgbm90IGJlIGFibGUgdG8gc3BlY2lmeSBub24tRnVuY3Rpb24gYHRlYXJkb3duYCBw
YXJhbWV0ZXIuIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9n
KCJQQVNTOiBzaG91bGQgbm90IGJlIGFibGUgdG8gc3BlY2lmeSBub24tRnVuY3Rpb24gYHRlYXJk
b3duYCBwYXJhbWV0ZXIuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJzaG91bGQgbm90
IGJlIGFibGUgdG8gc3BlY2lmeSBub24tRnVuY3Rpb24gYHRlYXJkb3duYCBwYXJhbWV0ZXIuIik7
CiAgICAgfQogCiAgICAgbGV0IHJ1bkVtcHR5U3VpdGUgPSBQcm90b2NvbFRlc3QuY3JlYXRlQXN5
bmNTdWl0ZSgiQXN5bmNUZXN0U3VpdGUuUnVuRW1wdHlTdWl0ZSIpOwogICAgIHRyeSB7CiAgICAg
ICAgIHJ1bkVtcHR5U3VpdGUucnVuVGVzdENhc2VzKCk7Ci0gICAgICAgIFByb3RvY29sVGVzdC5s
b2coIkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0byBydW4gZW1wdHkgdGVzdCBzdWl0ZS4iKTsK
KyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoInNob3VsZCBub3QgYmUgYWJsZSB0byBydW4gZW1w
dHkgdGVzdCBzdWl0ZS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVz
dC5sb2coIlBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBydW4gZW1wdHkgdGVzdCBzdWl0ZS4i
KTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoInNob3VsZCBub3QgYmUgYWJsZSB0byBydW4g
ZW1wdHkgdGVzdCBzdWl0ZS4iKTsKICAgICB9CiAKICAgICBsZXQgcnVuVHdpY2VTdWl0ZSA9IFBy
b3RvY29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBc3luY1Rlc3RTdWl0ZS5SdW5Ud2ljZVN1aXRl
Iik7CkBAIC0xNTYsOSArMTU2LDkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIC8vIFRlc3Qg
Y2FzZXMgd29uJ3QgcnVuIGluIHRoaXMgZXZlbnQgbG9vcDsgdGhpcyBjYWxsIHNob3VsZCBzdGls
bCB0aHJvdy4KICAgICAgICAgLy8gTGF0ZXIgdGVzdHMgYXJlIGNoYWluZWQgdG8gdGhpcyBzdWl0
ZSB0byBhdm9pZCBub25kZXRlcm1pbmlzbS4KICAgICAgICAgcnVuVHdpY2VTdWl0ZS5ydW5UZXN0
Q2FzZXMoKTsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogc2hvdWxkIG5vdCBiZSBh
YmxlIHRvIHJ1biBhIHRlc3Qgc3VpdGUgdHdpY2UuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5m
YWlsKCJzaG91bGQgbm90IGJlIGFibGUgdG8gcnVuIGEgdGVzdCBzdWl0ZSB0d2ljZS4iKTsKICAg
ICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6IHNob3VsZCBu
b3QgYmUgYWJsZSB0byBydW4gYSB0ZXN0IHN1aXRlIHR3aWNlLiIpOworICAgICAgICBQcm90b2Nv
bFRlc3QucGFzcygic2hvdWxkIG5vdCBiZSBhYmxlIHRvIHJ1biBhIHRlc3Qgc3VpdGUgdHdpY2Uu
Iik7CiAgICAgfQogCiAgICAgbGV0IHJlamVjdFRva2VuID0geyJ0b2tlbiI6IDY2Nn07CkBAIC0y
MDksMTAgKzIwOSwxMCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgcmV0dXJuIHByb21pc2U7
CiAgICAgfSk7CiAgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oZnVuY3Rpb24gcmVzb2x2ZWQoKSB7
Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IFByb21pc2UgZnJvbSBzZXF1ZW50aWFs
RXhlY3V0aW9uU3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdCB3aGVuIGEgdGVzdCBj
YXNlIGZhaWxzLiIpOworICAgICAgICBQcm90b2NvbFRlc3QuZmFpbCgiUHJvbWlzZSBmcm9tIHNl
cXVlbnRpYWxFeGVjdXRpb25TdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0IHdoZW4g
YSB0ZXN0IGNhc2UgZmFpbHMuIik7CiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsg
Ly8gQ29udGludWUgdGhpcyB0ZXN0LgogICAgIH0sIGZ1bmN0aW9uIHJlamVjdGVkKGUpIHsKLSAg
ICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzogUHJvbWlzZSBmcm9tIHNlcXVlbnRpYWxFeGVj
dXRpb25TdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0IHdoZW4gYSB0ZXN0IGNhc2Ug
ZmFpbHMuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJQcm9taXNlIGZyb20gc2VxdWVu
dGlhbEV4ZWN1dGlvblN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3Qgd2hlbiBhIHRl
c3QgY2FzZSBmYWlscy4iKTsKICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQoZSA9PT0g
dGhyb3duRXJyb3IsICJQcm9taXNlIGZyb20gc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlLnJ1blRl
c3RDYXNlcygpIHNob3VsZCByZWplY3Qgd2l0aG91dCBhbHRlcmluZyBpdHMgcmVzdWx0IHZhbHVl
LiIpOwogCiAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KHNlcXVlbnRpYWxFeGVjdXRp
b25TdWl0ZS5ydW5Db3VudCA9PT0gNCwgInNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZSBzaG91bGQg
aGF2ZSBleGVjdXRlZCBmb3VyIHRlc3RzLiIpOwpAQCAtMjI1LDEwICsyMjUsMTAgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oKCkgPT4gewogICAgICAgICByZXR1
cm4gYWJvcnRPbkZhaWx1cmVTdWl0ZS5ydW5UZXN0Q2FzZXMoKTsKICAgICB9KS50aGVuKGZ1bmN0
aW9uIHJlc29sdmVkKCkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBQcm9taXNl
IGZyb20gYWJvcnRPbkZhaWx1cmVTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0IHdo
ZW4gYSB0ZXN0IGNhc2UgZmFpbHMuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJQcm9t
aXNlIGZyb20gYWJvcnRPbkZhaWx1cmVTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0
IHdoZW4gYSB0ZXN0IGNhc2UgZmFpbHMuIik7CiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29s
dmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgogICAgIH0sIGZ1bmN0aW9uIHJlamVjdGVkKGUp
IHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzogUHJvbWlzZSBmcm9tIGFib3J0T25G
YWlsdXJlU3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdCB3aGVuIGEgdGVzdCBjYXNl
IGZhaWxzLiIpOworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygiUHJvbWlzZSBmcm9tIGFib3J0
T25GYWlsdXJlU3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdCB3aGVuIGEgdGVzdCBj
YXNlIGZhaWxzLiIpOwogICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdChlID09PSByZWpl
Y3RUb2tlbiwgIlByb21pc2UgZnJvbSBhYm9ydE9uRmFpbHVyZVN1aXRlLnJ1blRlc3RDYXNlcygp
IHNob3VsZCByZWplY3Qgd2l0aG91dCBhbHRlcmluZyBpdHMgcmVzdWx0IHZhbHVlLiIpOwogICAg
ICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdChhYm9ydE9uRmFpbHVyZVN1aXRlLnJ1bkNvdW50
ID09PSAyLCAiYWJvcnRPbkZhaWx1cmVTdWl0ZSBzaG91bGQgaGF2ZSBleGVjdXRlZCB0d28gdGVz
dHMuIik7CiAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KGFib3J0T25GYWlsdXJlU3Vp
dGUucGFzc0NvdW50ID09PSAxLCAiYWJvcnRPbkZhaWx1cmVTdWl0ZSBzaG91bGQgaGF2ZSBwYXNz
ZWQgb25lIHRlc3QuIik7CkBAIC0yNzIsMTAgKzI3MiwxMCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICByZXN1bHQgPSByZXN1bHQudGhlbigoKSA9PiB7CiAgICAgICAgIHJldHVybiBzZXR1cEFuZFRl
YXJkb3duVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpOwogICAgIH0pLnRoZW4oZnVuY3Rpb24gcmVz
b2x2ZWQoKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6IFByb21pc2UgZnJvbSBz
ZXR1cEFuZFRlYXJkb3duVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZXNvbHZlLiIp
OworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygiUHJvbWlzZSBmcm9tIHNldHVwQW5kVGVhcmRv
d25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlc29sdmUuIik7CiAgICAgICAgIHJl
dHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgogICAgIH0sIGZ1
bmN0aW9uIHJlamVjdGVkKGUpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogUHJv
bWlzZSBmcm9tIHNldHVwQW5kVGVhcmRvd25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxk
IHJlc29sdmUuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJQcm9taXNlIGZyb20gc2V0
dXBBbmRUZWFyZG93blRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVzb2x2ZS4iKTsK
ICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3Qu
CiAgICAgfSk7CiAKQEAgLTI5NywxMCArMjk3LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHJl
c3VsdCA9IHJlc3VsdC50aGVuKCgpID0+IHsKICAgICAgICAgcmV0dXJuIHNldHVwRXhjZXB0aW9u
VGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpOwogICAgIH0pLnRoZW4oZnVuY3Rpb24gcmVzb2x2ZWQo
KSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IFByb21pc2UgZnJvbSBzZXR1cEV4
Y2VwdGlvblRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LiIpOworICAgICAg
ICBQcm90b2NvbFRlc3QuZmFpbCgiUHJvbWlzZSBmcm9tIHNldHVwRXhjZXB0aW9uVGVzdFN1aXRl
LnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7CiAgICAgICAgIHJldHVybiBQcm9taXNl
LnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgogICAgIH0sIGZ1bmN0aW9uIHJlamVj
dGVkKGUpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzogUHJvbWlzZSBmcm9tIHNl
dHVwRXhjZXB0aW9uVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7Cisg
ICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJQcm9taXNlIGZyb20gc2V0dXBFeGNlcHRpb25UZXN0
U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4iKTsKICAgICAgICAgcmV0dXJuIFBy
b21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCiAgICAgfSk7CiAKQEAgLTMy
MiwxMCArMzIyLDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHJlc3VsdCA9IHJlc3VsdC50aGVu
KCgpID0+IHsKICAgICAgICAgcmV0dXJuIHNldHVwRmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2Fz
ZXMoKTsKICAgICB9KS50aGVuKGZ1bmN0aW9uIHJlc29sdmVkKCkgewotICAgICAgICBQcm90b2Nv
bFRlc3QubG9nKCJGQUlMOiBQcm9taXNlIGZyb20gc2V0dXBGYWlsdXJlVGVzdFN1aXRlLnJ1blRl
c3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJQ
cm9taXNlIGZyb20gc2V0dXBGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCBy
ZWplY3QuIik7CiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUg
dGhpcyB0ZXN0LgogICAgIH0sIGZ1bmN0aW9uIHJlamVjdGVkKGUpIHsKLSAgICAgICAgUHJvdG9j
b2xUZXN0LmxvZygiUEFTUzogUHJvbWlzZSBmcm9tIHNldHVwRmFpbHVyZVRlc3RTdWl0ZS5ydW5U
ZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LiIpOworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygi
UHJvbWlzZSBmcm9tIHNldHVwRmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQg
cmVqZWN0LiIpOwogICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVl
IHRoaXMgdGVzdC4KICAgICB9KTsKIApAQCAtMzUyLDEwICszNTIsMTAgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oKCkgPT4gewogICAgICAgICByZXR1cm4gdGVh
cmRvd25FeGNlcHRpb25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCk7CiAgICAgfSkudGhlbihmdW5j
dGlvbiByZXNvbHZlZCgpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogUHJvbWlz
ZSBmcm9tIHRlYXJkb3duRXhjZXB0aW9uVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCBy
ZWplY3QuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJQcm9taXNlIGZyb20gdGVhcmRv
d25FeGNlcHRpb25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4iKTsKICAg
ICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCiAg
ICAgfSwgZnVuY3Rpb24gcmVqZWN0ZWQoZSkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQ
QVNTOiBQcm9taXNlIGZyb20gdGVhcmRvd25FeGNlcHRpb25UZXN0U3VpdGUucnVuVGVzdENhc2Vz
KCkgc2hvdWxkIHJlamVjdC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoIlByb21pc2Ug
ZnJvbSB0ZWFyZG93bkV4Y2VwdGlvblRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVq
ZWN0LiIpOwogICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRo
aXMgdGVzdC4KICAgICB9KTsKIApAQCAtMzgyLDEwICszODIsODIgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oKCkgPT4gewogICAgICAgICByZXR1cm4gdGVhcmRv
d25GYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpOwogICAgIH0pLnRoZW4oZnVuY3Rpb24g
cmVzb2x2ZWQoKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IFByb21pc2UgZnJv
bSB0ZWFyZG93bkZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4i
KTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoIlByb21pc2UgZnJvbSB0ZWFyZG93bkZhaWx1
cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4iKTsKICAgICAgICAgcmV0
dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCiAgICAgfSwgZnVu
Y3Rpb24gcmVqZWN0ZWQoZSkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQQVNTOiBQcm9t
aXNlIGZyb20gdGVhcmRvd25GYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCBy
ZWplY3QuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJQcm9taXNlIGZyb20gdGVhcmRv
d25GYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7CisgICAg
ICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgorICAg
IH0pOworCisKKyAgICBsZXQgYXN5bmNGdW5jdGlvblN1Y2Nlc3NUZXN0U3VpdGVEaWRFdmFsdWF0
ZSA9IGZhbHNlOworICAgIGxldCBhc3luY0Z1bmN0aW9uU3VjY2Vzc1Rlc3RTdWl0ZSA9IFByb3Rv
Y29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBc3luY1Rlc3RTdWl0ZS5Bc3luY0Z1bmN0aW9uU3Vj
Y2VzcyIpOworICAgIGFzeW5jRnVuY3Rpb25TdWNjZXNzVGVzdFN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIkFzeW5jRnVuY3Rpb25TdWNjZXNzIiwKKyAgICAgICAgZGVzY3JpcHRp
b246ICJDaGVjayB0aGF0IGFuIGFzeW5jIHN1aXRlIHdpdGggYXN5bmMgdGVzdCBmdW5jdGlvbnMg
Y2FuIHN1Y2NlZWQiLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgYXN5bmNG
dW5jdGlvblN1Y2Nlc3NUZXN0U3VpdGVEaWRFdmFsdWF0ZSA9IHRydWU7CisgICAgICAgICAgICBy
ZXR1cm4gNDI7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHJlc3VsdCA9IHJlc3VsdC50aGVu
KCgpID0+IHsKKyAgICAgICAgcmV0dXJuIGFzeW5jRnVuY3Rpb25TdWNjZXNzVGVzdFN1aXRlLnJ1
blRlc3RDYXNlcygpOworICAgIH0pLnRoZW4oZnVuY3Rpb24gcmVzb2x2ZSh4KSB7CisgICAgICAg
IFByb3RvY29sVGVzdC5wYXNzKCJQcm9taXNlIGZyb20gYXN5bmNGdW5jdGlvblN1Y2Nlc3NUZXN0
U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHN1Y2NlZWQuIik7CisgICAgICAgIFByb3RvY29s
VGVzdC5leHBlY3RUaGF0KGFzeW5jRnVuY3Rpb25TdWNjZXNzVGVzdFN1aXRlRGlkRXZhbHVhdGUs
ICJQcm9taXNlIGRpZCBldmFsdWF0ZSB0aGUgYXN5bmMgdGVzdCBmdW5jdGlvbi4iKTsKKyAgICAg
ICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKHgsIDQyLCAiUmVzb2x2ZWQgdmFsdWUgc2hvdWxk
IGJlIDQyLiIpOworICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVl
IHRoaXMgdGVzdC4KKyAgICB9LCBmdW5jdGlvbiByZWplY3RlZChlKSB7CisgICAgICAgIFByb3Rv
Y29sVGVzdC5mYWlsKCJQcm9taXNlIGZyb20gYXN5bmNGdW5jdGlvblN1Y2Nlc3NUZXN0U3VpdGUu
cnVuVGVzdENhc2VzKCkgc2hvdWxkIHN1Y2NlZWQuIik7CisgICAgICAgIHJldHVybiBQcm9taXNl
LnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgorICAgIH0pOworCisKKyAgICBsZXQg
YXN5bmNGdW5jdGlvbkV4cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZURpZEV2YWx1YXRlID0gZmFsc2U7
CisgICAgbGV0IGFzeW5jRnVuY3Rpb25FeHBsaWNpdEZhaWx1cmVUZXN0U3VpdGUgPSBQcm90b2Nv
bFRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQXN5bmNUZXN0U3VpdGUuQXN5bmNGdW5jdGlvbkV4cGxp
Y2l0RmFpbHVyZSIpOworICAgIGFzeW5jRnVuY3Rpb25FeHBsaWNpdEZhaWx1cmVUZXN0U3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQXN5bmNGdW5jdGlvbkZhaWx1cmUiLAorICAg
ICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYW4gYXN5bmMgc3VpdGUgd2l0aCBhc3luYyB0
ZXN0IGZ1bmN0aW9ucyB0aGF0IHRocm93cyB3aWxsIHJlamVjdCIsCisgICAgICAgIGFzeW5jIHRl
c3QoKSB7CisgICAgICAgICAgICBhc3luY0Z1bmN0aW9uRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRl
RGlkRXZhbHVhdGUgPSB0cnVlOworICAgICAgICAgICAgdGhyb3cgIkFzeW5jRnVuY3Rpb25GYWls
dXJlIEV4Y2VwdGlvbiBNZXNzYWdlIjsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgcmVzdWx0
ID0gcmVzdWx0LnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gYXN5bmNGdW5jdGlvbkV4cGxp
Y2l0RmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKTsKKyAgICB9KS50aGVuKGZ1bmN0aW9u
IHJlc29sdmUoKSB7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJQcm9taXNlIGZyb20gYXN5
bmNGdW5jdGlvbkV4cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQg
cmVqZWN0LiIpOworICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVl
IHRoaXMgdGVzdC4KKyAgICB9LCBmdW5jdGlvbiByZWplY3RlZChlKSB7CisgICAgICAgIFByb3Rv
Y29sVGVzdC5wYXNzKCJQcm9taXNlIGZyb20gYXN5bmNGdW5jdGlvbkV4cGxpY2l0RmFpbHVyZVRl
c3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LiIpOworICAgICAgICBQcm90b2Nv
bFRlc3QuZXhwZWN0VGhhdChhc3luY0Z1bmN0aW9uRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRlRGlk
RXZhbHVhdGUsICJQcm9taXNlIGRpZCBldmFsdWF0ZSB0aGUgYXN5bmMgdGVzdCBmdW5jdGlvbi4i
KTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKGUsICJBc3luY0Z1bmN0aW9uRmFp
bHVyZSBFeGNlcHRpb24gTWVzc2FnZSIsICJSZWplY3RlZCB2YWx1ZSBzaG91bGQgYmUgdGhyb3du
IGV4Y2VwdGlvbi4iKTsKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250
aW51ZSB0aGlzIHRlc3QuCisgICAgfSk7CisKKworICAgIGxldCBhc3luY0Z1bmN0aW9uUnVudGlt
ZUZhaWx1cmVUZXN0U3VpdGVEaWRFdmFsdWF0ZSA9IGZhbHNlOworICAgIGxldCBhc3luY0Z1bmN0
aW9uUnVudGltZUZhaWx1cmVUZXN0U3VpdGUgPSBQcm90b2NvbFRlc3QuY3JlYXRlQXN5bmNTdWl0
ZSgiQXN5bmNUZXN0U3VpdGUuQXN5bmNGdW5jdGlvblJ1bnRpbWVGYWlsdXJlIik7CisgICAgYXN5
bmNGdW5jdGlvblJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIkFzeW5jRnVuY3Rpb25GYWlsdXJlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVj
ayB0aGF0IGFuIGFzeW5jIHN1aXRlIHdpdGggYXN5bmMgdGVzdCBmdW5jdGlvbnMgdGhhdCB0aHJv
d3Mgd2l0aCBhIHJ1bnRpbWUgZXJvcnIgd2lsbCByZWplY3QiLAorICAgICAgICBhc3luYyB0ZXN0
KCkgeworICAgICAgICAgICAgYXN5bmNGdW5jdGlvblJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlRGlk
RXZhbHVhdGUgPSB0cnVlOworICAgICAgICAgICAgKHt9KS54LngueDsKKyAgICAgICAgfQorICAg
IH0pOworCisgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4g
YXN5bmNGdW5jdGlvblJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpOworICAg
IH0pLnRoZW4oZnVuY3Rpb24gcmVzb2x2ZSgpIHsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwo
IlByb21pc2UgZnJvbSBhc3luY0Z1bmN0aW9uUnVudGltZUZhaWx1cmVUZXN0U3VpdGUucnVuVGVz
dENhc2VzKCkgc2hvdWxkIHJlamVjdC4iKTsKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2
ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCisgICAgfSwgZnVuY3Rpb24gcmVqZWN0ZWQoZSkg
eworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygiUHJvbWlzZSBmcm9tIGFzeW5jRnVuY3Rpb25S
dW50aW1lRmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LiIpOwor
ICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdChhc3luY0Z1bmN0aW9uUnVudGltZUZhaWx1
cmVUZXN0U3VpdGVEaWRFdmFsdWF0ZSwgIlByb21pc2UgZGlkIGV2YWx1YXRlIHRoZSBhc3luYyB0
ZXN0IGZ1bmN0aW9uLiIpOworICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdChlIGluc3Rh
bmNlb2YgVHlwZUVycm9yLCAiUmVqZWN0ZWQgdmFsdWUgc2hvdWxkIGJlIGEgcnVudGltZSBleGNl
cHRpb24uIik7CiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUg
dGhpcyB0ZXN0LgogICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
dW5pdC10ZXN0cy90YXJnZXQtbWFuYWdlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvdGFyZ2V0LW1hbmFnZXIuaHRtbAppbmRleCA0MmJjZWMxMDIxYS4uODBiOTc3NmVi
ODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3RhcmdldC1t
YW5hZ2VyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGFyZ2V0
LW1hbmFnZXIuaHRtbApAQCAtMzcsNDcgKzM3LDQyIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHN1
aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIlRhcmdldE1hbmFnZXIuTWFpblRhcmdl
dCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiV2Ugc2hvdWxkIGFsd2F5cyBoYXZlIHRoZSBtYWlu
IHRhcmdldC4iLAotICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICBhc3lu
YyB0ZXN0KCkgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV0kudGFyZ2V0cyA9
PT0gV0kudGFyZ2V0TWFuYWdlci50YXJnZXRzKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXF1YWwoV0kudGFyZ2V0cy5zaXplLCAxLCAiVGFyZ2V0cyBsaXN0IHNob3VsZCBhbHdh
eXMgc3RhcnQgb3V0IHdpdGggdGhlIG1haW4gdGFyZ2V0LiIpOwogICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RFcXVhbChbLi4uV0kudGFyZ2V0c11bMF0sIFdJLm1haW5UYXJnZXQsICJU
YXJnZXQgbGlzdCBzaG91bGQgYWx3YXlzIGNvbnRhaW4gdGhlIG1haW4gdGFyZ2V0LiIpOwogICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3ROdWxsKFdJLm1haW5UYXJnZXQuZXhlY3V0
aW9uQ29udGV4dCwgIk1haW4gdGFyZ2V0IHNob3VsZCBoYXZlIGFuIEV4ZWN1dGlvbkNvbnRleHQu
Iik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLm1haW5UYXJnZXQu
UnVudGltZUFnZW50LCBSdW50aW1lQWdlbnQsICJNYWluIHRhcmdldCBzaG91bGQgaGF2ZSB0aGUg
Z2xvYmFsIFJ1bnRpbWVBZ2VudC4iKTsKICAgICAgICAgICAgIGR1bXBUYXJnZXRzKCk7Ci0gICAg
ICAgICAgICByZXNvbHZlKCk7CiAgICAgICAgIH0KICAgICB9KTsKIAogICAgIHN1aXRlLmFkZFRl
c3RDYXNlKHsKICAgICAgICAgbmFtZTogIlRhcmdldE1hbmFnZXIuV29ya2VyVGFyZ2V0LkNyZWF0
ZSIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgYSBXb3JrZXIgc2hvdWxkIGNyZWF0
ZSBhIG5ldyBXb3JrZXIgVGFyZ2V0LiIsCi0gICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7
CisgICAgICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKCJjcmVhdGVXb3JrZXIoKSIpOwotICAgICAgICAgICAgV0kudGFyZ2V0TWFuYWdl
ci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5UYXJnZXRNYW5hZ2VyLkV2ZW50LlRhcmdldEFk
ZGVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0ID0gZXZlbnQuZGF0
YS50YXJnZXQ7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQodGFyZ2V0IGlu
c3RhbmNlb2YgV0kuVGFyZ2V0KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKHRhcmdldC50eXBlLCBXSS5UYXJnZXQuVHlwZS5Xb3JrZXIsICJBZGRlZCBUYXJnZXQg
c2hvdWxkIGhhdmUgV29ya2VyIHR5cGUuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3ROb3ROdWxsKHRhcmdldC5leGVjdXRpb25Db250ZXh0LCAiQWRkZWQgVGFyZ2V0IHNo
b3VsZCBoYXZlIGFuIEV4ZWN1dGlvbkNvbnRleHQuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3ROb3ROdWxsKHRhcmdldC5SdW50aW1lQWdlbnQsICJBZGRlZCBUYXJnZXQg
c2hvdWxkIGhhdmUgYSBSdW50aW1lQWdlbnQuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3ROb3RFcXVhbCh0YXJnZXQuUnVudGltZUFnZW50LCBSdW50aW1lQWdlbnQsICJB
ZGRlZCBUYXJnZXQgUnVudGltZUFnZW50IHNob3VsZCBub3QgYmUgdGhlIGdsb2JhbCBSdW50aW1l
QWdlbnQuIik7Ci0gICAgICAgICAgICAgICAgZHVtcFRhcmdldHMoKTsKLSAgICAgICAgICAgICAg
ICByZXNvbHZlKCk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGxldCBldmVudCA9IGF3
YWl0IFdJLnRhcmdldE1hbmFnZXIuYXdhaXRFdmVudChXSS5UYXJnZXRNYW5hZ2VyLkV2ZW50LlRh
cmdldEFkZGVkKTsKKyAgICAgICAgICAgIGxldCB0YXJnZXQgPSBldmVudC5kYXRhLnRhcmdldDsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHRhcmdldCBpbnN0YW5jZW9mIFdJLlRh
cmdldCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRhcmdldC50eXBl
LCBXSS5UYXJnZXQuVHlwZS5Xb3JrZXIsICJBZGRlZCBUYXJnZXQgc2hvdWxkIGhhdmUgV29ya2Vy
IHR5cGUuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdE51bGwodGFyZ2V0
LmV4ZWN1dGlvbkNvbnRleHQsICJBZGRlZCBUYXJnZXQgc2hvdWxkIGhhdmUgYW4gRXhlY3V0aW9u
Q29udGV4dC4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90TnVsbCh0YXJn
ZXQuUnVudGltZUFnZW50LCAiQWRkZWQgVGFyZ2V0IHNob3VsZCBoYXZlIGEgUnVudGltZUFnZW50
LiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFcXVhbCh0YXJnZXQuUnVu
dGltZUFnZW50LCBSdW50aW1lQWdlbnQsICJBZGRlZCBUYXJnZXQgUnVudGltZUFnZW50IHNob3Vs
ZCBub3QgYmUgdGhlIGdsb2JhbCBSdW50aW1lQWdlbnQuIik7CisgICAgICAgICAgICBkdW1wVGFy
Z2V0cygpOwogICAgICAgICB9CiAgICAgfSk7CiAKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAg
ICAgICAgIG5hbWU6ICJUYXJnZXRNYW5hZ2VyLldvcmtlclRhcmdldC5SZW1vdmUiLAogICAgICAg
ICBkZXNjcmlwdGlvbjogIkNyZWF0aW5nIGEgV29ya2VyIHNob3VsZCBjcmVhdGUgYSBuZXcgV29y
a2VyIFRhcmdldC4iLAotICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICBh
c3luYyB0ZXN0KCkgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgi
dGVybWluYXRlV29ya2VyKCkiKTsKLSAgICAgICAgICAgIFdJLnRhcmdldE1hbmFnZXIuc2luZ2xl
RmlyZUV2ZW50TGlzdGVuZXIoV0kuVGFyZ2V0TWFuYWdlci5FdmVudC5UYXJnZXRSZW1vdmVkLCAo
ZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0ID0gZXZlbnQuZGF0YS50YXJn
ZXQ7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQodGFyZ2V0IGluc3RhbmNl
b2YgV0kuVGFyZ2V0KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KHRhcmdldC50eXBlLCBXSS5UYXJnZXQuVHlwZS5Xb3JrZXIsICJSZW1vdmVkIFRhcmdldCBzaG91
bGQgaGF2ZSBXb3JrZXIgdHlwZS4iKTsKLSAgICAgICAgICAgICAgICBkdW1wVGFyZ2V0cygpOwot
ICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
bGV0IGV2ZW50ID0gYXdhaXQgV0kudGFyZ2V0TWFuYWdlci5hd2FpdEV2ZW50KFdJLlRhcmdldE1h
bmFnZXIuRXZlbnQuVGFyZ2V0UmVtb3ZlZCk7CisgICAgICAgICAgICBsZXQgdGFyZ2V0ID0gZXZl
bnQuZGF0YS50YXJnZXQ7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCh0YXJnZXQg
aW5zdGFuY2VvZiBXSS5UYXJnZXQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbCh0YXJnZXQudHlwZSwgV0kuVGFyZ2V0LlR5cGUuV29ya2VyLCAiUmVtb3ZlZCBUYXJnZXQg
c2hvdWxkIGhhdmUgV29ya2VyIHR5cGUuIik7CisgICAgICAgICAgICBkdW1wVGFyZ2V0cygpOwog
ICAgICAgICB9CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Rlc3QvVGVzdFN1aXRlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVGVzdC9UZXN0U3VpdGUuanMKaW5kZXggMTA3Y2MzNGFhZWEuLjNjOTJjYTE5
NGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0
L1Rlc3RTdWl0ZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9U
ZXN0L1Rlc3RTdWl0ZS5qcwpAQCAtMTUwLDYgKzE1MCw4IEBAIEFzeW5jVGVzdFN1aXRlID0gY2xh
c3MgQXN5bmNUZXN0U3VpdGUgZXh0ZW5kcyBUZXN0U3VpdGUKICAgICAgICAgICAgICAgICBwcmlv
ckxvZ0NvdW50ID0gdGhpcy5faGFybmVzcy5sb2dDb3VudDsKICAgICAgICAgICAgICAgICB0aGlz
Ll9oYXJuZXNzLmxvZyhgLS0gUnVubmluZyB0ZXN0IGNhc2U6ICR7dGVzdGNhc2UubmFtZX1gKTsK
ICAgICAgICAgICAgICAgICB0aGlzLnJ1bkNvdW50Kys7CisgICAgICAgICAgICAgICAgaWYgKHRl
c3RjYXNlLnRlc3QudG9TdHJpbmcoKS5zdGFydHNXaXRoKCJhc3luYyAiKSkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRlc3RjYXNlLnRlc3QoKTsKICAgICAgICAgICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UodGVzdGNhc2UudGVzdCk7CiAgICAgICAgICAgICB9KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324486</attachid>
            <date>2017-10-20 21:49:29 -0700</date>
            <delta_ts>2017-10-20 23:11:38 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>async-2.patch</filename>
            <type>text/plain</type>
            <size>27415</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyOTkwYWY5MjA5ZS4uZmZmODc1ZmMzMTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MyBAQAor
MjAxNy0xMC0yMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFN1cHBvcnQgYGFzeW5jIHRlc3QoKSB7IC4uLiB9YCBpbiBJbnNw
ZWN0b3IgVGVzdCBTdWl0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3ODYxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCB0aGUgYWJpbGl0eSB0byBoYXZlIHRlc3QgZnVuY3Rpb25zIGJlIGFzeW5j
IGZ1bmN0aW9ucy4gQSBzdWNjZXNzZnVsCisgICAgICAgIGFzeW5jIHRlc3QgZnVuY3Rpb24ganVz
dCBuZWVkcyB0byBjb21wbGV0ZSBldmFsdWF0aW9uLiBUbyBpbmRpY2F0ZQorICAgICAgICBmYWls
dXJlIGl0IHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCisKKyAgICAgICAgICAgIHN1aXRlLmFk
ZFRlc3RDYXNlKHsKKyAgICAgICAgICAgICAgICBuYW1lOiAiRXhjZXB0aW9uT2ZOb3JtYWwiLAor
ICAgICAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdCguLi4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICAgICAg
bmFtZTogIkV4YW1wbGVPZlJlamVjdGlvbiIsCisgICAgICAgICAgICAgICAgYXN5bmMgdGVzdCgp
IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gYXdhaXQgU29tZUFnZW50Lm1ldGhv
ZCgpOworICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUuZXJyb3IpCisgICAgICAgICAgICAg
ICAgICAgICAgICB0aHJvdyAiRXhjZXB0aW9uIjsKKyAgICAgICAgICAgICAgICAgICAgLi4uCisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisKKyAgICAgICAgVXNpbmcgYXN5bmMg
dGVzdCBmdW5jdGlvbnMgaGFzIHRoZSBhZGRlZCBiZW5lZml0IHRoYXQgYSBydW50aW1lIGV4Y2Vw
dGlvbgorICAgICAgICBpbnNpZGUgb2YgYXN5bmNocm9ub3VzIHRlc3QgY29kZSB3aWxsIHJlamVj
dCB0aGUgY3VycmVudCB0ZXN0IGNhc2UgaW5zdGVhZAorICAgICAgICBvZiB0aW1pbmcgb3V0LiBG
b3IgZXhhbXBsZS4uLgorICAgICAgICAKKyAgICAgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgICAgICAgICBuYW1lOiAiRXhhbXBsZU9mUmVqZWN0aW9uVGhyb3VnaFJ1bnRpbWVF
eGNlcHRpb24iLAorICAgICAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAg
ICAgICAgIGxldCBhcnIgPSBbXTsKKyAgICAgICAgICAgICAgICAgICAgYXJyLnRoaXMuZG9lcy5u
b3QuZXhpc3Q7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIAor
ICAgICAgICAuLi4gc2hvdWxkIHdpbGwgbGVhZCB0byBhIGZhaWx1cmUgaW5zdGVhZCBvZiBhIHRp
bWVvdXQuCisgICAgICAgIAorICAgICAgICBUaGlzIHNob3VsZCBhbGxvdyB1cyB0byBzdHJ1Y3R1
cmUgc29tZSBjb21tb24gdGVzdHMgbW9yZSBuYXR1cmFsbHksIGxpa2Ugc286CisKKyAgICAgICAg
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgICAgICBuYW1lOiAiRXhhbXBsZU9m
Tm9ybWFsQXN5bmNUZXN0IiwKKyAgICAgICAgICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGAuLi5gKTsKKyAgICAg
ICAgICAgICAgICAgICAgbGV0IGV2ZW50ID0gYXdhaXQgV0kuTWFuYWdlci5hd2FpdEV2ZW50KC4u
Lik7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IGV2ZW50LmRhdGEucmVzb3Vy
Y2U7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoLi4uKTsK
KyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbCguLi4pOworICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKC4uLik7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisKKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10
ZXN0cy9hc3luYy10ZXN0LXN1aXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
dW5pdC10ZXN0cy9hc3luYy10ZXN0LXN1aXRlLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvdGFyZ2V0LW1hbmFnZXIuaHRtbDoKKwogMjAxNy0xMC0yMCAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBi
b2FyZC9kcmFnLWRyb3AtaHRtbC1jcm9zcy1vcmlnaW4taWZyYW1lLWluLXNhbWUtb3JpZ2luLmh0
bWwgaXMgZmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3Rz
L2FzeW5jLXRlc3Qtc3VpdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvYXN5bmMtdGVzdC1zdWl0ZS1leHBlY3RlZC50eHQKaW5kZXggZGZhMTAyMGZmNjYu
LmQ2ZmYzY2QwMmZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0
cy9hc3luYy10ZXN0LXN1aXRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdW5pdC10ZXN0cy9hc3luYy10ZXN0LXN1aXRlLWV4cGVjdGVkLnR4dApAQCAtODMsMyArODMs
MjUgQEAgUEFTUzogUHJvbWlzZSBmcm9tIHRlYXJkb3duRXhjZXB0aW9uVGVzdFN1aXRlLnJ1blRl
c3RDYXNlcygpIHNob3VsZCByZWplY3QuCiBTdGFjayBUcmFjZTogKHN1cHByZXNzZWQpCiBQQVNT
OiBQcm9taXNlIGZyb20gdGVhcmRvd25GYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNo
b3VsZCByZWplY3QuCiAKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQXN5bmNUZXN0U3VpdGUuQXN5
bmNGdW5jdGlvblN1Y2Nlc3MKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBc3luY0Z1bmN0aW9uU3Vj
Y2VzcworUEFTUzogUHJvbWlzZSBmcm9tIGFzeW5jRnVuY3Rpb25TdWNjZXNzVGVzdFN1aXRlLnJ1
blRlc3RDYXNlcygpIHNob3VsZCBzdWNjZWVkLgorUEFTUzogUHJvbWlzZSBkaWQgZXZhbHVhdGUg
dGhlIGFzeW5jIHRlc3QgZnVuY3Rpb24uCitQQVNTOiBSZXNvbHZlZCB2YWx1ZSBzaG91bGQgYmUg
NDIuCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQXN5bmNUZXN0U3VpdGUuQXN5bmNGdW5jdGlv
bkV4cGxpY2l0RmFpbHVyZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IEFzeW5jRnVuY3Rpb25GYWls
dXJlCishISBFWENFUFRJT046IEFzeW5jRnVuY3Rpb25GYWlsdXJlIEV4Y2VwdGlvbiBNZXNzYWdl
CitTdGFjayBUcmFjZTogKHN1cHByZXNzZWQpCitQQVNTOiBQcm9taXNlIGZyb20gYXN5bmNGdW5j
dGlvbkV4cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0
LgorUEFTUzogUHJvbWlzZSBkaWQgZXZhbHVhdGUgdGhlIGFzeW5jIHRlc3QgZnVuY3Rpb24uCitQ
QVNTOiBSZWplY3RlZCB2YWx1ZSBzaG91bGQgYmUgdGhyb3duIGV4Y2VwdGlvbi4KKworPT0gUnVu
bmluZyB0ZXN0IHN1aXRlOiBBc3luY1Rlc3RTdWl0ZS5Bc3luY0Z1bmN0aW9uUnVudGltZUZhaWx1
cmUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBc3luY0Z1bmN0aW9uRmFpbHVyZQorISEgRVhDRVBU
SU9OOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnKHt9KS54LngnKQor
U3RhY2sgVHJhY2U6IChzdXBwcmVzc2VkKQorUEFTUzogUHJvbWlzZSBmcm9tIGFzeW5jRnVuY3Rp
b25SdW50aW1lRmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0Lgor
UEFTUzogUHJvbWlzZSBkaWQgZXZhbHVhdGUgdGhlIGFzeW5jIHRlc3QgZnVuY3Rpb24uCitQQVNT
OiBSZWplY3RlZCB2YWx1ZSBzaG91bGQgYmUgYSBydW50aW1lIGV4Y2VwdGlvbi4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXN5bmMtdGVzdC1zdWl0ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXN5bmMtdGVzdC1zdWl0ZS5o
dG1sCmluZGV4IDAwZjllYzM2MjRlLi44ODI2ZTQ3NTA0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXN5bmMtdGVzdC1zdWl0ZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUuaHRtbApAQCAtOSw3
MSArOSw3MSBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIHRyeSB7CiAgICAgICAgIGxldCByZXN1
bHQgPSBuZXcgQXN5bmNUZXN0U3VpdGUodGhpcyk7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2co
IkZBSUw6IGluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgbmFtZSBhcmd1bWVu
dC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoImluc3RhbnRpYXRpbmcgQXN5bmNUZXN0
U3VpdGUgcmVxdWlyZXMgbmFtZSBhcmd1bWVudC4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAg
ICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6IGluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUg
cmVxdWlyZXMgbmFtZSBhcmd1bWVudC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoImlu
c3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgbmFtZSBhcmd1bWVudC4iKTsKICAg
ICB9CiAKICAgICB0cnkgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFzeW5jVGVzdFN1aXRl
KHRoaXMsIHt9KTsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogaW5zdGFudGlhdGlu
ZyBBc3luY1Rlc3RTdWl0ZSByZXF1aXJlcyBzdHJpbmcgbmFtZSBhcmd1bWVudC4iKTsKKyAgICAg
ICAgUHJvdG9jb2xUZXN0LmZhaWwoImluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWly
ZXMgc3RyaW5nIG5hbWUgYXJndW1lbnQuIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBQ
cm90b2NvbFRlc3QubG9nKCJQQVNTOiBpbnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRlIHJlcXVp
cmVzIHN0cmluZyBuYW1lIGFyZ3VtZW50LiIpOworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygi
aW5zdGFudGlhdGluZyBBc3luY1Rlc3RTdWl0ZSByZXF1aXJlcyBzdHJpbmcgbmFtZSBhcmd1bWVu
dC4iKTsKICAgICB9CiAKICAgICB0cnkgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFzeW5j
VGVzdFN1aXRlKHRoaXMsICIgICAgICAiKTsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJ
TDogaW5zdGFudGlhdGluZyBBc3luY1Rlc3RTdWl0ZSByZXF1aXJlcyBub24td2hpdGVzcGFjZSBu
YW1lIGFyZ3VtZW50LiIpOworICAgICAgICBQcm90b2NvbFRlc3QuZmFpbCgiaW5zdGFudGlhdGlu
ZyBBc3luY1Rlc3RTdWl0ZSByZXF1aXJlcyBub24td2hpdGVzcGFjZSBuYW1lIGFyZ3VtZW50LiIp
OwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzogaW5z
dGFudGlhdGluZyBBc3luY1Rlc3RTdWl0ZSByZXF1aXJlcyBub24td2hpdGVzcGFjZSBuYW1lIGFy
Z3VtZW50LiIpOworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygiaW5zdGFudGlhdGluZyBBc3lu
Y1Rlc3RTdWl0ZSByZXF1aXJlcyBub24td2hpdGVzcGFjZSBuYW1lIGFyZ3VtZW50LiIpOwogICAg
IH0KIAogICAgIHRyeSB7CiAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXN5bmNUZXN0U3VpdGUo
InNvbWV0aGluZyIsIHt9KTsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogaW5zdGFu
dGlhdGluZyBBc3luY1Rlc3RTdWl0ZSByZXF1aXJlcyB0ZXN0IGhhcm5lc3MgYXJndW1lbnQuIik7
CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJpbnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRl
IHJlcXVpcmVzIHRlc3QgaGFybmVzcyBhcmd1bWVudC4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0g
ICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6IGluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3Vp
dGUgcmVxdWlyZXMgdGVzdCBoYXJuZXNzIGFyZ3VtZW50LiIpOworICAgICAgICBQcm90b2NvbFRl
c3QucGFzcygiaW5zdGFudGlhdGluZyBBc3luY1Rlc3RTdWl0ZSByZXF1aXJlcyB0ZXN0IGhhcm5l
c3MgYXJndW1lbnQuIik7CiAgICAgfQogCiAgICAgbGV0IGJhZEFyZ3NTdWl0ZSA9IFByb3RvY29s
VGVzdC5jcmVhdGVBc3luY1N1aXRlKCJkdW1teSIpOwogICAgIHRyeSB7CiAgICAgICAgIGJhZEFy
Z3NTdWl0ZS5hZGRUZXN0Q2FzZSgpOwotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBz
aG91bGQgbm90IGJlIGFibGUgdG8gYWRkIGVtcHR5IHRlc3QgY2FzZS4iKTsKKyAgICAgICAgUHJv
dG9jb2xUZXN0LmZhaWwoInNob3VsZCBub3QgYmUgYWJsZSB0byBhZGQgZW1wdHkgdGVzdCBjYXNl
LiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzog
c2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFkZCBlbXB0eSB0ZXN0IGNhc2UuIik7CisgICAgICAgIFBy
b3RvY29sVGVzdC5wYXNzKCJzaG91bGQgbm90IGJlIGFibGUgdG8gYWRkIGVtcHR5IHRlc3QgY2Fz
ZS4iKTsKICAgICB9CiAgICAgdHJ5IHsKICAgICAgICAgYmFkQXJnc1N1aXRlLmFkZFRlc3RDYXNl
KCJzdHJpbmciKTsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogc2hvdWxkIG5vdCBi
ZSBhYmxlIHRvIGFkZCBub24tb2JqZWN0IHRlc3QgY2FzZS4iKTsKKyAgICAgICAgUHJvdG9jb2xU
ZXN0LmZhaWwoInNob3VsZCBub3QgYmUgYWJsZSB0byBhZGQgbm9uLW9iamVjdCB0ZXN0IGNhc2Uu
Iik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQQVNTOiBz
aG91bGQgbm90IGJlIGFibGUgdG8gYWRkIG5vbi1vYmplY3QgdGVzdCBjYXNlLiIpOworICAgICAg
ICBQcm90b2NvbFRlc3QucGFzcygic2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFkZCBub24tb2JqZWN0
IHRlc3QgY2FzZS4iKTsKICAgICB9CiAgICAgdHJ5IHsKICAgICAgICAgYmFkQXJnc1N1aXRlLmFk
ZFRlc3RDYXNlKHsKICAgICAgICAgICAgIG5hbWU6IHt9LAogICAgICAgICAgICAgdGVzdCgpIHt9
LAogICAgICAgICB9KTsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogdGVzdCBjYXNl
IHNob3VsZCByZXF1aXJlIHN0cmluZyBuYW1lLiIpOworICAgICAgICBQcm90b2NvbFRlc3QuZmFp
bCgidGVzdCBjYXNlIHNob3VsZCByZXF1aXJlIHN0cmluZyBuYW1lLiIpOwogICAgIH0gY2F0Y2gg
KGUpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzogdGVzdCBjYXNlIHNob3VsZCBy
ZXF1aXJlIHN0cmluZyBuYW1lLiIpOworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygidGVzdCBj
YXNlIHNob3VsZCByZXF1aXJlIHN0cmluZyBuYW1lLiIpOwogICAgIH0KICAgICB0cnkgewogICAg
ICAgICBiYWRBcmdzU3VpdGUuYWRkVGVzdENhc2UoewogICAgICAgICAgICAgbmFtZTogIiAgICAg
ICAgIiwKICAgICAgICAgICAgIHRlc3QoKSB7fSwKICAgICAgICAgfSk7Ci0gICAgICAgIFByb3Rv
Y29sVGVzdC5sb2coIkZBSUw6IHRlc3QgY2FzZSBzaG91bGQgcmVxdWlyZSBub24td2hpdGVzcGFj
ZSBuYW1lLiIpOworICAgICAgICBQcm90b2NvbFRlc3QuZmFpbCgidGVzdCBjYXNlIHNob3VsZCBy
ZXF1aXJlIG5vbi13aGl0ZXNwYWNlIG5hbWUuIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAg
ICBQcm90b2NvbFRlc3QubG9nKCJQQVNTOiB0ZXN0IGNhc2Ugc2hvdWxkIHJlcXVpcmUgbm9uLXdo
aXRlc3BhY2UgbmFtZS4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoInRlc3QgY2FzZSBz
aG91bGQgcmVxdWlyZSBub24td2hpdGVzcGFjZSBuYW1lLiIpOwogICAgIH0KICAgICB0cnkgewog
ICAgICAgICBiYWRBcmdzU3VpdGUuYWRkVGVzdENhc2UoewogICAgICAgICAgICAgbmFtZTogImZv
byIsCiAgICAgICAgICAgICB0ZXN0OiBudWxsLAogICAgICAgICB9KTsKLSAgICAgICAgUHJvdG9j
b2xUZXN0LmxvZygiRkFJTDogdGVzdCBjYXNlIHNob3VsZCByZXF1aXJlIHRlc3QgZnVuY3Rpb24u
Iik7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJ0ZXN0IGNhc2Ugc2hvdWxkIHJlcXVpcmUg
dGVzdCBmdW5jdGlvbi4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVz
dC5sb2coIlBBU1M6IHRlc3QgY2FzZSBzaG91bGQgcmVxdWlyZSB0ZXN0IGZ1bmN0aW9uLiIpOwor
ICAgICAgICBQcm90b2NvbFRlc3QucGFzcygidGVzdCBjYXNlIHNob3VsZCByZXF1aXJlIHRlc3Qg
ZnVuY3Rpb24uIik7CiAgICAgfQogICAgIHRyeSB7CiAgICAgICAgIGJhZEFyZ3NTdWl0ZS5hZGRU
ZXN0Q2FzZSh7CkBAIC04MSw5ICs4MSw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAg
dGVzdCgpIHt9LAogICAgICAgICAgICAgc2V0dXA6ICJhc3RkIgogICAgICAgICB9KTsKLSAgICAg
ICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNwZWNpZnkg
bm9uLUZ1bmN0aW9uIGBzZXR1cGAgcGFyYW1ldGVyLiIpOworICAgICAgICBQcm90b2NvbFRlc3Qu
ZmFpbCgic2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNwZWNpZnkgbm9uLUZ1bmN0aW9uIGBzZXR1cGAg
cGFyYW1ldGVyLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0Lmxv
ZygiUEFTUzogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNwZWNpZnkgbm9uLUZ1bmN0aW9uIGBzZXR1
cGAgcGFyYW1ldGVyLiIpOworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygic2hvdWxkIG5vdCBi
ZSBhYmxlIHRvIHNwZWNpZnkgbm9uLUZ1bmN0aW9uIGBzZXR1cGAgcGFyYW1ldGVyLiIpOwogICAg
IH0KICAgICB0cnkgewogICAgICAgICBiYWRBcmdzU3VpdGUuYWRkVGVzdENhc2UoewpAQCAtOTEs
OSArOTEsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHRlc3QoKSB7fSwKICAgICAg
ICAgICAgIHNldHVwOiAxMjMKICAgICAgICAgfSk7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2co
IkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgc2V0dXBg
IHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoInNob3VsZCBub3QgYmUg
YWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgc2V0dXBgIHBhcmFtZXRlci4iKTsKICAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6IHNob3VsZCBub3Qg
YmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgc2V0dXBgIHBhcmFtZXRlci4iKTsKKyAg
ICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoInNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5v
bi1GdW5jdGlvbiBgc2V0dXBgIHBhcmFtZXRlci4iKTsKICAgICB9CiAgICAgdHJ5IHsKICAgICAg
ICAgYmFkQXJnc1N1aXRlLmFkZFRlc3RDYXNlKHsKQEAgLTEwMSw5ICsxMDEsOSBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgICAgIHRlc3QoKSB7fSwKICAgICAgICAgICAgIHNldHVwOiB7fQog
ICAgICAgICB9KTsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogc2hvdWxkIG5vdCBi
ZSBhYmxlIHRvIHNwZWNpZnkgbm9uLUZ1bmN0aW9uIGBzZXR1cGAgcGFyYW1ldGVyLiIpOworICAg
ICAgICBQcm90b2NvbFRlc3QuZmFpbCgic2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNwZWNpZnkgbm9u
LUZ1bmN0aW9uIGBzZXR1cGAgcGFyYW1ldGVyLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAg
ICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNwZWNpZnkg
bm9uLUZ1bmN0aW9uIGBzZXR1cGAgcGFyYW1ldGVyLiIpOworICAgICAgICBQcm90b2NvbFRlc3Qu
cGFzcygic2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNwZWNpZnkgbm9uLUZ1bmN0aW9uIGBzZXR1cGAg
cGFyYW1ldGVyLiIpOwogICAgIH0KICAgICB0cnkgewogICAgICAgICBiYWRBcmdzU3VpdGUuYWRk
VGVzdENhc2UoewpAQCAtMTExLDkgKzExMSw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAg
ICAgdGVzdCgpIHt9LAogICAgICAgICAgICAgdGVhcmRvd246ICJhc3RkIgogICAgICAgICB9KTsK
LSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNw
ZWNpZnkgbm9uLUZ1bmN0aW9uIGB0ZWFyZG93bmAgcGFyYW1ldGVyLiIpOworICAgICAgICBQcm90
b2NvbFRlc3QuZmFpbCgic2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNwZWNpZnkgbm9uLUZ1bmN0aW9u
IGB0ZWFyZG93bmAgcGFyYW1ldGVyLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgUHJv
dG9jb2xUZXN0LmxvZygiUEFTUzogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNwZWNpZnkgbm9uLUZ1
bmN0aW9uIGB0ZWFyZG93bmAgcGFyYW1ldGVyLiIpOworICAgICAgICBQcm90b2NvbFRlc3QucGFz
cygic2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNwZWNpZnkgbm9uLUZ1bmN0aW9uIGB0ZWFyZG93bmAg
cGFyYW1ldGVyLiIpOwogICAgIH0KICAgICB0cnkgewogICAgICAgICBiYWRBcmdzU3VpdGUuYWRk
VGVzdENhc2UoewpAQCAtMTIxLDkgKzEyMSw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAg
ICAgdGVzdCgpIHt9LAogICAgICAgICAgICAgdGVhcmRvd246IDEyMwogICAgICAgICB9KTsKLSAg
ICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNwZWNp
Znkgbm9uLUZ1bmN0aW9uIGB0ZWFyZG93bmAgcGFyYW1ldGVyLiIpOworICAgICAgICBQcm90b2Nv
bFRlc3QuZmFpbCgic2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNwZWNpZnkgbm9uLUZ1bmN0aW9uIGB0
ZWFyZG93bmAgcGFyYW1ldGVyLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgUHJvdG9j
b2xUZXN0LmxvZygiUEFTUzogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNwZWNpZnkgbm9uLUZ1bmN0
aW9uIGB0ZWFyZG93bmAgcGFyYW1ldGVyLiIpOworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygi
c2hvdWxkIG5vdCBiZSBhYmxlIHRvIHNwZWNpZnkgbm9uLUZ1bmN0aW9uIGB0ZWFyZG93bmAgcGFy
YW1ldGVyLiIpOwogICAgIH0KICAgICB0cnkgewogICAgICAgICBiYWRBcmdzU3VpdGUuYWRkVGVz
dENhc2UoewpAQCAtMTMxLDE3ICsxMzEsMTcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAg
ICB0ZXN0KCkge30sCiAgICAgICAgICAgICB0ZWFyZG93bjoge30KICAgICAgICAgfSk7Ci0gICAg
ICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5
IG5vbi1GdW5jdGlvbiBgdGVhcmRvd25gIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xU
ZXN0LmZhaWwoInNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgdGVh
cmRvd25gIHBhcmFtZXRlci4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29s
VGVzdC5sb2coIlBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlv
biBgdGVhcmRvd25gIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoInNo
b3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgdGVhcmRvd25gIHBhcmFt
ZXRlci4iKTsKICAgICB9CiAKICAgICBsZXQgcnVuRW1wdHlTdWl0ZSA9IFByb3RvY29sVGVzdC5j
cmVhdGVBc3luY1N1aXRlKCJBc3luY1Rlc3RTdWl0ZS5SdW5FbXB0eVN1aXRlIik7CiAgICAgdHJ5
IHsKICAgICAgICAgcnVuRW1wdHlTdWl0ZS5ydW5UZXN0Q2FzZXMoKTsKLSAgICAgICAgUHJvdG9j
b2xUZXN0LmxvZygiRkFJTDogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHJ1biBlbXB0eSB0ZXN0IHN1
aXRlLiIpOworICAgICAgICBQcm90b2NvbFRlc3QuZmFpbCgic2hvdWxkIG5vdCBiZSBhYmxlIHRv
IHJ1biBlbXB0eSB0ZXN0IHN1aXRlLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgUHJv
dG9jb2xUZXN0LmxvZygiUEFTUzogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHJ1biBlbXB0eSB0ZXN0
IHN1aXRlLiIpOworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygic2hvdWxkIG5vdCBiZSBhYmxl
IHRvIHJ1biBlbXB0eSB0ZXN0IHN1aXRlLiIpOwogICAgIH0KIAogICAgIGxldCBydW5Ud2ljZVN1
aXRlID0gUHJvdG9jb2xUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFzeW5jVGVzdFN1aXRlLlJ1blR3
aWNlU3VpdGUiKTsKQEAgLTE1Niw5ICsxNTYsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAg
Ly8gVGVzdCBjYXNlcyB3b24ndCBydW4gaW4gdGhpcyBldmVudCBsb29wOyB0aGlzIGNhbGwgc2hv
dWxkIHN0aWxsIHRocm93LgogICAgICAgICAvLyBMYXRlciB0ZXN0cyBhcmUgY2hhaW5lZCB0byB0
aGlzIHN1aXRlIHRvIGF2b2lkIG5vbmRldGVybWluaXNtLgogICAgICAgICBydW5Ud2ljZVN1aXRl
LnJ1blRlc3RDYXNlcygpOwotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBzaG91bGQg
bm90IGJlIGFibGUgdG8gcnVuIGEgdGVzdCBzdWl0ZSB0d2ljZS4iKTsKKyAgICAgICAgUHJvdG9j
b2xUZXN0LmZhaWwoInNob3VsZCBub3QgYmUgYWJsZSB0byBydW4gYSB0ZXN0IHN1aXRlIHR3aWNl
LiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzog
c2hvdWxkIG5vdCBiZSBhYmxlIHRvIHJ1biBhIHRlc3Qgc3VpdGUgdHdpY2UuIik7CisgICAgICAg
IFByb3RvY29sVGVzdC5wYXNzKCJzaG91bGQgbm90IGJlIGFibGUgdG8gcnVuIGEgdGVzdCBzdWl0
ZSB0d2ljZS4iKTsKICAgICB9CiAKICAgICBsZXQgcmVqZWN0VG9rZW4gPSB7InRva2VuIjogNjY2
fTsKQEAgLTIwOSwxMCArMjA5LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICByZXR1cm4g
cHJvbWlzZTsKICAgICB9KTsKICAgICByZXN1bHQgPSByZXN1bHQudGhlbihmdW5jdGlvbiByZXNv
bHZlZCgpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogUHJvbWlzZSBmcm9tIHNl
cXVlbnRpYWxFeGVjdXRpb25TdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0IHdoZW4g
YSB0ZXN0IGNhc2UgZmFpbHMuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJQcm9taXNl
IGZyb20gc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWpl
Y3Qgd2hlbiBhIHRlc3QgY2FzZSBmYWlscy4iKTsKICAgICAgICAgcmV0dXJuIFByb21pc2UucmVz
b2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCiAgICAgfSwgZnVuY3Rpb24gcmVqZWN0ZWQo
ZSkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQQVNTOiBQcm9taXNlIGZyb20gc2VxdWVu
dGlhbEV4ZWN1dGlvblN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3Qgd2hlbiBhIHRl
c3QgY2FzZSBmYWlscy4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoIlByb21pc2UgZnJv
bSBzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdCB3
aGVuIGEgdGVzdCBjYXNlIGZhaWxzLiIpOwogICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhh
dChlID09PSB0aHJvd25FcnJvciwgIlByb21pc2UgZnJvbSBzZXF1ZW50aWFsRXhlY3V0aW9uU3Vp
dGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdCB3aXRob3V0IGFsdGVyaW5nIGl0cyByZXN1
bHQgdmFsdWUuIik7CiAKICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQoc2VxdWVudGlh
bEV4ZWN1dGlvblN1aXRlLnJ1bkNvdW50ID09PSA0LCAic2VxdWVudGlhbEV4ZWN1dGlvblN1aXRl
IHNob3VsZCBoYXZlIGV4ZWN1dGVkIGZvdXIgdGVzdHMuIik7CkBAIC0yMjUsMTAgKzIyNSwxMCBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICByZXN1bHQgPSByZXN1bHQudGhlbigoKSA9PiB7CiAgICAg
ICAgIHJldHVybiBhYm9ydE9uRmFpbHVyZVN1aXRlLnJ1blRlc3RDYXNlcygpOwogICAgIH0pLnRo
ZW4oZnVuY3Rpb24gcmVzb2x2ZWQoKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6
IFByb21pc2UgZnJvbSBhYm9ydE9uRmFpbHVyZVN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCBy
ZWplY3Qgd2hlbiBhIHRlc3QgY2FzZSBmYWlscy4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZh
aWwoIlByb21pc2UgZnJvbSBhYm9ydE9uRmFpbHVyZVN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3Vs
ZCByZWplY3Qgd2hlbiBhIHRlc3QgY2FzZSBmYWlscy4iKTsKICAgICAgICAgcmV0dXJuIFByb21p
c2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCiAgICAgfSwgZnVuY3Rpb24gcmVq
ZWN0ZWQoZSkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQQVNTOiBQcm9taXNlIGZyb20g
YWJvcnRPbkZhaWx1cmVTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0IHdoZW4gYSB0
ZXN0IGNhc2UgZmFpbHMuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJQcm9taXNlIGZy
b20gYWJvcnRPbkZhaWx1cmVTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0IHdoZW4g
YSB0ZXN0IGNhc2UgZmFpbHMuIik7CiAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KGUg
PT09IHJlamVjdFRva2VuLCAiUHJvbWlzZSBmcm9tIGFib3J0T25GYWlsdXJlU3VpdGUucnVuVGVz
dENhc2VzKCkgc2hvdWxkIHJlamVjdCB3aXRob3V0IGFsdGVyaW5nIGl0cyByZXN1bHQgdmFsdWUu
Iik7CiAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KGFib3J0T25GYWlsdXJlU3VpdGUu
cnVuQ291bnQgPT09IDIsICJhYm9ydE9uRmFpbHVyZVN1aXRlIHNob3VsZCBoYXZlIGV4ZWN1dGVk
IHR3byB0ZXN0cy4iKTsKICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQoYWJvcnRPbkZh
aWx1cmVTdWl0ZS5wYXNzQ291bnQgPT09IDEsICJhYm9ydE9uRmFpbHVyZVN1aXRlIHNob3VsZCBo
YXZlIHBhc3NlZCBvbmUgdGVzdC4iKTsKQEAgLTI3MiwxMCArMjcyLDEwIEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgIHJlc3VsdCA9IHJlc3VsdC50aGVuKCgpID0+IHsKICAgICAgICAgcmV0dXJuIHNl
dHVwQW5kVGVhcmRvd25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCk7CiAgICAgfSkudGhlbihmdW5j
dGlvbiByZXNvbHZlZCgpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzogUHJvbWlz
ZSBmcm9tIHNldHVwQW5kVGVhcmRvd25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJl
c29sdmUuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJQcm9taXNlIGZyb20gc2V0dXBB
bmRUZWFyZG93blRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVzb2x2ZS4iKTsKICAg
ICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCiAg
ICAgfSwgZnVuY3Rpb24gcmVqZWN0ZWQoZSkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJG
QUlMOiBQcm9taXNlIGZyb20gc2V0dXBBbmRUZWFyZG93blRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMo
KSBzaG91bGQgcmVzb2x2ZS4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoIlByb21pc2Ug
ZnJvbSBzZXR1cEFuZFRlYXJkb3duVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZXNv
bHZlLiIpOwogICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRo
aXMgdGVzdC4KICAgICB9KTsKIApAQCAtMjk3LDEwICsyOTcsMTAgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oKCkgPT4gewogICAgICAgICByZXR1cm4gc2V0dXBF
eGNlcHRpb25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCk7CiAgICAgfSkudGhlbihmdW5jdGlvbiBy
ZXNvbHZlZCgpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogUHJvbWlzZSBmcm9t
IHNldHVwRXhjZXB0aW9uVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7
CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJQcm9taXNlIGZyb20gc2V0dXBFeGNlcHRpb25U
ZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4iKTsKICAgICAgICAgcmV0dXJu
IFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCiAgICAgfSwgZnVuY3Rp
b24gcmVqZWN0ZWQoZSkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQQVNTOiBQcm9taXNl
IGZyb20gc2V0dXBFeGNlcHRpb25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVj
dC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoIlByb21pc2UgZnJvbSBzZXR1cEV4Y2Vw
dGlvblRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LiIpOwogICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRoaXMgdGVzdC4KICAgICB9KTsK
IApAQCAtMzIyLDEwICszMjIsMTAgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgcmVzdWx0ID0gcmVz
dWx0LnRoZW4oKCkgPT4gewogICAgICAgICByZXR1cm4gc2V0dXBGYWlsdXJlVGVzdFN1aXRlLnJ1
blRlc3RDYXNlcygpOwogICAgIH0pLnRoZW4oZnVuY3Rpb24gcmVzb2x2ZWQoKSB7Ci0gICAgICAg
IFByb3RvY29sVGVzdC5sb2coIkZBSUw6IFByb21pc2UgZnJvbSBzZXR1cEZhaWx1cmVUZXN0U3Vp
dGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0
LmZhaWwoIlByb21pc2UgZnJvbSBzZXR1cEZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkg
c2hvdWxkIHJlamVjdC4iKTsKICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBD
b250aW51ZSB0aGlzIHRlc3QuCiAgICAgfSwgZnVuY3Rpb24gcmVqZWN0ZWQoZSkgewotICAgICAg
ICBQcm90b2NvbFRlc3QubG9nKCJQQVNTOiBQcm9taXNlIGZyb20gc2V0dXBGYWlsdXJlVGVzdFN1
aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7CisgICAgICAgIFByb3RvY29sVGVz
dC5wYXNzKCJQcm9taXNlIGZyb20gc2V0dXBGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygp
IHNob3VsZCByZWplY3QuIik7CiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8g
Q29udGludWUgdGhpcyB0ZXN0LgogICAgIH0pOwogCkBAIC0zNTIsMTAgKzM1MiwxMCBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICByZXN1bHQgPSByZXN1bHQudGhlbigoKSA9PiB7CiAgICAgICAgIHJl
dHVybiB0ZWFyZG93bkV4Y2VwdGlvblRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKTsKICAgICB9KS50
aGVuKGZ1bmN0aW9uIHJlc29sdmVkKCkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlM
OiBQcm9taXNlIGZyb20gdGVhcmRvd25FeGNlcHRpb25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCkg
c2hvdWxkIHJlamVjdC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoIlByb21pc2UgZnJv
bSB0ZWFyZG93bkV4Y2VwdGlvblRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0
LiIpOwogICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRoaXMg
dGVzdC4KICAgICB9LCBmdW5jdGlvbiByZWplY3RlZChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVz
dC5sb2coIlBBU1M6IFByb21pc2UgZnJvbSB0ZWFyZG93bkV4Y2VwdGlvblRlc3RTdWl0ZS5ydW5U
ZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LiIpOworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygi
UHJvbWlzZSBmcm9tIHRlYXJkb3duRXhjZXB0aW9uVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNo
b3VsZCByZWplY3QuIik7CiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29u
dGludWUgdGhpcyB0ZXN0LgogICAgIH0pOwogCkBAIC0zODIsMTAgKzM4Miw4MiBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICByZXN1bHQgPSByZXN1bHQudGhlbigoKSA9PiB7CiAgICAgICAgIHJldHVy
biB0ZWFyZG93bkZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCk7CiAgICAgfSkudGhlbihm
dW5jdGlvbiByZXNvbHZlZCgpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogUHJv
bWlzZSBmcm9tIHRlYXJkb3duRmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQg
cmVqZWN0LiIpOworICAgICAgICBQcm90b2NvbFRlc3QuZmFpbCgiUHJvbWlzZSBmcm9tIHRlYXJk
b3duRmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LiIpOwogICAg
ICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRoaXMgdGVzdC4KICAg
ICB9LCBmdW5jdGlvbiByZWplY3RlZChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBB
U1M6IFByb21pc2UgZnJvbSB0ZWFyZG93bkZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkg
c2hvdWxkIHJlamVjdC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoIlByb21pc2UgZnJv
bSB0ZWFyZG93bkZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4i
KTsKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRl
c3QuCisgICAgfSk7CisKKworICAgIGxldCBhc3luY0Z1bmN0aW9uU3VjY2Vzc1Rlc3RTdWl0ZURp
ZEV2YWx1YXRlID0gZmFsc2U7CisgICAgbGV0IGFzeW5jRnVuY3Rpb25TdWNjZXNzVGVzdFN1aXRl
ID0gUHJvdG9jb2xUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkFzeW5jVGVzdFN1aXRlLkFzeW5jRnVu
Y3Rpb25TdWNjZXNzIik7CisgICAgYXN5bmNGdW5jdGlvblN1Y2Nlc3NUZXN0U3VpdGUuYWRkVGVz
dENhc2UoeworICAgICAgICBuYW1lOiAiQXN5bmNGdW5jdGlvblN1Y2Nlc3MiLAorICAgICAgICBk
ZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYW4gYXN5bmMgc3VpdGUgd2l0aCBhc3luYyB0ZXN0IGZ1
bmN0aW9ucyBjYW4gc3VjY2VlZCIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAg
ICBhc3luY0Z1bmN0aW9uU3VjY2Vzc1Rlc3RTdWl0ZURpZEV2YWx1YXRlID0gdHJ1ZTsKKyAgICAg
ICAgICAgIHJldHVybiA0MjsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgcmVzdWx0ID0gcmVz
dWx0LnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gYXN5bmNGdW5jdGlvblN1Y2Nlc3NUZXN0
U3VpdGUucnVuVGVzdENhc2VzKCk7CisgICAgfSkudGhlbihmdW5jdGlvbiByZXNvbHZlKHgpIHsK
KyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoIlByb21pc2UgZnJvbSBhc3luY0Z1bmN0aW9uU3Vj
Y2Vzc1Rlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgc3VjY2VlZC4iKTsKKyAgICAgICAg
UHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQoYXN5bmNGdW5jdGlvblN1Y2Nlc3NUZXN0U3VpdGVEaWRF
dmFsdWF0ZSwgIlByb21pc2UgZGlkIGV2YWx1YXRlIHRoZSBhc3luYyB0ZXN0IGZ1bmN0aW9uLiIp
OworICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwoeCwgNDIsICJSZXNvbHZlZCB2YWx1
ZSBzaG91bGQgYmUgNDIuIik7CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8g
Q29udGludWUgdGhpcyB0ZXN0LgorICAgIH0sIGZ1bmN0aW9uIHJlamVjdGVkKGUpIHsKKyAgICAg
ICAgUHJvdG9jb2xUZXN0LmZhaWwoIlByb21pc2UgZnJvbSBhc3luY0Z1bmN0aW9uU3VjY2Vzc1Rl
c3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgc3VjY2VlZC4iKTsKKyAgICAgICAgcmV0dXJu
IFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCisgICAgfSk7CisKKwor
ICAgIGxldCBhc3luY0Z1bmN0aW9uRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRlRGlkRXZhbHVhdGUg
PSBmYWxzZTsKKyAgICBsZXQgYXN5bmNGdW5jdGlvbkV4cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZSA9
IFByb3RvY29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBc3luY1Rlc3RTdWl0ZS5Bc3luY0Z1bmN0
aW9uRXhwbGljaXRGYWlsdXJlIik7CisgICAgYXN5bmNGdW5jdGlvbkV4cGxpY2l0RmFpbHVyZVRl
c3RTdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJBc3luY0Z1bmN0aW9uRmFpbHVy
ZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBhbiBhc3luYyBzdWl0ZSB3aXRo
IGFzeW5jIHRlc3QgZnVuY3Rpb25zIHRoYXQgdGhyb3dzIHdpbGwgcmVqZWN0IiwKKyAgICAgICAg
YXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGFzeW5jRnVuY3Rpb25FeHBsaWNpdEZhaWx1cmVU
ZXN0U3VpdGVEaWRFdmFsdWF0ZSA9IHRydWU7CisgICAgICAgICAgICB0aHJvdyAiQXN5bmNGdW5j
dGlvbkZhaWx1cmUgRXhjZXB0aW9uIE1lc3NhZ2UiOworICAgICAgICB9CisgICAgfSk7CisKKyAg
ICByZXN1bHQgPSByZXN1bHQudGhlbigoKSA9PiB7CisgICAgICAgIHJldHVybiBhc3luY0Z1bmN0
aW9uRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpOworICAgIH0pLnRoZW4o
ZnVuY3Rpb24gcmVzb2x2ZSgpIHsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoIlByb21pc2Ug
ZnJvbSBhc3luY0Z1bmN0aW9uRXhwbGljaXRGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygp
IHNob3VsZCByZWplY3QuIik7CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8g
Q29udGludWUgdGhpcyB0ZXN0LgorICAgIH0sIGZ1bmN0aW9uIHJlamVjdGVkKGUpIHsKKyAgICAg
ICAgUHJvdG9jb2xUZXN0LnBhc3MoIlByb21pc2UgZnJvbSBhc3luY0Z1bmN0aW9uRXhwbGljaXRG
YWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7CisgICAgICAg
IFByb3RvY29sVGVzdC5leHBlY3RUaGF0KGFzeW5jRnVuY3Rpb25FeHBsaWNpdEZhaWx1cmVUZXN0
U3VpdGVEaWRFdmFsdWF0ZSwgIlByb21pc2UgZGlkIGV2YWx1YXRlIHRoZSBhc3luYyB0ZXN0IGZ1
bmN0aW9uLiIpOworICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwoZSwgIkFzeW5jRnVu
Y3Rpb25GYWlsdXJlIEV4Y2VwdGlvbiBNZXNzYWdlIiwgIlJlamVjdGVkIHZhbHVlIHNob3VsZCBi
ZSB0aHJvd24gZXhjZXB0aW9uLiIpOworICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7
IC8vIENvbnRpbnVlIHRoaXMgdGVzdC4KKyAgICB9KTsKKworCisgICAgbGV0IGFzeW5jRnVuY3Rp
b25SdW50aW1lRmFpbHVyZVRlc3RTdWl0ZURpZEV2YWx1YXRlID0gZmFsc2U7CisgICAgbGV0IGFz
eW5jRnVuY3Rpb25SdW50aW1lRmFpbHVyZVRlc3RTdWl0ZSA9IFByb3RvY29sVGVzdC5jcmVhdGVB
c3luY1N1aXRlKCJBc3luY1Rlc3RTdWl0ZS5Bc3luY0Z1bmN0aW9uUnVudGltZUZhaWx1cmUiKTsK
KyAgICBhc3luY0Z1bmN0aW9uUnVudGltZUZhaWx1cmVUZXN0U3VpdGUuYWRkVGVzdENhc2Uoewor
ICAgICAgICBuYW1lOiAiQXN5bmNGdW5jdGlvbkZhaWx1cmUiLAorICAgICAgICBkZXNjcmlwdGlv
bjogIkNoZWNrIHRoYXQgYW4gYXN5bmMgc3VpdGUgd2l0aCBhc3luYyB0ZXN0IGZ1bmN0aW9ucyB0
aGF0IHRocm93cyB3aXRoIGEgcnVudGltZSBlcm9yciB3aWxsIHJlamVjdCIsCisgICAgICAgIGFz
eW5jIHRlc3QoKSB7CisgICAgICAgICAgICBhc3luY0Z1bmN0aW9uUnVudGltZUZhaWx1cmVUZXN0
U3VpdGVEaWRFdmFsdWF0ZSA9IHRydWU7CisgICAgICAgICAgICAoe30pLngueC54OworICAgICAg
ICB9CisgICAgfSk7CisKKyAgICByZXN1bHQgPSByZXN1bHQudGhlbigoKSA9PiB7CisgICAgICAg
IHJldHVybiBhc3luY0Z1bmN0aW9uUnVudGltZUZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2Vz
KCk7CisgICAgfSkudGhlbihmdW5jdGlvbiByZXNvbHZlKCkgeworICAgICAgICBQcm90b2NvbFRl
c3QuZmFpbCgiUHJvbWlzZSBmcm9tIGFzeW5jRnVuY3Rpb25SdW50aW1lRmFpbHVyZVRlc3RTdWl0
ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LiIpOworICAgICAgICByZXR1cm4gUHJvbWlz
ZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRoaXMgdGVzdC4KKyAgICB9LCBmdW5jdGlvbiByZWpl
Y3RlZChlKSB7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJQcm9taXNlIGZyb20gYXN5bmNG
dW5jdGlvblJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWpl
Y3QuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KGFzeW5jRnVuY3Rpb25SdW50
aW1lRmFpbHVyZVRlc3RTdWl0ZURpZEV2YWx1YXRlLCAiUHJvbWlzZSBkaWQgZXZhbHVhdGUgdGhl
IGFzeW5jIHRlc3QgZnVuY3Rpb24uIik7CisgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0
KGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IsICJSZWplY3RlZCB2YWx1ZSBzaG91bGQgYmUgYSBydW50
aW1lIGV4Y2VwdGlvbi4iKTsKICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBD
b250aW51ZSB0aGlzIHRlc3QuCiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci91bml0LXRlc3RzL3RhcmdldC1tYW5hZ2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdW5pdC10ZXN0cy90YXJnZXQtbWFuYWdlci5odG1sCmluZGV4IDQyYmNlYzEwMjFhLi44
MGI5Nzc2ZWI4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMv
dGFyZ2V0LW1hbmFnZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0
cy90YXJnZXQtbWFuYWdlci5odG1sCkBAIC0zNyw0NyArMzcsNDIgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgc3VpdGUuYWRkVGVzdENhc2UoewogICAgICAgICBuYW1lOiAiVGFyZ2V0TWFuYWdlci5N
YWluVGFyZ2V0IiwKICAgICAgICAgZGVzY3JpcHRpb246ICJXZSBzaG91bGQgYWx3YXlzIGhhdmUg
dGhlIG1haW4gdGFyZ2V0LiIsCi0gICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAg
ICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChXSS50
YXJnZXRzID09PSBXSS50YXJnZXRNYW5hZ2VyLnRhcmdldHMpOwogICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RFcXVhbChXSS50YXJnZXRzLnNpemUsIDEsICJUYXJnZXRzIGxpc3Qgc2hv
dWxkIGFsd2F5cyBzdGFydCBvdXQgd2l0aCB0aGUgbWFpbiB0YXJnZXQuIik7CiAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFsuLi5XSS50YXJnZXRzXVswXSwgV0kubWFpblRh
cmdldCwgIlRhcmdldCBsaXN0IHNob3VsZCBhbHdheXMgY29udGFpbiB0aGUgbWFpbiB0YXJnZXQu
Iik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdE51bGwoV0kubWFpblRhcmdl
dC5leGVjdXRpb25Db250ZXh0LCAiTWFpbiB0YXJnZXQgc2hvdWxkIGhhdmUgYW4gRXhlY3V0aW9u
Q29udGV4dC4iKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoV0kubWFp
blRhcmdldC5SdW50aW1lQWdlbnQsIFJ1bnRpbWVBZ2VudCwgIk1haW4gdGFyZ2V0IHNob3VsZCBo
YXZlIHRoZSBnbG9iYWwgUnVudGltZUFnZW50LiIpOwogICAgICAgICAgICAgZHVtcFRhcmdldHMo
KTsKLSAgICAgICAgICAgIHJlc29sdmUoKTsKICAgICAgICAgfQogICAgIH0pOwogCiAgICAgc3Vp
dGUuYWRkVGVzdENhc2UoewogICAgICAgICBuYW1lOiAiVGFyZ2V0TWFuYWdlci5Xb3JrZXJUYXJn
ZXQuQ3JlYXRlIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDcmVhdGluZyBhIFdvcmtlciBzaG91
bGQgY3JlYXRlIGEgbmV3IFdvcmtlciBUYXJnZXQuIiwKLSAgICAgICAgdGVzdChyZXNvbHZlLCBy
ZWplY3QpIHsKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoImNyZWF0ZVdvcmtlcigpIik7Ci0gICAgICAgICAgICBXSS50YXJn
ZXRNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdJLlRhcmdldE1hbmFnZXIuRXZlbnQu
VGFyZ2V0QWRkZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAgIGxldCB0YXJnZXQgPSBl
dmVudC5kYXRhLnRhcmdldDsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCh0
YXJnZXQgaW5zdGFuY2VvZiBXSS5UYXJnZXQpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0RXF1YWwodGFyZ2V0LnR5cGUsIFdJLlRhcmdldC5UeXBlLldvcmtlciwgIkFkZGVk
IFRhcmdldCBzaG91bGQgaGF2ZSBXb3JrZXIgdHlwZS4iKTsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdE5vdE51bGwodGFyZ2V0LmV4ZWN1dGlvbkNvbnRleHQsICJBZGRlZCBU
YXJnZXQgc2hvdWxkIGhhdmUgYW4gRXhlY3V0aW9uQ29udGV4dC4iKTsKLSAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdE51bGwodGFyZ2V0LlJ1bnRpbWVBZ2VudCwgIkFkZGVk
IFRhcmdldCBzaG91bGQgaGF2ZSBhIFJ1bnRpbWVBZ2VudC4iKTsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVxdWFsKHRhcmdldC5SdW50aW1lQWdlbnQsIFJ1bnRpbWVB
Z2VudCwgIkFkZGVkIFRhcmdldCBSdW50aW1lQWdlbnQgc2hvdWxkIG5vdCBiZSB0aGUgZ2xvYmFs
IFJ1bnRpbWVBZ2VudC4iKTsKLSAgICAgICAgICAgICAgICBkdW1wVGFyZ2V0cygpOwotICAgICAg
ICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgIH0pOworICAgICAgICAgICAgbGV0IGV2
ZW50ID0gYXdhaXQgV0kudGFyZ2V0TWFuYWdlci5hd2FpdEV2ZW50KFdJLlRhcmdldE1hbmFnZXIu
RXZlbnQuVGFyZ2V0QWRkZWQpOworICAgICAgICAgICAgbGV0IHRhcmdldCA9IGV2ZW50LmRhdGEu
dGFyZ2V0OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQodGFyZ2V0IGluc3RhbmNl
b2YgV0kuVGFyZ2V0KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwodGFy
Z2V0LnR5cGUsIFdJLlRhcmdldC5UeXBlLldvcmtlciwgIkFkZGVkIFRhcmdldCBzaG91bGQgaGF2
ZSBXb3JrZXIgdHlwZS4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90TnVs
bCh0YXJnZXQuZXhlY3V0aW9uQ29udGV4dCwgIkFkZGVkIFRhcmdldCBzaG91bGQgaGF2ZSBhbiBF
eGVjdXRpb25Db250ZXh0LiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RO
dWxsKHRhcmdldC5SdW50aW1lQWdlbnQsICJBZGRlZCBUYXJnZXQgc2hvdWxkIGhhdmUgYSBSdW50
aW1lQWdlbnQuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdEVxdWFsKHRh
cmdldC5SdW50aW1lQWdlbnQsIFJ1bnRpbWVBZ2VudCwgIkFkZGVkIFRhcmdldCBSdW50aW1lQWdl
bnQgc2hvdWxkIG5vdCBiZSB0aGUgZ2xvYmFsIFJ1bnRpbWVBZ2VudC4iKTsKKyAgICAgICAgICAg
IGR1bXBUYXJnZXRzKCk7CiAgICAgICAgIH0KICAgICB9KTsKIAogICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKICAgICAgICAgbmFtZTogIlRhcmdldE1hbmFnZXIuV29ya2VyVGFyZ2V0LlJlbW92ZSIs
CiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgYSBXb3JrZXIgc2hvdWxkIGNyZWF0ZSBh
IG5ldyBXb3JrZXIgVGFyZ2V0LiIsCi0gICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Cisg
ICAgICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKCJ0ZXJtaW5hdGVXb3JrZXIoKSIpOwotICAgICAgICAgICAgV0kudGFyZ2V0TWFuYWdl
ci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5UYXJnZXRNYW5hZ2VyLkV2ZW50LlRhcmdldFJl
bW92ZWQsIChldmVudCkgPT4gewotICAgICAgICAgICAgICAgIGxldCB0YXJnZXQgPSBldmVudC5k
YXRhLnRhcmdldDsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCh0YXJnZXQg
aW5zdGFuY2VvZiBXSS5UYXJnZXQpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwodGFyZ2V0LnR5cGUsIFdJLlRhcmdldC5UeXBlLldvcmtlciwgIlJlbW92ZWQgVGFy
Z2V0IHNob3VsZCBoYXZlIFdvcmtlciB0eXBlLiIpOwotICAgICAgICAgICAgICAgIGR1bXBUYXJn
ZXRzKCk7Ci0gICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICBsZXQgZXZlbnQgPSBhd2FpdCBXSS50YXJnZXRNYW5hZ2VyLmF3YWl0RXZlbnQoV0ku
VGFyZ2V0TWFuYWdlci5FdmVudC5UYXJnZXRSZW1vdmVkKTsKKyAgICAgICAgICAgIGxldCB0YXJn
ZXQgPSBldmVudC5kYXRhLnRhcmdldDsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KHRhcmdldCBpbnN0YW5jZW9mIFdJLlRhcmdldCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVxdWFsKHRhcmdldC50eXBlLCBXSS5UYXJnZXQuVHlwZS5Xb3JrZXIsICJSZW1vdmVk
IFRhcmdldCBzaG91bGQgaGF2ZSBXb3JrZXIgdHlwZS4iKTsKKyAgICAgICAgICAgIGR1bXBUYXJn
ZXRzKCk7CiAgICAgICAgIH0KICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0U3VpdGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3RTdWl0ZS5qcwppbmRleCAxMDdjYzM0YWFlYS4u
M2M5MmNhMTk0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Rlc3QvVGVzdFN1aXRlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1Rlc3QvVGVzdFN1aXRlLmpzCkBAIC0xNTAsNiArMTUwLDggQEAgQXN5bmNUZXN0U3Vp
dGUgPSBjbGFzcyBBc3luY1Rlc3RTdWl0ZSBleHRlbmRzIFRlc3RTdWl0ZQogICAgICAgICAgICAg
ICAgIHByaW9yTG9nQ291bnQgPSB0aGlzLl9oYXJuZXNzLmxvZ0NvdW50OwogICAgICAgICAgICAg
ICAgIHRoaXMuX2hhcm5lc3MubG9nKGAtLSBSdW5uaW5nIHRlc3QgY2FzZTogJHt0ZXN0Y2FzZS5u
YW1lfWApOwogICAgICAgICAgICAgICAgIHRoaXMucnVuQ291bnQrKzsKKyAgICAgICAgICAgICAg
ICBpZiAodGVzdGNhc2UudGVzdC50b1N0cmluZygpLnN0YXJ0c1dpdGgoImFzeW5jICIpKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gdGVzdGNhc2UudGVzdCgpOwogICAgICAgICAgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZSh0ZXN0Y2FzZS50ZXN0KTsKICAgICAgICAgICAgIH0pOwogCg==
</data>
<flag name="review"
          id="344102"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324490</attachid>
            <date>2017-10-20 23:16:54 -0700</date>
            <delta_ts>2017-10-20 23:52:50 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>async-3.patch</filename>
            <type>text/plain</type>
            <size>27421</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyOTkwYWY5MjA5ZS4uOTRlNGRiYThlNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MyBAQAor
MjAxNy0xMC0yMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFN1cHBvcnQgYGFzeW5jIHRlc3QoKSB7IC4uLiB9YCBpbiBJbnNw
ZWN0b3IgVGVzdCBTdWl0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3ODYxNAorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKwor
ICAgICAgICBBZGQgdGhlIGFiaWxpdHkgdG8gaGF2ZSB0ZXN0IGZ1bmN0aW9ucyBiZSBhc3luYyBm
dW5jdGlvbnMuIEEgc3VjY2Vzc2Z1bAorICAgICAgICBhc3luYyB0ZXN0IGZ1bmN0aW9uIGp1c3Qg
bmVlZHMgdG8gY29tcGxldGUgZXZhbHVhdGlvbi4gVG8gaW5kaWNhdGUKKyAgICAgICAgZmFpbHVy
ZSBpdCBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uLgorCisgICAgICAgICAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7CisgICAgICAgICAgICAgICAgbmFtZTogIkV4Y2VwdGlvbk9mTm9ybWFsIiwKKyAg
ICAgICAgICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdFRoYXQoLi4uKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
KTsKKworICAgICAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgICAgIG5h
bWU6ICJFeGFtcGxlT2ZSZWplY3Rpb24iLAorICAgICAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7
CisgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGF3YWl0IFNvbWVBZ2VudC5tZXRob2Qo
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmVycm9yKQorICAgICAgICAgICAgICAg
ICAgICAgICAgdGhyb3cgIkV4Y2VwdGlvbiI7CisgICAgICAgICAgICAgICAgICAgIC4uLgorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAgICAgIFVzaW5nIGFzeW5jIHRl
c3QgZnVuY3Rpb25zIGhhcyB0aGUgYWRkZWQgYmVuZWZpdCB0aGF0IGEgcnVudGltZSBleGNlcHRp
b24KKyAgICAgICAgaW5zaWRlIG9mIGFzeW5jaHJvbm91cyB0ZXN0IGNvZGUgd2lsbCByZWplY3Qg
dGhlIGN1cnJlbnQgdGVzdCBjYXNlIGluc3RlYWQKKyAgICAgICAgb2YgdGltaW5nIG91dC4gRm9y
IGV4YW1wbGUuLi4KKyAgICAgICAgCisgICAgICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Cisg
ICAgICAgICAgICAgICAgbmFtZTogIkV4YW1wbGVPZlJlamVjdGlvblRocm91Z2hSdW50aW1lRXhj
ZXB0aW9uIiwKKyAgICAgICAgICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgICAg
ICAgICBsZXQgYXJyID0gW107CisgICAgICAgICAgICAgICAgICAgIGFyci50aGlzLmRvZXMubm90
LmV4aXN0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAKKyAg
ICAgICAgLi4uIHNob3VsZCB3aWxsIGxlYWQgdG8gYSBmYWlsdXJlIGluc3RlYWQgb2YgYSB0aW1l
b3V0LgorICAgICAgICAKKyAgICAgICAgVGhpcyBzaG91bGQgYWxsb3cgdXMgdG8gc3RydWN0dXJl
IHNvbWUgY29tbW9uIHRlc3RzIG1vcmUgbmF0dXJhbGx5LCBsaWtlIHNvOgorCisgICAgICAgICAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICAgICAgbmFtZTogIkV4YW1wbGVPZk5v
cm1hbEFzeW5jVGVzdCIsCisgICAgICAgICAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgLi4uYCk7CisgICAgICAg
ICAgICAgICAgICAgIGxldCBldmVudCA9IGF3YWl0IFdJLk1hbmFnZXIuYXdhaXRFdmVudCguLi4p
OworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBldmVudC5kYXRhLnJlc291cmNl
OworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKC4uLik7Cisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoLi4uKTsKKyAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbCguLi4pOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVz
dHMvYXN5bmMtdGVzdC1zdWl0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvYXN5bmMtdGVzdC1zdWl0ZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci91bml0
LXRlc3RzL3RhcmdldC1tYW5hZ2VyLmh0bWw6CisKIDIwMTctMTAtMjAgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9h
cmQvZHJhZy1kcm9wLWh0bWwtY3Jvc3Mtb3JpZ2luLWlmcmFtZS1pbi1zYW1lLW9yaWdpbi5odG1s
IGlzIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9h
c3luYy10ZXN0LXN1aXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0
LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUtZXhwZWN0ZWQudHh0CmluZGV4IGRmYTEwMjBmZjY2Li5k
NmZmM2NkMDJmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMv
YXN5bmMtdGVzdC1zdWl0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3VuaXQtdGVzdHMvYXN5bmMtdGVzdC1zdWl0ZS1leHBlY3RlZC50eHQKQEAgLTgzLDMgKzgzLDI1
IEBAIFBBU1M6IFByb21pc2UgZnJvbSB0ZWFyZG93bkV4Y2VwdGlvblRlc3RTdWl0ZS5ydW5UZXN0
Q2FzZXMoKSBzaG91bGQgcmVqZWN0LgogU3RhY2sgVHJhY2U6IChzdXBwcmVzc2VkKQogUEFTUzog
UHJvbWlzZSBmcm9tIHRlYXJkb3duRmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91
bGQgcmVqZWN0LgogCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFzeW5jVGVzdFN1aXRlLkFzeW5j
RnVuY3Rpb25TdWNjZXNzCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQXN5bmNGdW5jdGlvblN1Y2Nl
c3MKK1BBU1M6IFByb21pc2UgZnJvbSBhc3luY0Z1bmN0aW9uU3VjY2Vzc1Rlc3RTdWl0ZS5ydW5U
ZXN0Q2FzZXMoKSBzaG91bGQgc3VjY2VlZC4KK1BBU1M6IFByb21pc2UgZGlkIGV2YWx1YXRlIHRo
ZSBhc3luYyB0ZXN0IGZ1bmN0aW9uLgorUEFTUzogUmVzb2x2ZWQgdmFsdWUgc2hvdWxkIGJlIDQy
LgorCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFzeW5jVGVzdFN1aXRlLkFzeW5jRnVuY3Rpb25F
eHBsaWNpdEZhaWx1cmUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBBc3luY0Z1bmN0aW9uRmFpbHVy
ZQorISEgRVhDRVBUSU9OOiBBc3luY0Z1bmN0aW9uRmFpbHVyZSBFeGNlcHRpb24gTWVzc2FnZQor
U3RhY2sgVHJhY2U6IChzdXBwcmVzc2VkKQorUEFTUzogUHJvbWlzZSBmcm9tIGFzeW5jRnVuY3Rp
b25FeHBsaWNpdEZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4K
K1BBU1M6IFByb21pc2UgZGlkIGV2YWx1YXRlIHRoZSBhc3luYyB0ZXN0IGZ1bmN0aW9uLgorUEFT
UzogUmVqZWN0ZWQgdmFsdWUgc2hvdWxkIGJlIHRocm93biBleGNlcHRpb24uCisKKz09IFJ1bm5p
bmcgdGVzdCBzdWl0ZTogQXN5bmNUZXN0U3VpdGUuQXN5bmNGdW5jdGlvblJ1bnRpbWVGYWlsdXJl
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogQXN5bmNGdW5jdGlvbkZhaWx1cmUKKyEhIEVYQ0VQVElP
TjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJyh7fSkueC54JykKK1N0
YWNrIFRyYWNlOiAoc3VwcHJlc3NlZCkKK1BBU1M6IFByb21pc2UgZnJvbSBhc3luY0Z1bmN0aW9u
UnVudGltZUZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4KK1BB
U1M6IFByb21pc2UgZGlkIGV2YWx1YXRlIHRoZSBhc3luYyB0ZXN0IGZ1bmN0aW9uLgorUEFTUzog
UmVqZWN0ZWQgdmFsdWUgc2hvdWxkIGJlIGEgcnVudGltZSBleGNlcHRpb24uCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUuaHRt
bAppbmRleCAwMGY5ZWMzNjI0ZS4uODEzZTM5MzUwNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci91bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hc3luYy10ZXN0LXN1aXRlLmh0bWwKQEAgLTksNzEg
KzksNzEgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICB0cnkgewogICAgICAgICBsZXQgcmVzdWx0
ID0gbmV3IEFzeW5jVGVzdFN1aXRlKHRoaXMpOwotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJG
QUlMOiBpbnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRlIHJlcXVpcmVzIG5hbWUgYXJndW1lbnQu
Iik7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJpbnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1
aXRlIHJlcXVpcmVzIG5hbWUgYXJndW1lbnQuIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAg
ICBQcm90b2NvbFRlc3QubG9nKCJQQVNTOiBpbnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRlIHJl
cXVpcmVzIG5hbWUgYXJndW1lbnQuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJpbnN0
YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRlIHJlcXVpcmVzIG5hbWUgYXJndW1lbnQuIik7CiAgICAg
fQogCiAgICAgdHJ5IHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBc3luY1Rlc3RTdWl0ZSh0
aGlzLCB7fSk7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IGluc3RhbnRpYXRpbmcg
QXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgc3RyaW5nIG5hbWUgYXJndW1lbnQuIik7CisgICAgICAg
IFByb3RvY29sVGVzdC5mYWlsKCJpbnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRlIHJlcXVpcmVz
IHN0cmluZyBuYW1lIGFyZ3VtZW50LiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgUHJv
dG9jb2xUZXN0LmxvZygiUEFTUzogaW5zdGFudGlhdGluZyBBc3luY1Rlc3RTdWl0ZSByZXF1aXJl
cyBzdHJpbmcgbmFtZSBhcmd1bWVudC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoImlu
c3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgc3RyaW5nIG5hbWUgYXJndW1lbnQu
Iik7CiAgICAgfQogCiAgICAgdHJ5IHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBc3luY1Rl
c3RTdWl0ZSh0aGlzLCAiICAgICAgIik7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6
IGluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgbm9uLXdoaXRlc3BhY2UgbmFt
ZSBhcmd1bWVudC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoImluc3RhbnRpYXRpbmcg
QXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgbm9uLXdoaXRlc3BhY2UgbmFtZSBhcmd1bWVudC4iKTsK
ICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6IGluc3Rh
bnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgbm9uLXdoaXRlc3BhY2UgbmFtZSBhcmd1
bWVudC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoImluc3RhbnRpYXRpbmcgQXN5bmNU
ZXN0U3VpdGUgcmVxdWlyZXMgbm9uLXdoaXRlc3BhY2UgbmFtZSBhcmd1bWVudC4iKTsKICAgICB9
CiAKICAgICB0cnkgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFzeW5jVGVzdFN1aXRlKCJz
b21ldGhpbmciLCB7fSk7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IGluc3RhbnRp
YXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgdGVzdCBoYXJuZXNzIGFyZ3VtZW50LiIpOwor
ICAgICAgICBQcm90b2NvbFRlc3QuZmFpbCgiaW5zdGFudGlhdGluZyBBc3luY1Rlc3RTdWl0ZSBy
ZXF1aXJlcyB0ZXN0IGhhcm5lc3MgYXJndW1lbnQuIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAg
ICAgICBQcm90b2NvbFRlc3QubG9nKCJQQVNTOiBpbnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRl
IHJlcXVpcmVzIHRlc3QgaGFybmVzcyBhcmd1bWVudC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0
LnBhc3MoImluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgdGVzdCBoYXJuZXNz
IGFyZ3VtZW50LiIpOwogICAgIH0KIAogICAgIGxldCBiYWRBcmdzU3VpdGUgPSBQcm90b2NvbFRl
c3QuY3JlYXRlQXN5bmNTdWl0ZSgiZHVtbXkiKTsKICAgICB0cnkgewogICAgICAgICBiYWRBcmdz
U3VpdGUuYWRkVGVzdENhc2UoKTsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogc2hv
dWxkIG5vdCBiZSBhYmxlIHRvIGFkZCBlbXB0eSB0ZXN0IGNhc2UuIik7CisgICAgICAgIFByb3Rv
Y29sVGVzdC5mYWlsKCJzaG91bGQgbm90IGJlIGFibGUgdG8gYWRkIGVtcHR5IHRlc3QgY2FzZS4i
KTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6IHNo
b3VsZCBub3QgYmUgYWJsZSB0byBhZGQgZW1wdHkgdGVzdCBjYXNlLiIpOworICAgICAgICBQcm90
b2NvbFRlc3QucGFzcygic2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFkZCBlbXB0eSB0ZXN0IGNhc2Uu
Iik7CiAgICAgfQogICAgIHRyeSB7CiAgICAgICAgIGJhZEFyZ3NTdWl0ZS5hZGRUZXN0Q2FzZSgi
c3RyaW5nIik7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUg
YWJsZSB0byBhZGQgbm9uLW9iamVjdCB0ZXN0IGNhc2UuIik7CisgICAgICAgIFByb3RvY29sVGVz
dC5mYWlsKCJzaG91bGQgbm90IGJlIGFibGUgdG8gYWRkIG5vbi1vYmplY3QgdGVzdCBjYXNlLiIp
OwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzogc2hv
dWxkIG5vdCBiZSBhYmxlIHRvIGFkZCBub24tb2JqZWN0IHRlc3QgY2FzZS4iKTsKKyAgICAgICAg
UHJvdG9jb2xUZXN0LnBhc3MoInNob3VsZCBub3QgYmUgYWJsZSB0byBhZGQgbm9uLW9iamVjdCB0
ZXN0IGNhc2UuIik7CiAgICAgfQogICAgIHRyeSB7CiAgICAgICAgIGJhZEFyZ3NTdWl0ZS5hZGRU
ZXN0Q2FzZSh7CiAgICAgICAgICAgICBuYW1lOiB7fSwKICAgICAgICAgICAgIHRlc3QoKSB7fSwK
ICAgICAgICAgfSk7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IHRlc3QgY2FzZSBz
aG91bGQgcmVxdWlyZSBzdHJpbmcgbmFtZS4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwo
InRlc3QgY2FzZSBzaG91bGQgcmVxdWlyZSBzdHJpbmcgbmFtZS4iKTsKICAgICB9IGNhdGNoIChl
KSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6IHRlc3QgY2FzZSBzaG91bGQgcmVx
dWlyZSBzdHJpbmcgbmFtZS4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoInRlc3QgY2Fz
ZSBzaG91bGQgcmVxdWlyZSBzdHJpbmcgbmFtZS4iKTsKICAgICB9CiAgICAgdHJ5IHsKICAgICAg
ICAgYmFkQXJnc1N1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgICAgIG5hbWU6ICIgICAgICAg
ICIsCiAgICAgICAgICAgICB0ZXN0KCkge30sCiAgICAgICAgIH0pOwotICAgICAgICBQcm90b2Nv
bFRlc3QubG9nKCJGQUlMOiB0ZXN0IGNhc2Ugc2hvdWxkIHJlcXVpcmUgbm9uLXdoaXRlc3BhY2Ug
bmFtZS4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoInRlc3QgY2FzZSBzaG91bGQgcmVx
dWlyZSBub24td2hpdGVzcGFjZSBuYW1lLiIpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
UHJvdG9jb2xUZXN0LmxvZygiUEFTUzogdGVzdCBjYXNlIHNob3VsZCByZXF1aXJlIG5vbi13aGl0
ZXNwYWNlIG5hbWUuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJ0ZXN0IGNhc2Ugc2hv
dWxkIHJlcXVpcmUgbm9uLXdoaXRlc3BhY2UgbmFtZS4iKTsKICAgICB9CiAgICAgdHJ5IHsKICAg
ICAgICAgYmFkQXJnc1N1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgICAgIG5hbWU6ICJmb28i
LAogICAgICAgICAgICAgdGVzdDogbnVsbCwKICAgICAgICAgfSk7Ci0gICAgICAgIFByb3RvY29s
VGVzdC5sb2coIkZBSUw6IHRlc3QgY2FzZSBzaG91bGQgcmVxdWlyZSB0ZXN0IGZ1bmN0aW9uLiIp
OworICAgICAgICBQcm90b2NvbFRlc3QuZmFpbCgidGVzdCBjYXNlIHNob3VsZCByZXF1aXJlIHRl
c3QgZnVuY3Rpb24uIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBQcm90b2NvbFRlc3Qu
bG9nKCJQQVNTOiB0ZXN0IGNhc2Ugc2hvdWxkIHJlcXVpcmUgdGVzdCBmdW5jdGlvbi4iKTsKKyAg
ICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoInRlc3QgY2FzZSBzaG91bGQgcmVxdWlyZSB0ZXN0IGZ1
bmN0aW9uLiIpOwogICAgIH0KICAgICB0cnkgewogICAgICAgICBiYWRBcmdzU3VpdGUuYWRkVGVz
dENhc2UoewpAQCAtODEsOSArODEsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHRl
c3QoKSB7fSwKICAgICAgICAgICAgIHNldHVwOiAiYXN0ZCIKICAgICAgICAgfSk7Ci0gICAgICAg
IFByb3RvY29sVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5v
bi1GdW5jdGlvbiBgc2V0dXBgIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZh
aWwoInNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgc2V0dXBgIHBh
cmFtZXRlci4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2co
IlBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgc2V0dXBg
IHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoInNob3VsZCBub3QgYmUg
YWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgc2V0dXBgIHBhcmFtZXRlci4iKTsKICAgICB9
CiAgICAgdHJ5IHsKICAgICAgICAgYmFkQXJnc1N1aXRlLmFkZFRlc3RDYXNlKHsKQEAgLTkxLDkg
KzkxLDkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB0ZXN0KCkge30sCiAgICAgICAg
ICAgICBzZXR1cDogMTIzCiAgICAgICAgIH0pOwotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJG
QUlMOiBzaG91bGQgbm90IGJlIGFibGUgdG8gc3BlY2lmeSBub24tRnVuY3Rpb24gYHNldHVwYCBw
YXJhbWV0ZXIuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJzaG91bGQgbm90IGJlIGFi
bGUgdG8gc3BlY2lmeSBub24tRnVuY3Rpb24gYHNldHVwYCBwYXJhbWV0ZXIuIik7CiAgICAgfSBj
YXRjaCAoZSkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQQVNTOiBzaG91bGQgbm90IGJl
IGFibGUgdG8gc3BlY2lmeSBub24tRnVuY3Rpb24gYHNldHVwYCBwYXJhbWV0ZXIuIik7CisgICAg
ICAgIFByb3RvY29sVGVzdC5wYXNzKCJzaG91bGQgbm90IGJlIGFibGUgdG8gc3BlY2lmeSBub24t
RnVuY3Rpb24gYHNldHVwYCBwYXJhbWV0ZXIuIik7CiAgICAgfQogICAgIHRyeSB7CiAgICAgICAg
IGJhZEFyZ3NTdWl0ZS5hZGRUZXN0Q2FzZSh7CkBAIC0xMDEsOSArMTAxLDkgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgICAgICAgICB0ZXN0KCkge30sCiAgICAgICAgICAgICBzZXR1cDoge30KICAg
ICAgICAgfSk7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUg
YWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgc2V0dXBgIHBhcmFtZXRlci4iKTsKKyAgICAg
ICAgUHJvdG9jb2xUZXN0LmZhaWwoInNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1G
dW5jdGlvbiBgc2V0dXBgIHBhcmFtZXRlci4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
IFByb3RvY29sVGVzdC5sb2coIlBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5v
bi1GdW5jdGlvbiBgc2V0dXBgIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBh
c3MoInNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgc2V0dXBgIHBh
cmFtZXRlci4iKTsKICAgICB9CiAgICAgdHJ5IHsKICAgICAgICAgYmFkQXJnc1N1aXRlLmFkZFRl
c3RDYXNlKHsKQEAgLTExMSw5ICsxMTEsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAg
IHRlc3QoKSB7fSwKICAgICAgICAgICAgIHRlYXJkb3duOiAiYXN0ZCIKICAgICAgICAgfSk7Ci0g
ICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVj
aWZ5IG5vbi1GdW5jdGlvbiBgdGVhcmRvd25gIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9j
b2xUZXN0LmZhaWwoInNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBg
dGVhcmRvd25gIHBhcmFtZXRlci4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3Rv
Y29sVGVzdC5sb2coIlBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5j
dGlvbiBgdGVhcmRvd25gIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3Mo
InNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgdGVhcmRvd25gIHBh
cmFtZXRlci4iKTsKICAgICB9CiAgICAgdHJ5IHsKICAgICAgICAgYmFkQXJnc1N1aXRlLmFkZFRl
c3RDYXNlKHsKQEAgLTEyMSw5ICsxMjEsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAg
IHRlc3QoKSB7fSwKICAgICAgICAgICAgIHRlYXJkb3duOiAxMjMKICAgICAgICAgfSk7Ci0gICAg
ICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5
IG5vbi1GdW5jdGlvbiBgdGVhcmRvd25gIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xU
ZXN0LmZhaWwoInNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgdGVh
cmRvd25gIHBhcmFtZXRlci4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29s
VGVzdC5sb2coIlBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlv
biBgdGVhcmRvd25gIHBhcmFtZXRlci4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoInNo
b3VsZCBub3QgYmUgYWJsZSB0byBzcGVjaWZ5IG5vbi1GdW5jdGlvbiBgdGVhcmRvd25gIHBhcmFt
ZXRlci4iKTsKICAgICB9CiAgICAgdHJ5IHsKICAgICAgICAgYmFkQXJnc1N1aXRlLmFkZFRlc3RD
YXNlKHsKQEAgLTEzMSwxNyArMTMxLDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAg
dGVzdCgpIHt9LAogICAgICAgICAgICAgdGVhcmRvd246IHt9CiAgICAgICAgIH0pOwotICAgICAg
ICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBzaG91bGQgbm90IGJlIGFibGUgdG8gc3BlY2lmeSBu
b24tRnVuY3Rpb24gYHRlYXJkb3duYCBwYXJhbWV0ZXIuIik7CisgICAgICAgIFByb3RvY29sVGVz
dC5mYWlsKCJzaG91bGQgbm90IGJlIGFibGUgdG8gc3BlY2lmeSBub24tRnVuY3Rpb24gYHRlYXJk
b3duYCBwYXJhbWV0ZXIuIik7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBQcm90b2NvbFRl
c3QubG9nKCJQQVNTOiBzaG91bGQgbm90IGJlIGFibGUgdG8gc3BlY2lmeSBub24tRnVuY3Rpb24g
YHRlYXJkb3duYCBwYXJhbWV0ZXIuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJzaG91
bGQgbm90IGJlIGFibGUgdG8gc3BlY2lmeSBub24tRnVuY3Rpb24gYHRlYXJkb3duYCBwYXJhbWV0
ZXIuIik7CiAgICAgfQogCiAgICAgbGV0IHJ1bkVtcHR5U3VpdGUgPSBQcm90b2NvbFRlc3QuY3Jl
YXRlQXN5bmNTdWl0ZSgiQXN5bmNUZXN0U3VpdGUuUnVuRW1wdHlTdWl0ZSIpOwogICAgIHRyeSB7
CiAgICAgICAgIHJ1bkVtcHR5U3VpdGUucnVuVGVzdENhc2VzKCk7Ci0gICAgICAgIFByb3RvY29s
VGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0byBydW4gZW1wdHkgdGVzdCBzdWl0
ZS4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoInNob3VsZCBub3QgYmUgYWJsZSB0byBy
dW4gZW1wdHkgdGVzdCBzdWl0ZS4iKTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3Rv
Y29sVGVzdC5sb2coIlBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBydW4gZW1wdHkgdGVzdCBz
dWl0ZS4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoInNob3VsZCBub3QgYmUgYWJsZSB0
byBydW4gZW1wdHkgdGVzdCBzdWl0ZS4iKTsKICAgICB9CiAKICAgICBsZXQgcnVuVHdpY2VTdWl0
ZSA9IFByb3RvY29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBc3luY1Rlc3RTdWl0ZS5SdW5Ud2lj
ZVN1aXRlIik7CkBAIC0xNTYsOSArMTU2LDkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIC8v
IFRlc3QgY2FzZXMgd29uJ3QgcnVuIGluIHRoaXMgZXZlbnQgbG9vcDsgdGhpcyBjYWxsIHNob3Vs
ZCBzdGlsbCB0aHJvdy4KICAgICAgICAgLy8gTGF0ZXIgdGVzdHMgYXJlIGNoYWluZWQgdG8gdGhp
cyBzdWl0ZSB0byBhdm9pZCBub25kZXRlcm1pbmlzbS4KICAgICAgICAgcnVuVHdpY2VTdWl0ZS5y
dW5UZXN0Q2FzZXMoKTsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDogc2hvdWxkIG5v
dCBiZSBhYmxlIHRvIHJ1biBhIHRlc3Qgc3VpdGUgdHdpY2UuIik7CisgICAgICAgIFByb3RvY29s
VGVzdC5mYWlsKCJzaG91bGQgbm90IGJlIGFibGUgdG8gcnVuIGEgdGVzdCBzdWl0ZSB0d2ljZS4i
KTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6IHNo
b3VsZCBub3QgYmUgYWJsZSB0byBydW4gYSB0ZXN0IHN1aXRlIHR3aWNlLiIpOworICAgICAgICBQ
cm90b2NvbFRlc3QucGFzcygic2hvdWxkIG5vdCBiZSBhYmxlIHRvIHJ1biBhIHRlc3Qgc3VpdGUg
dHdpY2UuIik7CiAgICAgfQogCiAgICAgbGV0IHJlamVjdFRva2VuID0geyJ0b2tlbiI6IDY2Nn07
CkBAIC0yMDksMTAgKzIwOSwxMCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgcmV0dXJuIHBy
b21pc2U7CiAgICAgfSk7CiAgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oZnVuY3Rpb24gcmVzb2x2
ZWQoKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IFByb21pc2UgZnJvbSBzZXF1
ZW50aWFsRXhlY3V0aW9uU3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdCB3aGVuIGEg
dGVzdCBjYXNlIGZhaWxzLiIpOworICAgICAgICBQcm90b2NvbFRlc3QuZmFpbCgiUHJvbWlzZSBm
cm9tIHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0
IHdoZW4gYSB0ZXN0IGNhc2UgZmFpbHMuIik7CiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29s
dmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgogICAgIH0sIGZ1bmN0aW9uIHJlamVjdGVkKGUp
IHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzogUHJvbWlzZSBmcm9tIHNlcXVlbnRp
YWxFeGVjdXRpb25TdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0IHdoZW4gYSB0ZXN0
IGNhc2UgZmFpbHMuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJQcm9taXNlIGZyb20g
c2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3Qgd2hl
biBhIHRlc3QgY2FzZSBmYWlscy4iKTsKICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQo
ZSA9PT0gdGhyb3duRXJyb3IsICJQcm9taXNlIGZyb20gc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRl
LnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3Qgd2l0aG91dCBhbHRlcmluZyBpdHMgcmVzdWx0
IHZhbHVlLiIpOwogCiAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KHNlcXVlbnRpYWxF
eGVjdXRpb25TdWl0ZS5ydW5Db3VudCA9PT0gNCwgInNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZSBz
aG91bGQgaGF2ZSBleGVjdXRlZCBmb3VyIHRlc3RzLiIpOwpAQCAtMjI1LDEwICsyMjUsMTAgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oKCkgPT4gewogICAgICAg
ICByZXR1cm4gYWJvcnRPbkZhaWx1cmVTdWl0ZS5ydW5UZXN0Q2FzZXMoKTsKICAgICB9KS50aGVu
KGZ1bmN0aW9uIHJlc29sdmVkKCkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJGQUlMOiBQ
cm9taXNlIGZyb20gYWJvcnRPbkZhaWx1cmVTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVq
ZWN0IHdoZW4gYSB0ZXN0IGNhc2UgZmFpbHMuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWls
KCJQcm9taXNlIGZyb20gYWJvcnRPbkZhaWx1cmVTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQg
cmVqZWN0IHdoZW4gYSB0ZXN0IGNhc2UgZmFpbHMuIik7CiAgICAgICAgIHJldHVybiBQcm9taXNl
LnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgogICAgIH0sIGZ1bmN0aW9uIHJlamVj
dGVkKGUpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzogUHJvbWlzZSBmcm9tIGFi
b3J0T25GYWlsdXJlU3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdCB3aGVuIGEgdGVz
dCBjYXNlIGZhaWxzLiIpOworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygiUHJvbWlzZSBmcm9t
IGFib3J0T25GYWlsdXJlU3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdCB3aGVuIGEg
dGVzdCBjYXNlIGZhaWxzLiIpOwogICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdChlID09
PSByZWplY3RUb2tlbiwgIlByb21pc2UgZnJvbSBhYm9ydE9uRmFpbHVyZVN1aXRlLnJ1blRlc3RD
YXNlcygpIHNob3VsZCByZWplY3Qgd2l0aG91dCBhbHRlcmluZyBpdHMgcmVzdWx0IHZhbHVlLiIp
OwogICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdChhYm9ydE9uRmFpbHVyZVN1aXRlLnJ1
bkNvdW50ID09PSAyLCAiYWJvcnRPbkZhaWx1cmVTdWl0ZSBzaG91bGQgaGF2ZSBleGVjdXRlZCB0
d28gdGVzdHMuIik7CiAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KGFib3J0T25GYWls
dXJlU3VpdGUucGFzc0NvdW50ID09PSAxLCAiYWJvcnRPbkZhaWx1cmVTdWl0ZSBzaG91bGQgaGF2
ZSBwYXNzZWQgb25lIHRlc3QuIik7CkBAIC0yNzIsMTAgKzI3MiwxMCBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICByZXN1bHQgPSByZXN1bHQudGhlbigoKSA9PiB7CiAgICAgICAgIHJldHVybiBzZXR1
cEFuZFRlYXJkb3duVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpOwogICAgIH0pLnRoZW4oZnVuY3Rp
b24gcmVzb2x2ZWQoKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIlBBU1M6IFByb21pc2Ug
ZnJvbSBzZXR1cEFuZFRlYXJkb3duVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZXNv
bHZlLiIpOworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygiUHJvbWlzZSBmcm9tIHNldHVwQW5k
VGVhcmRvd25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlc29sdmUuIik7CiAgICAg
ICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgogICAg
IH0sIGZ1bmN0aW9uIHJlamVjdGVkKGUpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJ
TDogUHJvbWlzZSBmcm9tIHNldHVwQW5kVGVhcmRvd25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCkg
c2hvdWxkIHJlc29sdmUuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJQcm9taXNlIGZy
b20gc2V0dXBBbmRUZWFyZG93blRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVzb2x2
ZS4iKTsKICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlz
IHRlc3QuCiAgICAgfSk7CiAKQEAgLTI5NywxMCArMjk3LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgIHJlc3VsdCA9IHJlc3VsdC50aGVuKCgpID0+IHsKICAgICAgICAgcmV0dXJuIHNldHVwRXhj
ZXB0aW9uVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpOwogICAgIH0pLnRoZW4oZnVuY3Rpb24gcmVz
b2x2ZWQoKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IFByb21pc2UgZnJvbSBz
ZXR1cEV4Y2VwdGlvblRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LiIpOwor
ICAgICAgICBQcm90b2NvbFRlc3QuZmFpbCgiUHJvbWlzZSBmcm9tIHNldHVwRXhjZXB0aW9uVGVz
dFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7CiAgICAgICAgIHJldHVybiBQ
cm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgogICAgIH0sIGZ1bmN0aW9u
IHJlamVjdGVkKGUpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiUEFTUzogUHJvbWlzZSBm
cm9tIHNldHVwRXhjZXB0aW9uVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3Qu
Iik7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJQcm9taXNlIGZyb20gc2V0dXBFeGNlcHRp
b25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4iKTsKICAgICAgICAgcmV0
dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCiAgICAgfSk7CiAK
QEAgLTMyMiwxMCArMzIyLDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHJlc3VsdCA9IHJlc3Vs
dC50aGVuKCgpID0+IHsKICAgICAgICAgcmV0dXJuIHNldHVwRmFpbHVyZVRlc3RTdWl0ZS5ydW5U
ZXN0Q2FzZXMoKTsKICAgICB9KS50aGVuKGZ1bmN0aW9uIHJlc29sdmVkKCkgewotICAgICAgICBQ
cm90b2NvbFRlc3QubG9nKCJGQUlMOiBQcm9taXNlIGZyb20gc2V0dXBGYWlsdXJlVGVzdFN1aXRl
LnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5m
YWlsKCJQcm9taXNlIGZyb20gc2V0dXBGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNo
b3VsZCByZWplY3QuIik7CiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29u
dGludWUgdGhpcyB0ZXN0LgogICAgIH0sIGZ1bmN0aW9uIHJlamVjdGVkKGUpIHsKLSAgICAgICAg
UHJvdG9jb2xUZXN0LmxvZygiUEFTUzogUHJvbWlzZSBmcm9tIHNldHVwRmFpbHVyZVRlc3RTdWl0
ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LiIpOworICAgICAgICBQcm90b2NvbFRlc3Qu
cGFzcygiUHJvbWlzZSBmcm9tIHNldHVwRmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBz
aG91bGQgcmVqZWN0LiIpOwogICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENv
bnRpbnVlIHRoaXMgdGVzdC4KICAgICB9KTsKIApAQCAtMzUyLDEwICszNTIsMTAgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oKCkgPT4gewogICAgICAgICByZXR1
cm4gdGVhcmRvd25FeGNlcHRpb25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCk7CiAgICAgfSkudGhl
bihmdW5jdGlvbiByZXNvbHZlZCgpIHsKLSAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiRkFJTDog
UHJvbWlzZSBmcm9tIHRlYXJkb3duRXhjZXB0aW9uVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNo
b3VsZCByZWplY3QuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJQcm9taXNlIGZyb20g
dGVhcmRvd25FeGNlcHRpb25UZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4i
KTsKICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRl
c3QuCiAgICAgfSwgZnVuY3Rpb24gcmVqZWN0ZWQoZSkgewotICAgICAgICBQcm90b2NvbFRlc3Qu
bG9nKCJQQVNTOiBQcm9taXNlIGZyb20gdGVhcmRvd25FeGNlcHRpb25UZXN0U3VpdGUucnVuVGVz
dENhc2VzKCkgc2hvdWxkIHJlamVjdC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoIlBy
b21pc2UgZnJvbSB0ZWFyZG93bkV4Y2VwdGlvblRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91
bGQgcmVqZWN0LiIpOwogICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENvbnRp
bnVlIHRoaXMgdGVzdC4KICAgICB9KTsKIApAQCAtMzgyLDEwICszODIsODIgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oKCkgPT4gewogICAgICAgICByZXR1cm4g
dGVhcmRvd25GYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpOwogICAgIH0pLnRoZW4oZnVu
Y3Rpb24gcmVzb2x2ZWQoKSB7Ci0gICAgICAgIFByb3RvY29sVGVzdC5sb2coIkZBSUw6IFByb21p
c2UgZnJvbSB0ZWFyZG93bkZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJl
amVjdC4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmZhaWwoIlByb21pc2UgZnJvbSB0ZWFyZG93
bkZhaWx1cmVUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4iKTsKICAgICAg
ICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCiAgICAg
fSwgZnVuY3Rpb24gcmVqZWN0ZWQoZSkgewotICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJQQVNT
OiBQcm9taXNlIGZyb20gdGVhcmRvd25GYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNo
b3VsZCByZWplY3QuIik7CisgICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJQcm9taXNlIGZyb20g
dGVhcmRvd25GYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3QuIik7
CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0
LgorICAgIH0pOworCisKKyAgICBsZXQgYXN5bmNGdW5jdGlvblN1Y2Nlc3NUZXN0U3VpdGVEaWRF
dmFsdWF0ZSA9IGZhbHNlOworICAgIGxldCBhc3luY0Z1bmN0aW9uU3VjY2Vzc1Rlc3RTdWl0ZSA9
IFByb3RvY29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJBc3luY1Rlc3RTdWl0ZS5Bc3luY0Z1bmN0
aW9uU3VjY2VzcyIpOworICAgIGFzeW5jRnVuY3Rpb25TdWNjZXNzVGVzdFN1aXRlLmFkZFRlc3RD
YXNlKHsKKyAgICAgICAgbmFtZTogIkFzeW5jRnVuY3Rpb25TdWNjZXNzIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0aGF0IGFuIGFzeW5jIHN1aXRlIHdpdGggYXN5bmMgdGVzdCBmdW5j
dGlvbnMgY2FuIHN1Y2NlZWQiLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAg
YXN5bmNGdW5jdGlvblN1Y2Nlc3NUZXN0U3VpdGVEaWRFdmFsdWF0ZSA9IHRydWU7CisgICAgICAg
ICAgICByZXR1cm4gNDI7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHJlc3VsdCA9IHJlc3Vs
dC50aGVuKCgpID0+IHsKKyAgICAgICAgcmV0dXJuIGFzeW5jRnVuY3Rpb25TdWNjZXNzVGVzdFN1
aXRlLnJ1blRlc3RDYXNlcygpOworICAgIH0pLnRoZW4oZnVuY3Rpb24gcmVzb2x2ZSh4KSB7Cisg
ICAgICAgIFByb3RvY29sVGVzdC5wYXNzKCJQcm9taXNlIGZyb20gYXN5bmNGdW5jdGlvblN1Y2Nl
c3NUZXN0U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHN1Y2NlZWQuIik7CisgICAgICAgIFBy
b3RvY29sVGVzdC5leHBlY3RUaGF0KGFzeW5jRnVuY3Rpb25TdWNjZXNzVGVzdFN1aXRlRGlkRXZh
bHVhdGUsICJQcm9taXNlIGRpZCBldmFsdWF0ZSB0aGUgYXN5bmMgdGVzdCBmdW5jdGlvbi4iKTsK
KyAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKHgsIDQyLCAiUmVzb2x2ZWQgdmFsdWUg
c2hvdWxkIGJlIDQyLiIpOworICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENv
bnRpbnVlIHRoaXMgdGVzdC4KKyAgICB9LCBmdW5jdGlvbiByZWplY3RlZChlKSB7CisgICAgICAg
IFByb3RvY29sVGVzdC5mYWlsKCJQcm9taXNlIGZyb20gYXN5bmNGdW5jdGlvblN1Y2Nlc3NUZXN0
U3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHN1Y2NlZWQuIik7CisgICAgICAgIHJldHVybiBQ
cm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgorICAgIH0pOworCisKKyAg
ICBsZXQgYXN5bmNGdW5jdGlvbkV4cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZURpZEV2YWx1YXRlID0g
ZmFsc2U7CisgICAgbGV0IGFzeW5jRnVuY3Rpb25FeHBsaWNpdEZhaWx1cmVUZXN0U3VpdGUgPSBQ
cm90b2NvbFRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiQXN5bmNUZXN0U3VpdGUuQXN5bmNGdW5jdGlv
bkV4cGxpY2l0RmFpbHVyZSIpOworICAgIGFzeW5jRnVuY3Rpb25FeHBsaWNpdEZhaWx1cmVUZXN0
U3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQXN5bmNGdW5jdGlvbkZhaWx1cmUi
LAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgYW4gYXN5bmMgc3VpdGUgd2l0aCBh
c3luYyB0ZXN0IGZ1bmN0aW9ucyB0aGF0IHRocm93cyB3aWxsIHJlamVjdCIsCisgICAgICAgIGFz
eW5jIHRlc3QoKSB7CisgICAgICAgICAgICBhc3luY0Z1bmN0aW9uRXhwbGljaXRGYWlsdXJlVGVz
dFN1aXRlRGlkRXZhbHVhdGUgPSB0cnVlOworICAgICAgICAgICAgdGhyb3cgIkFzeW5jRnVuY3Rp
b25GYWlsdXJlIEV4Y2VwdGlvbiBNZXNzYWdlIjsKKyAgICAgICAgfQorICAgIH0pOworCisgICAg
cmVzdWx0ID0gcmVzdWx0LnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gYXN5bmNGdW5jdGlv
bkV4cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKTsKKyAgICB9KS50aGVuKGZ1
bmN0aW9uIHJlc29sdmUoKSB7CisgICAgICAgIFByb3RvY29sVGVzdC5mYWlsKCJQcm9taXNlIGZy
b20gYXN5bmNGdW5jdGlvbkV4cGxpY2l0RmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBz
aG91bGQgcmVqZWN0LiIpOworICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7IC8vIENv
bnRpbnVlIHRoaXMgdGVzdC4KKyAgICB9LCBmdW5jdGlvbiByZWplY3RlZChlKSB7CisgICAgICAg
IFByb3RvY29sVGVzdC5wYXNzKCJQcm9taXNlIGZyb20gYXN5bmNGdW5jdGlvbkV4cGxpY2l0RmFp
bHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0LiIpOworICAgICAgICBQ
cm90b2NvbFRlc3QuZXhwZWN0VGhhdChhc3luY0Z1bmN0aW9uRXhwbGljaXRGYWlsdXJlVGVzdFN1
aXRlRGlkRXZhbHVhdGUsICJQcm9taXNlIGRpZCBldmFsdWF0ZSB0aGUgYXN5bmMgdGVzdCBmdW5j
dGlvbi4iKTsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKGUsICJBc3luY0Z1bmN0
aW9uRmFpbHVyZSBFeGNlcHRpb24gTWVzc2FnZSIsICJSZWplY3RlZCB2YWx1ZSBzaG91bGQgYmUg
dGhyb3duIGV4Y2VwdGlvbi4iKTsKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAv
LyBDb250aW51ZSB0aGlzIHRlc3QuCisgICAgfSk7CisKKworICAgIGxldCBhc3luY0Z1bmN0aW9u
UnVudGltZUZhaWx1cmVUZXN0U3VpdGVEaWRFdmFsdWF0ZSA9IGZhbHNlOworICAgIGxldCBhc3lu
Y0Z1bmN0aW9uUnVudGltZUZhaWx1cmVUZXN0U3VpdGUgPSBQcm90b2NvbFRlc3QuY3JlYXRlQXN5
bmNTdWl0ZSgiQXN5bmNUZXN0U3VpdGUuQXN5bmNGdW5jdGlvblJ1bnRpbWVGYWlsdXJlIik7Cisg
ICAgYXN5bmNGdW5jdGlvblJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlLmFkZFRlc3RDYXNlKHsKKyAg
ICAgICAgbmFtZTogIkFzeW5jRnVuY3Rpb25GYWlsdXJlIiwKKyAgICAgICAgZGVzY3JpcHRpb246
ICJDaGVjayB0aGF0IGFuIGFzeW5jIHN1aXRlIHdpdGggYXN5bmMgdGVzdCBmdW5jdGlvbnMgdGhh
dCB0aHJvd3Mgd2l0aCBhIHJ1bnRpbWUgZXJyb3Igd2lsbCByZWplY3QiLAorICAgICAgICBhc3lu
YyB0ZXN0KCkgeworICAgICAgICAgICAgYXN5bmNGdW5jdGlvblJ1bnRpbWVGYWlsdXJlVGVzdFN1
aXRlRGlkRXZhbHVhdGUgPSB0cnVlOworICAgICAgICAgICAgKHt9KS54LngueDsKKyAgICAgICAg
fQorICAgIH0pOworCisgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oKCkgPT4geworICAgICAgICBy
ZXR1cm4gYXN5bmNGdW5jdGlvblJ1bnRpbWVGYWlsdXJlVGVzdFN1aXRlLnJ1blRlc3RDYXNlcygp
OworICAgIH0pLnRoZW4oZnVuY3Rpb24gcmVzb2x2ZSgpIHsKKyAgICAgICAgUHJvdG9jb2xUZXN0
LmZhaWwoIlByb21pc2UgZnJvbSBhc3luY0Z1bmN0aW9uUnVudGltZUZhaWx1cmVUZXN0U3VpdGUu
cnVuVGVzdENhc2VzKCkgc2hvdWxkIHJlamVjdC4iKTsKKyAgICAgICAgcmV0dXJuIFByb21pc2Uu
cmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCisgICAgfSwgZnVuY3Rpb24gcmVqZWN0
ZWQoZSkgeworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygiUHJvbWlzZSBmcm9tIGFzeW5jRnVu
Y3Rpb25SdW50aW1lRmFpbHVyZVRlc3RTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0
LiIpOworICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdChhc3luY0Z1bmN0aW9uUnVudGlt
ZUZhaWx1cmVUZXN0U3VpdGVEaWRFdmFsdWF0ZSwgIlByb21pc2UgZGlkIGV2YWx1YXRlIHRoZSBh
c3luYyB0ZXN0IGZ1bmN0aW9uLiIpOworICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdChl
IGluc3RhbmNlb2YgVHlwZUVycm9yLCAiUmVqZWN0ZWQgdmFsdWUgc2hvdWxkIGJlIGEgcnVudGlt
ZSBleGNlcHRpb24uIik7CiAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29u
dGludWUgdGhpcyB0ZXN0LgogICAgIH0pOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdW5pdC10ZXN0cy90YXJnZXQtbWFuYWdlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3VuaXQtdGVzdHMvdGFyZ2V0LW1hbmFnZXIuaHRtbAppbmRleCA0MmJjZWMxMDIxYS4uODBi
OTc3NmViODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3Rh
cmdldC1tYW5hZ2VyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMv
dGFyZ2V0LW1hbmFnZXIuaHRtbApAQCAtMzcsNDcgKzM3LDQyIEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIlRhcmdldE1hbmFnZXIuTWFp
blRhcmdldCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiV2Ugc2hvdWxkIGFsd2F5cyBoYXZlIHRo
ZSBtYWluIHRhcmdldC4iLAotICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAg
ICBhc3luYyB0ZXN0KCkgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoV0kudGFy
Z2V0cyA9PT0gV0kudGFyZ2V0TWFuYWdlci50YXJnZXRzKTsKICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwoV0kudGFyZ2V0cy5zaXplLCAxLCAiVGFyZ2V0cyBsaXN0IHNob3Vs
ZCBhbHdheXMgc3RhcnQgb3V0IHdpdGggdGhlIG1haW4gdGFyZ2V0LiIpOwogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChbLi4uV0kudGFyZ2V0c11bMF0sIFdJLm1haW5UYXJn
ZXQsICJUYXJnZXQgbGlzdCBzaG91bGQgYWx3YXlzIGNvbnRhaW4gdGhlIG1haW4gdGFyZ2V0LiIp
OwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3ROdWxsKFdJLm1haW5UYXJnZXQu
ZXhlY3V0aW9uQ29udGV4dCwgIk1haW4gdGFyZ2V0IHNob3VsZCBoYXZlIGFuIEV4ZWN1dGlvbkNv
bnRleHQuIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKFdJLm1haW5U
YXJnZXQuUnVudGltZUFnZW50LCBSdW50aW1lQWdlbnQsICJNYWluIHRhcmdldCBzaG91bGQgaGF2
ZSB0aGUgZ2xvYmFsIFJ1bnRpbWVBZ2VudC4iKTsKICAgICAgICAgICAgIGR1bXBUYXJnZXRzKCk7
Ci0gICAgICAgICAgICByZXNvbHZlKCk7CiAgICAgICAgIH0KICAgICB9KTsKIAogICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIlRhcmdldE1hbmFnZXIuV29ya2VyVGFyZ2V0
LkNyZWF0ZSIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ3JlYXRpbmcgYSBXb3JrZXIgc2hvdWxk
IGNyZWF0ZSBhIG5ldyBXb3JrZXIgVGFyZ2V0LiIsCi0gICAgICAgIHRlc3QocmVzb2x2ZSwgcmVq
ZWN0KSB7CisgICAgICAgIGFzeW5jIHRlc3QoKSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJjcmVhdGVXb3JrZXIoKSIpOwotICAgICAgICAgICAgV0kudGFyZ2V0
TWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXSS5UYXJnZXRNYW5hZ2VyLkV2ZW50LlRh
cmdldEFkZGVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0ID0gZXZl
bnQuZGF0YS50YXJnZXQ7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQodGFy
Z2V0IGluc3RhbmNlb2YgV0kuVGFyZ2V0KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVxdWFsKHRhcmdldC50eXBlLCBXSS5UYXJnZXQuVHlwZS5Xb3JrZXIsICJBZGRlZCBU
YXJnZXQgc2hvdWxkIGhhdmUgV29ya2VyIHR5cGUuIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3ROb3ROdWxsKHRhcmdldC5leGVjdXRpb25Db250ZXh0LCAiQWRkZWQgVGFy
Z2V0IHNob3VsZCBoYXZlIGFuIEV4ZWN1dGlvbkNvbnRleHQuIik7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3ROb3ROdWxsKHRhcmdldC5SdW50aW1lQWdlbnQsICJBZGRlZCBU
YXJnZXQgc2hvdWxkIGhhdmUgYSBSdW50aW1lQWdlbnQuIik7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3ROb3RFcXVhbCh0YXJnZXQuUnVudGltZUFnZW50LCBSdW50aW1lQWdl
bnQsICJBZGRlZCBUYXJnZXQgUnVudGltZUFnZW50IHNob3VsZCBub3QgYmUgdGhlIGdsb2JhbCBS
dW50aW1lQWdlbnQuIik7Ci0gICAgICAgICAgICAgICAgZHVtcFRhcmdldHMoKTsKLSAgICAgICAg
ICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGxldCBldmVu
dCA9IGF3YWl0IFdJLnRhcmdldE1hbmFnZXIuYXdhaXRFdmVudChXSS5UYXJnZXRNYW5hZ2VyLkV2
ZW50LlRhcmdldEFkZGVkKTsKKyAgICAgICAgICAgIGxldCB0YXJnZXQgPSBldmVudC5kYXRhLnRh
cmdldDsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHRhcmdldCBpbnN0YW5jZW9m
IFdJLlRhcmdldCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRhcmdl
dC50eXBlLCBXSS5UYXJnZXQuVHlwZS5Xb3JrZXIsICJBZGRlZCBUYXJnZXQgc2hvdWxkIGhhdmUg
V29ya2VyIHR5cGUuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE5vdE51bGwo
dGFyZ2V0LmV4ZWN1dGlvbkNvbnRleHQsICJBZGRlZCBUYXJnZXQgc2hvdWxkIGhhdmUgYW4gRXhl
Y3V0aW9uQ29udGV4dC4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0Tm90TnVs
bCh0YXJnZXQuUnVudGltZUFnZW50LCAiQWRkZWQgVGFyZ2V0IHNob3VsZCBoYXZlIGEgUnVudGlt
ZUFnZW50LiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROb3RFcXVhbCh0YXJn
ZXQuUnVudGltZUFnZW50LCBSdW50aW1lQWdlbnQsICJBZGRlZCBUYXJnZXQgUnVudGltZUFnZW50
IHNob3VsZCBub3QgYmUgdGhlIGdsb2JhbCBSdW50aW1lQWdlbnQuIik7CisgICAgICAgICAgICBk
dW1wVGFyZ2V0cygpOwogICAgICAgICB9CiAgICAgfSk7CiAKICAgICBzdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CiAgICAgICAgIG5hbWU6ICJUYXJnZXRNYW5hZ2VyLldvcmtlclRhcmdldC5SZW1vdmUiLAog
ICAgICAgICBkZXNjcmlwdGlvbjogIkNyZWF0aW5nIGEgV29ya2VyIHNob3VsZCBjcmVhdGUgYSBu
ZXcgV29ya2VyIFRhcmdldC4iLAotICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgICBhc3luYyB0ZXN0KCkgewogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgidGVybWluYXRlV29ya2VyKCkiKTsKLSAgICAgICAgICAgIFdJLnRhcmdldE1hbmFnZXIu
c2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV0kuVGFyZ2V0TWFuYWdlci5FdmVudC5UYXJnZXRSZW1v
dmVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0ID0gZXZlbnQuZGF0
YS50YXJnZXQ7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQodGFyZ2V0IGlu
c3RhbmNlb2YgV0kuVGFyZ2V0KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKHRhcmdldC50eXBlLCBXSS5UYXJnZXQuVHlwZS5Xb3JrZXIsICJSZW1vdmVkIFRhcmdl
dCBzaG91bGQgaGF2ZSBXb3JrZXIgdHlwZS4iKTsKLSAgICAgICAgICAgICAgICBkdW1wVGFyZ2V0
cygpOwotICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgbGV0IGV2ZW50ID0gYXdhaXQgV0kudGFyZ2V0TWFuYWdlci5hd2FpdEV2ZW50KFdJLlRh
cmdldE1hbmFnZXIuRXZlbnQuVGFyZ2V0UmVtb3ZlZCk7CisgICAgICAgICAgICBsZXQgdGFyZ2V0
ID0gZXZlbnQuZGF0YS50YXJnZXQ7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCh0
YXJnZXQgaW5zdGFuY2VvZiBXSS5UYXJnZXQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbCh0YXJnZXQudHlwZSwgV0kuVGFyZ2V0LlR5cGUuV29ya2VyLCAiUmVtb3ZlZCBU
YXJnZXQgc2hvdWxkIGhhdmUgV29ya2VyIHR5cGUuIik7CisgICAgICAgICAgICBkdW1wVGFyZ2V0
cygpOwogICAgICAgICB9CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdFN1aXRlLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0U3VpdGUuanMKaW5kZXggMTA3Y2MzNGFhZWEuLmQ2
MjYwMmY2NzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9UZXN0L1Rlc3RTdWl0ZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9UZXN0L1Rlc3RTdWl0ZS5qcwpAQCAtMTUwLDYgKzE1MCw4IEBAIEFzeW5jVGVzdFN1aXRl
ID0gY2xhc3MgQXN5bmNUZXN0U3VpdGUgZXh0ZW5kcyBUZXN0U3VpdGUKICAgICAgICAgICAgICAg
ICBwcmlvckxvZ0NvdW50ID0gdGhpcy5faGFybmVzcy5sb2dDb3VudDsKICAgICAgICAgICAgICAg
ICB0aGlzLl9oYXJuZXNzLmxvZyhgLS0gUnVubmluZyB0ZXN0IGNhc2U6ICR7dGVzdGNhc2UubmFt
ZX1gKTsKICAgICAgICAgICAgICAgICB0aGlzLnJ1bkNvdW50Kys7CisgICAgICAgICAgICAgICAg
aWYgKHRlc3RjYXNlLnRlc3RbU3ltYm9sLnRvU3RyaW5nVGFnXSA9PT0gIkFzeW5jRnVuY3Rpb24i
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGVzdGNhc2UudGVzdCgpOwogICAgICAgICAg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSh0ZXN0Y2FzZS50ZXN0KTsKICAgICAgICAgICAgIH0p
OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>