<?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>54638</bug_id>
          
          <creation_ts>2011-02-17 04:53:57 -0800</creation_ts>
          <short_desc>Web Inspector: [Chromium] inspector/debugger/dom-breakpoints.html TIMEOUTs</short_desc>
          <delta_ts>2011-02-21 03:13:12 -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 (Deprecated)</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Naganov">mnaganov</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>352759</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-02-17 04:53:57 -0800</bug_when>
    <thetext>The test was initially disabled and marked as BUGPFELDMAN. I tried running it locally (on Linux) -- it timeouts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353678</commentid>
    <comment_count>1</comment_count>
      <attachid>82982</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-18 10:59:20 -0800</bug_when>
    <thetext>Created attachment 82982
[PATCH] Proposed change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354498</commentid>
    <comment_count>2</comment_count>
      <attachid>82982</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-02-21 03:01:52 -0800</bug_when>
    <thetext>Comment on attachment 82982
[PATCH] Proposed change.

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

&gt; LayoutTests/http/tests/inspector/inspector-test.js:164
&gt; +        var wrapThis = this;

Wrong indentation.

&gt; LayoutTests/http/tests/inspector/inspector-test.js:178
&gt; +$wrap = InspectorTest.safeWrap;

What&apos;s the reason for introducing the new sytax? Please use InspectorTest.safeWrap directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354501</commentid>
    <comment_count>3</comment_count>
      <attachid>83144</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-21 03:11:15 -0800</bug_when>
    <thetext>Created attachment 83144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354504</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-21 03:13:12 -0800</bug_when>
    <thetext>Committed r79205: &lt;http://trac.webkit.org/changeset/79205&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82982</attachid>
            <date>2011-02-18 10:59:20 -0800</date>
            <delta_ts>2011-02-21 03:11:50 -0800</delta_ts>
            <desc>[PATCH] Proposed change.</desc>
            <filename>fix_test</filename>
            <type>text/plain</type>
            <size>37479</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NDI5Y2M2Li42N2ZiZjlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAKKzIwMTEtMDIt
MTggIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW0Nocm9t
aXVtXSBpbnNwZWN0b3IvZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWwgVElNRU9VVHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NjM4CisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jaGFuZ2UtaWZyYW1lLXNyYy5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanM6CisgICAgICAgIChp
bml0aWFsaXplX0RlYnVnZ2VyVGVzdC5JbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0LnN0
YXJ0VGVzdCk6CisgICAgICAgIChpbml0aWFsaXplX0RlYnVnZ2VyVGVzdC5JbnNwZWN0b3JUZXN0
LnN0YXJ0RGVidWdnZXJUZXN0KToKKyAgICAgICAgKGluaXRpYWxpemVfRGVidWdnZXJUZXN0Lklu
c3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QuZGlzYWJsZURlYnVnZ2VyKToKKyAgICAg
ICAgKGluaXRpYWxpemVfRGVidWdnZXJUZXN0Lkluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0
U3VpdGUucnVubmVyKToKKyAgICAgICAgKGluaXRpYWxpemVfRGVidWdnZXJUZXN0Lkluc3BlY3Rv
clRlc3QucnVuRGVidWdnZXJUZXN0U3VpdGUpOgorICAgICAgICAoaW5pdGlhbGl6ZV9EZWJ1Z2dl
clRlc3QuSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQpOgorICAgICAgICAoaW5pdGlhbGl6
ZV9EZWJ1Z2dlclRlc3QuSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWRBbmREdW1wU3RhY2su
c3RlcDEpOgorICAgICAgICAoaW5pdGlhbGl6ZV9EZWJ1Z2dlclRlc3QuSW5zcGVjdG9yVGVzdC53
YWl0VW50aWxQYXVzZWRBbmREdW1wU3RhY2spOgorICAgICAgICAoaW5pdGlhbGl6ZV9EZWJ1Z2dl
clRlc3QuSW5zcGVjdG9yVGVzdC53YWl0VW50aWxSZXN1bWVkKToKKyAgICAgICAgKGluaXRpYWxp
emVfRGVidWdnZXJUZXN0Lkluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKToKKyAgICAgICAg
KGluaXRpYWxpemVfRGVidWdnZXJUZXN0Lkluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSk6
CisgICAgICAgIChpbml0aWFsaXplX0RlYnVnZ2VyVGVzdC5JbnNwZWN0b3JUZXN0Ll9zaG93U2Ny
aXB0U291cmNlKToKKyAgICAgICAgKGluaXRpYWxpemVfRGVidWdnZXJUZXN0Lkluc3BlY3RvclRl
c3QuZXhwYW5kUHJvcGVydGllcy5leHBhbmROZXh0UGF0aCk6CisgICAgICAgIChpbml0aWFsaXpl
X0RlYnVnZ2VyVGVzdC5JbnNwZWN0b3JUZXN0LmV4cGFuZFByb3BlcnRpZXMpOgorICAgICAgICAq
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanM6CisgICAgICAgIChpbml0aWFs
aXplX0VsZW1lbnRUZXN0Lkluc3BlY3RvclRlc3Qubm9kZVdpdGhJZC5wcm9jZXNzQ2hpbGRyZW4p
OgorICAgICAgICAoaW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0Lm5vZGVXaXRo
SWQpOgorICAgICAgICAoaW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0LnNlbGVj
dE5vZGVXaXRoSWQubXljYWxsYmFjayk6CisgICAgICAgIChpbml0aWFsaXplX0VsZW1lbnRUZXN0
Lkluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCk6CisgICAgICAgIChpbml0aWFsaXplX0Vs
ZW1lbnRUZXN0Lkluc3BlY3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlLm15Y2FsbGJhY2spOgor
ICAgICAgICAoaW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1l
bnRzVHJlZSk6CisgICAgICAgIChpbml0aWFsaXplX0VsZW1lbnRUZXN0KToKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxp
emVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKToKKyAgICAg
ICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25z
b2xlQW5kRHVtcC5teWNhbGxiYWNrKToKKyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVz
dC5JbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlQW5kRHVtcCk6CisgICAgICAgIChpbml0
aWFsaXplX0luc3BlY3RvclRlc3QuSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZS5teWNhbGxi
YWNrKToKKyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKToKKyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQpOgorICAgICAgICAoaW5pdGlhbGl6ZV9J
bnNwZWN0b3JUZXN0Lkluc3BlY3RvclRlc3QucmVsb2FkUGFnZSk6CisgICAgICAgIChpbml0aWFs
aXplX0luc3BlY3RvclRlc3QuSW5zcGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVz
KToKKyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LnJ1blRl
c3RTdWl0ZS5ydW5uZXIpOgorICAgICAgICAoaW5pdGlhbGl6ZV9JbnNwZWN0b3JUZXN0Lkluc3Bl
Y3RvclRlc3QucnVuVGVzdFN1aXRlKToKKyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVz
dC5JbnNwZWN0b3JUZXN0LnNhZmVXcmFwKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1hc3NlcnQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LXRyYWNlLWluLWV2YWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LXRyYWNlLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RvbS1icmVha3BvaW50
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RvbS1icmVha3Bv
aW50cy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVk
aXRzLXRlc3RzLmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9FeHRlbnNpb25zQXVkaXRzVGVzdC5J
bnNwZWN0b3JUZXN0LnN0YXJ0RXh0ZW5zaW9uQXVkaXRzKToKKyAgICAgICAgKGluaXRpYWxpemVf
RXh0ZW5zaW9uc0F1ZGl0c1Rlc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVz
LWlmcmFtZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1m
cm9tLWpzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdv
cmstcmVzb3VyY2UuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
c2NyaXB0LXRhZy0xLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LXNjcmlwdC10YWctMi5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dDoKKwogMjAxMS0wMi0xOCAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtXaW5kb3dzIDcgUmVsZWFzZSBUZXN0c10gfjI2IHRlc3RzIGZh
aWxpbmcgYWZ0ZXIgcjc4ODQ2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jaGFuZ2UtaWZyYW1lLXNyYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvY2hhbmdlLWlmcmFtZS1zcmMuaHRtbAppbmRleCA0ZmI4NzY2Li5iMmVlOGVlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jaGFuZ2UtaWZyYW1l
LXNyYy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NoYW5nZS1p
ZnJhbWUtc3JjLmh0bWwKQEAgLTIxLDcgKzIxLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgZnVu
Y3Rpb24gc3RlcDEobm9kZSkKICAgICB7CiAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKCJzcmMi
LCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMvaWZyYW1lLWZyb20t
ZGlmZmVyZW50LWRvbWFpbi1kYXRhLmh0bWwiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5fYWRk
U25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIs
IHN0ZXAyKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5D
b25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOwogICAgIH0KIAogICAg
IGZ1bmN0aW9uIHN0ZXAyKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci10ZXN0LmpzCmluZGV4IDYwMDQ4NDAuLmIzNDRkYTUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcwpAQCAtOCwxNiAr
OCwxNiBAQCBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0ID0gZnVuY3Rpb24oY2FsbGJh
Y2ssIHF1aWV0KQogICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuX2RlYnVnZ2Vy
RW5hYmxlZCkKICAgICAgICAgc3RhcnRUZXN0KCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLCAiZGVidWdn
ZXJXYXNFbmFibGVkIiwgc3RhcnRUZXN0KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlm
ZmVyKFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cywgImRlYnVnZ2VyV2FzRW5hYmxlZCIsIHN0
YXJ0VGVzdCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5fdG9nZ2xlRGVi
dWdnaW5nKGZhbHNlKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKQogICAgIHsK
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkRlYnVnZ2VyIHdhcyBlbmFibGVkLiIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1vZGVsLCAiX3BhdXNlZFNjcmlwdCIsIEluc3BlY3RvclRlc3QuX3BhdXNlZFNjcmlwdCwgdHJ1
ZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwsICJfcmVzdW1lZFNjcmlwdCIsIEluc3BlY3RvclRlc3QuX3Jlc3VtZWRTY3JpcHQs
IHRydWUpOwotICAgICAgICBjYWxsYmFjaygpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNu
aWZmZXIoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwsICJfcGF1c2VkU2NyaXB0IiwgSW5zcGVj
dG9yVGVzdC5fcGF1c2VkU2NyaXB0LCB0cnVlKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRT
bmlmZmVyKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLCAiX3Jlc3VtZWRTY3JpcHQiLCBJbnNw
ZWN0b3JUZXN0Ll9yZXN1bWVkU2NyaXB0LCB0cnVlKTsKKyAgICAgICAgJHdyYXAoY2FsbGJhY2sp
KCk7CiAgICAgfQogfTsKIApAQCAtMzUsNyArMzUsNyBAQCBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
RGVidWdnZXJUZXN0ID0gZnVuY3Rpb24oKQogICAgICAgICBpZiAoIXNjcmlwdHNQYW5lbC5fZGVi
dWdnZXJFbmFibGVkKQogICAgICAgICAgICAgY29tcGxldGVUZXN0KCk7CiAgICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IucGFu
ZWxzLnNjcmlwdHMsICJkZWJ1Z2dlcldhc0Rpc2FibGVkIiwgY29tcGxldGVUZXN0KTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlw
dHMsICJkZWJ1Z2dlcldhc0Rpc2FibGVkIiwgY29tcGxldGVUZXN0KTsKICAgICAgICAgICAgIHNj
cmlwdHNQYW5lbC5fdG9nZ2xlRGVidWdnaW5nKGZhbHNlKTsKICAgICAgICAgfQogICAgIH0KQEAg
LTQ3LDYgKzQ3LDIzIEBAIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dlclRlc3QgPSBmdW5j
dGlvbigpCiAgICAgfQogfTsKIAorSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RTdWl0ZSA9
IGZ1bmN0aW9uKHRlc3RTdWl0ZSkKK3sKKyAgICB2YXIgdGVzdFN1aXRlVGVzdHMgPSB0ZXN0U3Vp
dGUuc2xpY2UoKTsKKworICAgIGZ1bmN0aW9uIHJ1bm5lcigpCisgICAgeworICAgICAgICBpZiAo
IXRlc3RTdWl0ZVRlc3RzLmxlbmd0aCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZURlYnVnZ2VyVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgJHdyYXAodGVzdFN1aXRlVGVzdHMuc2hpZnQoKSkocnVubmVyLCBydW5uZXIpOworICAg
IH0KKworICAgIEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3QocnVubmVyKTsKK30KKwog
SW5zcGVjdG9yVGVzdC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQgPSBmdW5jdGlv
bihjYWxsYmFjaykKIHsKICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJzZXRU
aW1lb3V0KHRlc3RGdW5jdGlvbiwgMCkiKTsKQEAgLTU2LDE0ICs3MywzMCBAQCBJbnNwZWN0b3JU
ZXN0LnJ1blRlc3RGdW5jdGlvbkFuZFdhaXRVbnRpbFBhdXNlZCA9IGZ1bmN0aW9uKGNhbGxiYWNr
KQogCiBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQog
eworICAgIGNhbGxiYWNrID0gJHdyYXAoY2FsbGJhY2spOworCiAgICAgaWYgKEluc3BlY3RvclRl
c3QuX2NhbGxGcmFtZXMpCiAgICAgICAgIGNhbGxiYWNrKEluc3BlY3RvclRlc3QuX2NhbGxGcmFt
ZXMpOwogICAgIGVsc2UKICAgICAgICAgSW5zcGVjdG9yVGVzdC5fd2FpdFVudGlsUGF1c2VkQ2Fs
bGJhY2sgPSBjYWxsYmFjazsKIH07CiAKK0luc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkQW5k
RHVtcFN0YWNrID0gZnVuY3Rpb24oY2FsbGJhY2spCit7CisgICAgSW5zcGVjdG9yVGVzdC53YWl0
VW50aWxQYXVzZWQoc3RlcDEpOworCisgICAgZnVuY3Rpb24gc3RlcDEoY2FsbEZyYW1lcykKKyAg
ICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY2FwdHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7
CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KFdlYkluc3BlY3Rvci5wYW5lbHMuc2Ny
aXB0cy5zaWRlYmFyUGFuZXMuY2FsbHN0YWNrLmJvZHlFbGVtZW50Lmxhc3RDaGlsZC5pbm5lclRl
eHQpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbigkd3JhcChjYWxsYmFj
aykpOworICAgIH0KK307CisKIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUmVzdW1lZCA9IGZ1bmN0
aW9uKGNhbGxiYWNrKQogeworICAgIGNhbGxiYWNrID0gJHdyYXAoY2FsbGJhY2spOworCiAgICAg
aWYgKCFJbnNwZWN0b3JUZXN0Ll9jYWxsRnJhbWVzKQogICAgICAgICBjYWxsYmFjaygpOwogICAg
IGVsc2UKQEAgLTc0LDggKzEwNyw3IEBAIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uID0g
ZnVuY3Rpb24oY2FsbGJhY2spCiB7CiAgICAgaWYgKFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0
cy5wYXVzZWQpCiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5fdG9nZ2xlUGF1
c2UoKTsKLSAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGls
UmVzdW1lZChjYWxsYmFjayk7CisgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxSZXN1bWVkKGNh
bGxiYWNrKTsKIH07CiAKIEluc3BlY3RvclRlc3QuY2FwdHVyZVN0YWNrVHJhY2UgPSBmdW5jdGlv
bihjYWxsRnJhbWVzKQpAQCAtMTE4LDkgKzE1MCw5IEBAIEluc3BlY3RvclRlc3QuX3Jlc3VtZWRT
Y3JpcHQgPSBmdW5jdGlvbigpCiBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UgPSBmdW5j
dGlvbihzY3JpcHROYW1lLCBjYWxsYmFjaykKIHsKICAgICBpZiAoSW5zcGVjdG9yVGVzdC5fc2Ny
aXB0c0FyZVBhcnNlZChbc2NyaXB0TmFtZV0pKQotICAgICAgICBJbnNwZWN0b3JUZXN0Ll9zaG93
U2NyaXB0U291cmNlKHNjcmlwdE5hbWUsIGNhbGxiYWNrKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5fc2hvd1NjcmlwdFNvdXJjZShzY3JpcHROYW1lLCAkd3JhcChjYWxsYmFjaykpOwogICAgICBl
bHNlCi0gICAgICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwsICJfcGFyc2VkU2NyaXB0U291cmNlIiwgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0
U291cmNlLmJpbmQoSW5zcGVjdG9yVGVzdCwgc2NyaXB0TmFtZSwgY2FsbGJhY2spKTsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLCAi
X3BhcnNlZFNjcmlwdFNvdXJjZSIsIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZS5iaW5k
KEluc3BlY3RvclRlc3QsIHNjcmlwdE5hbWUsIGNhbGxiYWNrKSk7CiB9OwogCiBJbnNwZWN0b3JU
ZXN0Ll9zY3JpcHRzQXJlUGFyc2VkID0gZnVuY3Rpb24oc2NyaXB0cykKQEAgLTE2OSw3ICsyMDEs
NyBAQCBJbnNwZWN0b3JUZXN0Ll9zaG93U2NyaXB0U291cmNlID0gZnVuY3Rpb24oc2NyaXB0TmFt
ZSwgY2FsbGJhY2spCiAgICAgaWYgKHNvdXJjZUZyYW1lLl9jb250ZW50KQogICAgICAgICBjYWxs
YmFjayhzb3VyY2VGcmFtZSk7CiAgICAgZWxzZQotICAgICAgICBJbnNwZWN0b3JUZXN0Ll9hZGRT
bmlmZmVyKHNvdXJjZUZyYW1lLl90ZXh0TW9kZWwsICJzZXRUZXh0IiwgY2FsbGJhY2suYmluZChu
dWxsLCBzb3VyY2VGcmFtZSkpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoc291
cmNlRnJhbWUuX3RleHRNb2RlbCwgInNldFRleHQiLCBjYWxsYmFjay5iaW5kKG51bGwsIHNvdXJj
ZUZyYW1lKSk7CiB9OwogCiBJbnNwZWN0b3JUZXN0LmV4cGFuZFByb3BlcnRpZXMgPSBmdW5jdGlv
bihwcm9wZXJ0aWVzLCBjYWxsYmFjaykKQEAgLTE3OCw3ICsyMTAsNyBAQCBJbnNwZWN0b3JUZXN0
LmV4cGFuZFByb3BlcnRpZXMgPSBmdW5jdGlvbihwcm9wZXJ0aWVzLCBjYWxsYmFjaykKICAgICBm
dW5jdGlvbiBleHBhbmROZXh0UGF0aCgpCiAgICAgewogICAgICAgICBpZiAoaW5kZXggPT09IHBy
b3BlcnRpZXMubGVuZ3RoKSB7Ci0gICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAg
JHdyYXAoY2FsbGJhY2spKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAg
ICAgdmFyIHBhcmVudFRyZWVFbGVtZW50ID0gcHJvcGVydGllc1tpbmRleCsrXTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzCmluZGV4IDNl
N2Y3YzMuLjg5Y2YzZDEgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZWxlbWVudHMtdGVzdC5qcwpAQCAtMyw2ICszLDcgQEAgdmFyIGluaXRpYWxpemVfRWxlbWVu
dFRlc3QgPSBmdW5jdGlvbigpIHsKIAogSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkID0gZnVuY3Rp
b24oaWRWYWx1ZSwgY2FsbGJhY2spCiB7CisgICAgY2FsbGJhY2sgPSAkd3JhcChjYWxsYmFjayk7
CiAgICAgdmFyIHJlc3VsdCA9IG51bGw7CiAgICAgdmFyIHRvcExldmVsQ2hpbGRyZW5SZXF1ZXN0
ZWQgPSBmYWxzZTsKICAgICB2YXIgcGVuZGluZ1JlcXVlc3RzID0gMDsKQEAgLTE2LDggKzE3LDcg
QEAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkID0gZnVuY3Rpb24oaWRWYWx1ZSwgY2FsbGJhY2sp
CiAgICAgICAgICAgICB2YXIgY2hpbGROb2RlID0gY2hpbGRyZW5baV07CiAgICAgICAgICAgICBp
ZiAoY2hpbGROb2RlLmdldEF0dHJpYnV0ZSgiaWQiKSA9PT0gaWRWYWx1ZSkgewogICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IGNoaWxkTm9kZTsKLSAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2sp
Ci0gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7CisgICAgICAgICAgICAgICAg
Y2FsbGJhY2socmVzdWx0KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBwZW5kaW5nUmVxdWVzdHMrKzsKQEAgLTI3LDcgKzI3LDcgQEAgSW5zcGVj
dG9yVGVzdC5ub2RlV2l0aElkID0gZnVuY3Rpb24oaWRWYWx1ZSwgY2FsbGJhY2spCiAgICAgICAg
IGlmICh0b3BMZXZlbCkKICAgICAgICAgICAgIHRvcExldmVsQ2hpbGRyZW5SZXF1ZXN0ZWQgPSB0
cnVlOwogICAgICAgICBpZiAodG9wTGV2ZWxDaGlsZHJlblJlcXVlc3RlZCAmJiAhcmVzdWx0ICYm
ICFwZW5kaW5nUmVxdWVzdHMpCi0gICAgICAgICAgICBjYWxsYmFjayhudWxsKTsgICAgCisgICAg
ICAgICAgICBjYWxsYmFjayhudWxsKTsKICAgICB9CiAgICAgcGVuZGluZ1JlcXVlc3RzKys7CiAg
ICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmdldENoaWxkTm9kZXNBc3luYyhXZWJJbnNwZWN0b3Iu
ZG9tQWdlbnQuZG9jdW1lbnQsIHByb2Nlc3NDaGlsZHJlbi5iaW5kKHRoaXMsIHRydWUpKTsKQEAg
LTQ2LDEyICs0NiwxMiBAQCBJbnNwZWN0b3JUZXN0LmV4cGFuZGVkTm9kZVdpdGhJZCA9IGZ1bmN0
aW9uKGlkVmFsdWUpCiAKIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZVdpdGhJZCA9IGZ1bmN0aW9u
KGlkVmFsdWUsIGNhbGxiYWNrKQogeworICAgIGNhbGxiYWNrID0gJHdyYXAoY2FsbGJhY2spOwog
ICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2sobm9kZSkKICAgICB7CiAgICAgICAgIGlmIChub2RlKQog
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnVwZGF0ZUZvY3VzZWROb2RlKG5vZGUuaWQpOwotICAg
ICAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVu
ZGluZ0Rpc3BhdGNoZXMoY2FsbGJhY2suYmluZChudWxsLCBub2RlKSk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhjYWxsYmFjay5iaW5kKG51bGwsIG5v
ZGUpKTsKICAgICB9CiAgICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKGlkVmFsdWUsIG15Y2Fs
bGJhY2spOwogfTsKQEAgLTE3Miw2ICsxNzIsOCBAQCBJbnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50
c1RyZWUgPSBmdW5jdGlvbihyb290Tm9kZSkKIAogSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50
c1RyZWUgPSBmdW5jdGlvbihjYWxsYmFjaykKIHsKKyAgICBjYWxsYmFjayA9ICR3cmFwKGNhbGxi
YWNrKTsKKwogICAgIGZ1bmN0aW9uIGV4cGFuZCh0cmVlSXRlbSkKICAgICB7CiAgICAgICAgIHZh
ciBjaGlsZHJlbiA9IHRyZWVJdGVtLmNoaWxkcmVuOwpAQCAtMTg1LDggKzE4Nyw3IEBAIEluc3Bl
Y3RvclRlc3QuZXhwYW5kRWxlbWVudHNUcmVlID0gZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewog
ICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnVwZGF0ZU1vZGlmaWVkTm9kZXMo
KTsKICAgICAgICAgZXhwYW5kKFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxp
bmUpOwotICAgICAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgICAgICBjYWxsYmFjaygpOworICAg
ICAgICBjYWxsYmFjaygpOwogICAgIH0KICAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoL25v
bnN0cmluZy8sIG15Y2FsbGJhY2spOwogfTsKQEAgLTIwMyw0ICsyMDQsNCBAQCBJbnNwZWN0b3JU
ZXN0LmR1bXBET01BZ2VudFRyZWUgPSBmdW5jdGlvbigpCiAgICAgZHVtcChXZWJJbnNwZWN0b3Iu
ZG9tQWdlbnQuZG9jdW1lbnQsICIiLCBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQuaWQg
LSAxKTsKIH07CiAKLX07ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKaW5kZXgg
YTkyNWIxMS4uOTFjYTlhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMKQEAgLTEwLDQyICsxMCw0NSBAQCBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCA9IGZ1bmN0aW9uKCkKIAogSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29u
c29sZSA9IGZ1bmN0aW9uKGNvZGUsIGNhbGxiYWNrKQogeworICAgIGNhbGxiYWNrID0gJHdyYXAo
Y2FsbGJhY2spOworCiAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUudmlzaWJsZSA9IHRydWU7CiAg
ICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUucHJvbXB0LnRleHQgPSBjb2RlOwogICAgIHZhciBldmVu
dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJLZXlib2FyZEV2ZW50Iik7CiAgICAgZXZlbnQuaW5p
dEtleWJvYXJkRXZlbnQoImtleWRvd24iLCB0cnVlLCB0cnVlLCBudWxsLCAiRW50ZXIiLCAiIik7
CiAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUucHJvbXB0RWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2
ZW50KTsKLSAgICBJbnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xl
Vmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZm
ZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLAogICAg
ICAgICBmdW5jdGlvbihjb21tYW5kUmVzdWx0KSB7Ci0gICAgICAgICAgICBpZiAoY2FsbGJhY2sp
Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soY29tbWFuZFJlc3VsdC50b01lc3NhZ2VFbGVtZW50
KCkudGV4dENvbnRlbnQpOworICAgICAgICAgICAgY2FsbGJhY2soY29tbWFuZFJlc3VsdC50b01l
c3NhZ2VFbGVtZW50KCkudGV4dENvbnRlbnQpOwogICAgICAgICB9KTsKIH0KIAogSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluQ29uc29sZUFuZER1bXAgPSBmdW5jdGlvbihjb2RlLCBjYWxsYmFjaykK
IHsKKyAgICBjYWxsYmFjayA9ICR3cmFwKGNhbGxiYWNrKTsKKwogICAgIGZ1bmN0aW9uIG15Y2Fs
bGJhY2sodGV4dCkKICAgICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KGNvZGUg
KyAiID0gIiArIHRleHQpOwotICAgICAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgICAgICBjYWxs
YmFjayh0ZXh0KTsKKyAgICAgICAgY2FsbGJhY2sodGV4dCk7CiAgICAgfQogICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoY29kZSwgbXljYWxsYmFjayk7CiB9CiAKIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2UgPSBmdW5jdGlvbihjb2RlLCBjYWxsYmFjaykKIHsKKyAgICBj
YWxsYmFjayA9ICR3cmFwKGNhbGxiYWNrKTsKKwogICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2socmVz
dWx0KQogICAgIHsKLSAgICAgICAgaWYgKGNhbGxiYWNrKQotICAgICAgICAgICAgY2FsbGJhY2so
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChyZXN1bHQpKTsKKyAgICAgICAg
Y2FsbGJhY2soV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChyZXN1bHQpKTsK
ICAgICB9CiAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKGNvZGUsICJjb25zb2xlIiwgZmFsc2Us
IG15Y2FsbGJhY2spOwogfQogCi1JbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVv
dXQgPSBmdW5jdGlvbihjb2RlLCBjYWxsYmFjaykKK0luc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2VXaXRoVGltZW91dCA9IGZ1bmN0aW9uKGNvZGUpCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZSgic2V0VGltZW91dCh1bmVzY2FwZSgnIiArIGVzY2FwZShjb2RlKSArICInKSki
LCBjYWxsYmFjayk7CisgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91
dCh1bmVzY2FwZSgnIiArIGVzY2FwZShjb2RlKSArICInKSkiKTsKIH0KIAogSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQgPSBmdW5jdGlvbih0ZXh0KQpAQCAtMTA1LDcgKzEwOCw3IEBAIEluc3BlY3Rv
clRlc3QuYWRkT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0LCBub25kZXRlcm1pbmlzdGljUHJvcHMs
IHByZWZpeCwgZmlyc3RMCiAKIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSA9IGZ1bmN0aW9uKGNh
bGxiYWNrKQogewotICAgIEluc3BlY3RvclRlc3QuX3JlbG9hZFBhZ2VDYWxsYmFjayA9IGNhbGxi
YWNrOworICAgIEluc3BlY3RvclRlc3QuX3JlbG9hZFBhZ2VDYWxsYmFjayA9ICR3cmFwKGNhbGxi
YWNrKTsKIAogICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCiAgICAgICAgIFdl
Ykluc3BlY3Rvci5wYW5lbHMubmV0d29yay5fcmVzZXQoKTsKQEAgLTEyNSw2ICsxMjgsOCBAQCBJ
bnNwZWN0b3JUZXN0LnBhZ2VSZWxvYWRlZCA9IGZ1bmN0aW9uKCkKIAogSW5zcGVjdG9yVGVzdC5y
dW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzID0gZnVuY3Rpb24oY2FsbGJhY2spCiB7CisgICAgY2Fs
bGJhY2sgPSAkd3JhcChjYWxsYmFjayk7CisKICAgICBXZWJJbnNwZWN0b3IuVGVzdENvbnRyb2xs
ZXIucHJvdG90eXBlLnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoY2FsbGJhY2spOwogfQogCkBA
IC0xNDUsMTUgKzE1MCwzNyBAQCBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZSA9IGZ1bmN0aW9u
KHRlc3RTdWl0ZSkKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgdmFyIG5leHRUZXN0RnVuY3Rp
b24gPSB0ZXN0U3VpdGVUZXN0cy5zaGlmdCgpOwotICAgICAgICBuZXh0VGVzdEZ1bmN0aW9uKHJ1
bm5lcik7CisgICAgICAgICR3cmFwKHRlc3RTdWl0ZVRlc3RzLnNoaWZ0KCkpKHJ1bm5lciwgcnVu
bmVyKTsKICAgICB9Ci0KICAgICBydW5uZXIoKTsKIH0KIAotSW5zcGVjdG9yVGVzdC5fYWRkU25p
ZmZlciA9IGZ1bmN0aW9uKHJlY2VpdmVyLCBtZXRob2ROYW1lLCBvdmVycmlkZSwgb3B0X3N0aWNr
eSkKK0luc3BlY3RvclRlc3Quc2FmZVdyYXAgPSBmdW5jdGlvbihmdW5jLCBvbmV4Y2VwdGlvbikK
IHsKKyAgICBmdW5jdGlvbiByZXN1bHQoKQorICAgIHsKKyAgICAgICAgaWYgKCFmdW5jKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgd3JhcFRoaXMgPSB0aGlzOworICAgICAgICB0
cnkgeworICAgICAgICAgICAgcmV0dXJuIGZ1bmMuYXBwbHkod3JhcFRoaXMsIGFyZ3VtZW50cyk7
CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nOiAiICsgZnVuYyArICJcbiIgKyBlKTsKKyAgICAg
ICAgICAgIGlmIChvbmV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICAkd3JhcChvbmV4Y2VwdGlv
bikoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisK
KyR3cmFwID0gSW5zcGVjdG9yVGVzdC5zYWZlV3JhcDsKKworSW5zcGVjdG9yVGVzdC5hZGRTbmlm
ZmVyID0gZnVuY3Rpb24ocmVjZWl2ZXIsIG1ldGhvZE5hbWUsIG92ZXJyaWRlLCBvcHRfc3RpY2t5
KQoreworICAgIG92ZXJyaWRlID0gJHdyYXAob3ZlcnJpZGUpOworCiAgICAgdmFyIG9yaWdpbmFs
ID0gcmVjZWl2ZXJbbWV0aG9kTmFtZV07CiAgICAgaWYgKHR5cGVvZiBvcmlnaW5hbCAhPT0gImZ1
bmN0aW9uIikKICAgICAgICAgdGhyb3cgKCJDYW5ub3QgZmluZCBtZXRob2QgdG8gb3ZlcnJpZGU6
ICIgKyBtZXRob2ROYW1lKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMuaHRtbAppbmRleCBjY2QyZTI0Li45YTZlMGU2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1w
YXJhbWV0ZXJzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2UtcGFyYW1ldGVycy5odG1sCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIHN1Ym1pdCgp
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJz
dWJtaXQoKSIpOwotICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLk5l
dHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZSwgImRpZEZpbmlzaExvYWRpbmciLCBkdW1wSEFSKTsK
KyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRj
aGVyLnByb3RvdHlwZSwgImRpZEZpbmlzaExvYWRpbmciLCBkdW1wSEFSKTsKIAogICAgIGZ1bmN0
aW9uIGR1bXBIQVIoKQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtYXNzZXJ0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWFzc2VydC5odG1sCmluZGV4IGYzM2ZkMDQuLmRjYjk5NTcgMTAwNzU1Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtYXNzZXJ0Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hc3NlcnQuaHRtbApAQCAtMjcs
NyArMjcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgfQogICAgIH0KICAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KGEsIDApIik7Ci0gICAgSW5zcGVjdG9y
VGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRk
TWVzc2FnZSIsIGNhbGxiYWNrLCB0cnVlKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBjYWxsYmFj
aywgdHJ1ZSk7CiB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS10cmFjZS1pbi1ldmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS9jb25zb2xlLXRyYWNlLWluLWV2YWwuaHRtbAppbmRleCA1NDY3ZTRiLi4w
MDNmMjQzIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LXRyYWNlLWluLWV2YWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9j
b25zb2xlLXRyYWNlLWluLWV2YWwuaHRtbApAQCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICB9CiAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZG9FdmFsU291cmNlKCkiKTsKLSAgICBJbnNwZWN0
b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJh
ZGRNZXNzYWdlIiwgY2FsbGJhY2spOworICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJ
bnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIGNhbGxiYWNrKTsK
IH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLXRyYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLXRyYWNlLmh0bWwKaW5kZXggMDJhOTU3Zi4uYmUyYzJmMSAxMDA3NTUKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS10cmFjZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJhY2UuaHRtbApAQCAtMjIsNyArMjIsNyBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
ICAgICB9CiAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dChhLCAw
KSIpOwotICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVW
aWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBjYWxsYmFjayk7CisgICAgSW5zcGVjdG9yVGVz
dC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNz
YWdlIiwgY2FsbGJhY2spOwogfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RvbS1icmVha3BvaW50cy1leHBlY3RlZC50eHQKaW5k
ZXggNjM2ZTBlZC4uYjc0NzQ2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2RvbS1icmVha3BvaW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2RvbS1icmVha3BvaW50cy1leHBlY3RlZC50eHQKQEAgLTYsNyArNiw3
IEBAIFNldCAnU3VidHJlZSBNb2RpZmllZCcgRE9NIGJyZWFrcG9pbnQgb24gcm9vdEVsZW1lbnQu
CiBBcHBlbmQgY2hpbGRFbGVtZW50IHRvIHJvb3RFbGVtZW50LgogU2NyaXB0IGV4ZWN1dGlvbiBw
YXVzZWQuCiBDYWxsIHN0YWNrOgotICAgIDApIGFwcGVuZEVsZW1lbnQgKGRvbS1icmVha3BvaW50
cy5odG1sOjExKQorICAgIDApIGFwcGVuZEVsZW1lbnQgKGRvbS1icmVha3BvaW50cy5odG1sOjEy
KQogICAgIDEpICAoOjEpCiBQYXVzZWQgb24gYSAiU3VidHJlZSBNb2RpZmllZCIgYnJlYWtwb2lu
dCBzZXQgb24gZGl2I3Jvb3RFbGVtZW50LCBiZWNhdXNlIGEgbmV3IGNoaWxkIHdhcyBhZGRlZCB0
byB0aGF0IG5vZGUuCiBTY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCkBAIC0xNCw3ICsxNCw3IEBA
IFRlc3QgdGhhdCAnU3VidHJlZSBNb2RpZmllZCcgYnJlYWtwb2ludCBpcyBoaXQgd2hlbiBhcHBl
bmRpbmcgYSBncmFuZGNoaWxkLgogQXBwZW5kIGdyYW5kY2hpbGRFbGVtZW50IHRvIGNoaWxkRWxl
bWVudC4KIFNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgogQ2FsbCBzdGFjazoKLSAgICAwKSBhcHBl
bmRFbGVtZW50IChkb20tYnJlYWtwb2ludHMuaHRtbDoxMSkKKyAgICAwKSBhcHBlbmRFbGVtZW50
IChkb20tYnJlYWtwb2ludHMuaHRtbDoxMikKICAgICAxKSAgKDoxKQogUGF1c2VkIG9uIGEgIlN1
YnRyZWUgTW9kaWZpZWQiIGJyZWFrcG9pbnQgc2V0IG9uIGRpdiNyb290RWxlbWVudCwgYmVjYXVz
ZSBhIG5ldyBjaGlsZCB3YXMgYWRkZWQgdG8gaXRzIGRlc2NlbmRhbnQgZGl2I2NoaWxkRWxlbWVu
dC4KIFNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KQEAgLTIyLDcgKzIyLDcgQEAgVGVzdCB0aGF0
ICdTdWJ0cmVlIE1vZGlmaWVkJyBicmVha3BvaW50IGlzIGhpdCB3aGVuIHJlbW92aW5nIGEgY2hp
bGQuCiBSZW1vdmUgZ3JhbmRjaGlsZEVsZW1lbnQuCiBTY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4K
IENhbGwgc3RhY2s6Ci0gICAgMCkgcmVtb3ZlRWxlbWVudCAoZG9tLWJyZWFrcG9pbnRzLmh0bWw6
MjMpCisgICAgMCkgcmVtb3ZlRWxlbWVudCAoZG9tLWJyZWFrcG9pbnRzLmh0bWw6MjQpCiAgICAg
MSkgICg6MSkKIFBhdXNlZCBvbiBhICJTdWJ0cmVlIE1vZGlmaWVkIiBicmVha3BvaW50IHNldCBv
biBkaXYjcm9vdEVsZW1lbnQsIGJlY2F1c2UgaXRzIGRlc2NlbmRhbnQgZGl2I2dyYW5kY2hpbGRF
bGVtZW50IHdhcyByZW1vdmVkLgogU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgpAQCAtMzEsMTcg
KzMxLDE2IEBAIFNldCAnQXR0cmlidXRlIE1vZGlmaWVkJyBET00gYnJlYWtwb2ludCBvbiByb290
RWxlbWVudC4KIE1vZGlmeSByb290RWxlbWVudCBjbGFzc05hbWUuCiBTY3JpcHQgZXhlY3V0aW9u
IHBhdXNlZC4KIENhbGwgc3RhY2s6Ci0gICAgMCkgbW9kaWZ5QXR0cmlidXRlIChkb20tYnJlYWtw
b2ludHMuaHRtbDoxNykKKyAgICAwKSBtb2RpZnlBdHRyaWJ1dGUgKGRvbS1icmVha3BvaW50cy5o
dG1sOjE4KQogICAgIDEpICAoOjEpCiBQYXVzZWQgb24gYSAiQXR0cmlidXRlIE1vZGlmaWVkIiBi
cmVha3BvaW50IHNldCBvbiBkaXYjcm9vdEVsZW1lbnQuCiBTY3JpcHQgZXhlY3V0aW9uIHJlc3Vt
ZWQuCiBUZXN0IHRoYXQgJ05vZGUgUmVtb3ZlZCcgYnJlYWtwb2ludCBpcyBoaXQgd2hlbiByZW1v
dmluZyBhIG5vZGUuCi1BcHBlbmQgZWxlbWVudFRvUmVtb3ZlIHRvIHJvb3RFbGVtZW50LgogU2V0
ICdOb2RlIFJlbW92ZWQnIERPTSBicmVha3BvaW50IG9uIGVsZW1lbnRUb1JlbW92ZS4KIFJlbW92
ZSBlbGVtZW50VG9SZW1vdmUuCiBTY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4KIENhbGwgc3RhY2s6
Ci0gICAgMCkgcmVtb3ZlRWxlbWVudCAoZG9tLWJyZWFrcG9pbnRzLmh0bWw6MjMpCisgICAgMCkg
cmVtb3ZlRWxlbWVudCAoZG9tLWJyZWFrcG9pbnRzLmh0bWw6MjQpCiAgICAgMSkgICg6MSkKIFBh
dXNlZCBvbiBhICJOb2RlIFJlbW92ZWQiIGJyZWFrcG9pbnQgc2V0IG9uIGRpdiNlbGVtZW50VG9S
ZW1vdmUuCiBTY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCkBAIC01MSw3ICs1MCw3IEBAIFBhZ2Ug
cmVsb2FkZWQuCiBBcHBlbmQgY2hpbGRFbGVtZW50IHRvIHJvb3RFbGVtZW50LgogU2NyaXB0IGV4
ZWN1dGlvbiBwYXVzZWQuCiBDYWxsIHN0YWNrOgotICAgIDApIGFwcGVuZEVsZW1lbnQgKGRvbS1i
cmVha3BvaW50cy5odG1sOjExKQorICAgIDApIGFwcGVuZEVsZW1lbnQgKGRvbS1icmVha3BvaW50
cy5odG1sOjEyKQogICAgIDEpICAoOjEpCiBQYXVzZWQgb24gYSAiU3VidHJlZSBNb2RpZmllZCIg
YnJlYWtwb2ludCBzZXQgb24gZGl2I3Jvb3RFbGVtZW50LCBiZWNhdXNlIGEgbmV3IGNoaWxkIHdh
cyBhZGRlZCB0byB0aGF0IG5vZGUuCiBTY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWwKaW5k
ZXggZGQ3YjQwYi4uYjY0MjZmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2RvbS1icmVha3BvaW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbApAQCAtMSw2ICsxLDcgQEAKIDxodG1sPgogPGhl
YWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIApAQCAt
MjMsMTM0ICsyNCwxMDAgQEAgZnVuY3Rpb24gcmVtb3ZlRWxlbWVudChlbGVtZW50SWQpCiAgICAg
ZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnQpOwogfQogCi12YXIgdGVzdCA9
IGZ1bmN0aW9uKCkKK2Z1bmN0aW9uIHRlc3QoKQogewogICAgIHZhciByb290RWxlbWVudDsKLSAg
ICB0ZXN0SW5zZXJ0Q2hpbGQgPSB7fTsKLSAgICB0ZXN0SW5zZXJ0Q2hpbGQuc3RlcDEgPSBmdW5j
dGlvbigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCB0aGF0
ICdTdWJ0cmVlIE1vZGlmaWVkJyBicmVha3BvaW50IGlzIGhpdCB3aGVuIGFwcGVuZGluZyBhIGNo
aWxkLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoInJvb3RFbGVtZW50Iiwg
dGVzdEluc2VydENoaWxkLnN0ZXAyKTsKLSAgICB9OwotICAgIHRlc3RJbnNlcnRDaGlsZC5zdGVw
MiA9IGZ1bmN0aW9uKG5vZGUpCi0gICAgewotICAgICAgICByb290RWxlbWVudCA9IG5vZGU7Ci0g
ICAgICAgIFdlYkluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlci5jcmVhdGVET01CcmVha3BvaW50
KG5vZGUuaWQsIFdlYkluc3BlY3Rvci5ET01CcmVha3BvaW50VHlwZXMuU3VidHJlZU1vZGlmaWVk
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldCAnU3VidHJlZSBNb2RpZmll
ZCcgRE9NIGJyZWFrcG9pbnQgb24gcm9vdEVsZW1lbnQuIik7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgiYXBwZW5kRWxlbWVudCgncm9vdEVsZW1lbnQn
LCAnY2hpbGRFbGVtZW50JykiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFw
cGVuZCBjaGlsZEVsZW1lbnQgdG8gcm9vdEVsZW1lbnQuIik7Ci0gICAgICAgIEluc3BlY3RvclRl
c3Qud2FpdFVudGlsUGF1c2VkKHRlc3RJbnNlcnRDaGlsZC5zdGVwMyk7Ci0gICAgfTsKLSAgICB0
ZXN0SW5zZXJ0Q2hpbGQuc3RlcDMgPSBmdW5jdGlvbihjYWxsRnJhbWVzKQotICAgIHsKLSAgICAg
ICAgZHVtcFN0YXR1cyhjYWxsRnJhbWVzKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVF
eGVjdXRpb24odGVzdEluc2VydEdyYW5kY2hpbGQuc3RlcDEpOwotICAgIH07Ci0KLSAgICB2YXIg
dGVzdEluc2VydEdyYW5kY2hpbGQgPSB7fTsKLSAgICB0ZXN0SW5zZXJ0R3JhbmRjaGlsZC5zdGVw
MSA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJU
ZXN0IHRoYXQgJ1N1YnRyZWUgTW9kaWZpZWQnIGJyZWFrcG9pbnQgaXMgaGl0IHdoZW4gYXBwZW5k
aW5nIGEgZ3JhbmRjaGlsZC4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZVdpdGhUaW1lb3V0KCJhcHBlbmRFbGVtZW50KCdjaGlsZEVsZW1lbnQnLCAnZ3JhbmRjaGlsZEVs
ZW1lbnQnKSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQXBwZW5kIGdyYW5k
Y2hpbGRFbGVtZW50IHRvIGNoaWxkRWxlbWVudC4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC53
YWl0VW50aWxQYXVzZWQodGVzdEluc2VydEdyYW5kY2hpbGQuc3RlcDIpOwotICAgIH0KLSAgICB0
ZXN0SW5zZXJ0R3JhbmRjaGlsZC5zdGVwMiA9IGZ1bmN0aW9uKGNhbGxGcmFtZXMpCi0gICAgewot
ICAgICAgICBkdW1wU3RhdHVzKGNhbGxGcmFtZXMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJl
c3VtZUV4ZWN1dGlvbih0ZXN0UmVtb3ZlQ2hpbGQuc3RlcDEpOwotICAgIH0KLQotICAgIHZhciB0
ZXN0UmVtb3ZlQ2hpbGQgPSB7fTsKLSAgICB0ZXN0UmVtb3ZlQ2hpbGQuc3RlcDEgPSBmdW5jdGlv
bigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCB0aGF0ICdT
dWJ0cmVlIE1vZGlmaWVkJyBicmVha3BvaW50IGlzIGhpdCB3aGVuIHJlbW92aW5nIGEgY2hpbGQu
Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgicmVt
b3ZlRWxlbWVudCgnZ3JhbmRjaGlsZEVsZW1lbnQnKSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiUmVtb3ZlIGdyYW5kY2hpbGRFbGVtZW50LiIpOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LndhaXRVbnRpbFBhdXNlZCh0ZXN0UmVtb3ZlQ2hpbGQuc3RlcDIpOwotCi0gICAgfQot
ICAgIHRlc3RSZW1vdmVDaGlsZC5zdGVwMiA9IGZ1bmN0aW9uKGNhbGxGcmFtZXMpCi0gICAgewot
ICAgICAgICBkdW1wU3RhdHVzKGNhbGxGcmFtZXMpOwotICAgICAgICByb290RWxlbWVudC5icmVh
a3BvaW50c1tXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludFR5cGVzLlN1YnRyZWVNb2RpZmllZF0u
cmVtb3ZlKCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKHRlc3RNb2Rp
ZnlBdHRyaWJ1dGUuc3RlcDEpOwotICAgIH0KLQotICAgIHZhciB0ZXN0TW9kaWZ5QXR0cmlidXRl
ID0ge307Ci0gICAgdGVzdE1vZGlmeUF0dHJpYnV0ZS5zdGVwMSA9IGZ1bmN0aW9uKCkKLSAgICB7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0IHRoYXQgJ0F0dHJpYnV0ZSBN
b2RpZmllZCcgYnJlYWtwb2ludCBpcyBoaXQgd2hlbiBtb2RpZnlpbmcgYXR0cmlidXRlLiIpOwot
ICAgICAgICBXZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuY3JlYXRlRE9NQnJlYWtwb2lu
dChyb290RWxlbWVudC5pZCwgV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnRUeXBlcy5BdHRyaWJ1
dGVNb2RpZmllZCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZXQgJ0F0dHJp
YnV0ZSBNb2RpZmllZCcgRE9NIGJyZWFrcG9pbnQgb24gcm9vdEVsZW1lbnQuIik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgibW9kaWZ5QXR0cmlidXRl
KCdyb290RWxlbWVudCcsICdjbGFzc05hbWUnLCAnZm9vJykiKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIk1vZGlmeSByb290RWxlbWVudCBjbGFzc05hbWUuIik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHRlc3RNb2RpZnlBdHRyaWJ1dGUuc3RlcDIu
YmluZChudWxsKSk7Ci0gICAgfQotICAgIHRlc3RNb2RpZnlBdHRyaWJ1dGUuc3RlcDIgPSBmdW5j
dGlvbihjYWxsRnJhbWVzKQotICAgIHsKLSAgICAgICAgZHVtcFN0YXR1cyhjYWxsRnJhbWVzKTsK
LSAgICAgICAgcm9vdEVsZW1lbnQuYnJlYWtwb2ludHNbV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9p
bnRUeXBlcy5BdHRyaWJ1dGVNb2RpZmllZF0ucmVtb3ZlKCk7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QucmVzdW1lRXhlY3V0aW9uKHRlc3RSZW1vdmVOb2RlLnN0ZXAxKTsKLSAgICB9Ci0KLSAgICB2
YXIgdGVzdFJlbW92ZU5vZGUgPSB7fTsKLSAgICB0ZXN0UmVtb3ZlTm9kZS5zdGVwMSA9IGZ1bmN0
aW9uKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0IHRoYXQg
J05vZGUgUmVtb3ZlZCcgYnJlYWtwb2ludCBpcyBoaXQgd2hlbiByZW1vdmluZyBhIG5vZGUuIik7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgiYXBwZW5k
RWxlbWVudCgncm9vdEVsZW1lbnQnLCAnZWxlbWVudFRvUmVtb3ZlJykiLCB0ZXN0UmVtb3ZlTm9k
ZS5zdGVwMik7Ci0gICAgfQotICAgIHRlc3RSZW1vdmVOb2RlLnN0ZXAyID0gZnVuY3Rpb24oKQot
ICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFwcGVuZCBlbGVtZW50VG9S
ZW1vdmUgdG8gcm9vdEVsZW1lbnQuIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJ
ZCgiZWxlbWVudFRvUmVtb3ZlIiwgdGVzdFJlbW92ZU5vZGUuc3RlcDMpOwotICAgIH0KLSAgICB0
ZXN0UmVtb3ZlTm9kZS5zdGVwMyA9IGZ1bmN0aW9uKG5vZGUpCi0gICAgewotICAgICAgICBXZWJJ
bnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuY3JlYXRlRE9NQnJlYWtwb2ludChub2RlLmlkLCBX
ZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludFR5cGVzLk5vZGVSZW1vdmVkKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldCAnTm9kZSBSZW1vdmVkJyBET00gYnJlYWtwb2ludCBv
biBlbGVtZW50VG9SZW1vdmUuIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2VXaXRoVGltZW91dCgicmVtb3ZlRWxlbWVudCgnZWxlbWVudFRvUmVtb3ZlJykiKTsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJlbW92ZSBlbGVtZW50VG9SZW1vdmUuIik7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHRlc3RSZW1vdmVOb2RlLnN0ZXA0
KTsKLSAgICB9Ci0gICAgdGVzdFJlbW92ZU5vZGUuc3RlcDQgPSBmdW5jdGlvbihjYWxsRnJhbWVz
KQotICAgIHsKLSAgICAgICAgZHVtcFN0YXR1cyhjYWxsRnJhbWVzKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5yZXN1bWVFeGVjdXRpb24odGVzdFJlbG9hZC5zdGVwMSk7Ci0gICAgfQotCi0gICAg
dmFyIHRlc3RSZWxvYWQ9IHt9OwotICAgIHRlc3RSZWxvYWQuc3RlcDEgPSBmdW5jdGlvbigpCi0g
ICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCB0aGF0IERPTSBicmVh
a3BvaW50cyBhcmUgcGVyc2lzdGVkIGJldHdlZW4gcGFnZSByZWxvYWRzLiIpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoInJvb3RFbGVtZW50IiwgdGVzdFJlbG9hZC5zdGVwMik7
Ci0gICAgfQotICAgIHRlc3RSZWxvYWQuc3RlcDIgPSBmdW5jdGlvbihub2RlKQotICAgIHsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLmJyZWFrcG9pbnRNYW5hZ2VyLmNyZWF0ZURPTUJyZWFrcG9pbnQo
bm9kZS5pZCwgV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnRUeXBlcy5TdWJ0cmVlTW9kaWZpZWQp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0ICdTdWJ0cmVlIE1vZGlmaWVk
JyBET00gYnJlYWtwb2ludCBvbiByb290RWxlbWVudC4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5yZWxvYWRQYWdlKHRlc3RSZWxvYWQuc3RlcDMpOwotICAgIH0KLSAgICB0ZXN0UmVsb2FkLnN0
ZXAzID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZVdpdGhUaW1lb3V0KCJhcHBlbmRFbGVtZW50KCdyb290RWxlbWVudCcsICdjaGlsZEVsZW1l
bnQnKSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQXBwZW5kIGNoaWxkRWxl
bWVudCB0byByb290RWxlbWVudC4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQ
YXVzZWQodGVzdFJlbG9hZC5zdGVwNCk7Ci0gICAgfQotICAgIHRlc3RSZWxvYWQuc3RlcDQgPSBm
dW5jdGlvbihjYWxsRnJhbWVzKQotICAgIHsKLSAgICAgICAgZHVtcFN0YXR1cyhjYWxsRnJhbWVz
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGR1bXBTdGF0dXMoY2FsbEZyYW1lcykKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QuY2FwdHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFu
ZXMuY2FsbHN0YWNrLmJvZHlFbGVtZW50Lmxhc3RDaGlsZC5pbm5lclRleHQpOwotICAgIH0KLQot
ICAgIEluc3BlY3RvclRlc3Quc3RhcnREZWJ1Z2dlclRlc3QodGVzdEluc2VydENoaWxkLnN0ZXAx
KTsKLX07CisgICAgSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RTdWl0ZShbCisgICAgICAg
IGZ1bmN0aW9uIHRlc3RJbnNlcnRDaGlsZChuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCB0aGF0ICdTdWJ0cmVlIE1vZGlmaWVkJyBicmVh
a3BvaW50IGlzIGhpdCB3aGVuIGFwcGVuZGluZyBhIGNoaWxkLiIpOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5ub2RlV2l0aElkKCJyb290RWxlbWVudCIsIHN0ZXAyKTsKKworICAgICAgICAg
ICAgZnVuY3Rpb24gc3RlcDIobm9kZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBy
b290RWxlbWVudCA9IG5vZGU7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmJyZWFrcG9p
bnRNYW5hZ2VyLmNyZWF0ZURPTUJyZWFrcG9pbnQobm9kZS5pZCwgV2ViSW5zcGVjdG9yLkRPTUJy
ZWFrcG9pbnRUeXBlcy5TdWJ0cmVlTW9kaWZpZWQpOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJTZXQgJ1N1YnRyZWUgTW9kaWZpZWQnIERPTSBicmVha3BvaW50IG9u
IHJvb3RFbGVtZW50LiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2VXaXRoVGltZW91dCgiYXBwZW5kRWxlbWVudCgncm9vdEVsZW1lbnQnLCAnY2hpbGRFbGVt
ZW50JykiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQXBwZW5k
IGNoaWxkRWxlbWVudCB0byByb290RWxlbWVudC4iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LndhaXRVbnRpbFBhdXNlZEFuZER1bXBTdGFjayhuZXh0KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0SW5zZXJ0R3JhbmRjaGlsZChuZXh0
KQorICAgICAgICB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCB0
aGF0ICdTdWJ0cmVlIE1vZGlmaWVkJyBicmVha3BvaW50IGlzIGhpdCB3aGVuIGFwcGVuZGluZyBh
IGdyYW5kY2hpbGQuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
V2l0aFRpbWVvdXQoImFwcGVuZEVsZW1lbnQoJ2NoaWxkRWxlbWVudCcsICdncmFuZGNoaWxkRWxl
bWVudCcpIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQXBwZW5kIGdy
YW5kY2hpbGRFbGVtZW50IHRvIGNoaWxkRWxlbWVudC4iKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Qud2FpdFVudGlsUGF1c2VkQW5kRHVtcFN0YWNrKG5leHQpOworICAgICAgICB9LAorCisg
ICAgICAgIGZ1bmN0aW9uIHRlc3RSZW1vdmVDaGlsZChuZXh0KQorICAgICAgICB7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCB0aGF0ICdTdWJ0cmVlIE1vZGlmaWVk
JyBicmVha3BvaW50IGlzIGhpdCB3aGVuIHJlbW92aW5nIGEgY2hpbGQuIik7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoInJlbW92ZUVsZW1lbnQo
J2dyYW5kY2hpbGRFbGVtZW50JykiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJSZW1vdmUgZ3JhbmRjaGlsZEVsZW1lbnQuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LndhaXRVbnRpbFBhdXNlZEFuZER1bXBTdGFjayhzdGVwMik7CisKKyAgICAgICAgICAgIGZ1
bmN0aW9uIHN0ZXAyKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByb290RWxlbWVu
dC5icmVha3BvaW50c1tXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludFR5cGVzLlN1YnRyZWVNb2Rp
ZmllZF0ucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfQor
ICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RNb2RpZnlBdHRyaWJ1dGUobmV4dCkK
KyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRlc3QgdGhh
dCAnQXR0cmlidXRlIE1vZGlmaWVkJyBicmVha3BvaW50IGlzIGhpdCB3aGVuIG1vZGlmeWluZyBh
dHRyaWJ1dGUuIik7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIu
Y3JlYXRlRE9NQnJlYWtwb2ludChyb290RWxlbWVudC5pZCwgV2ViSW5zcGVjdG9yLkRPTUJyZWFr
cG9pbnRUeXBlcy5BdHRyaWJ1dGVNb2RpZmllZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiU2V0ICdBdHRyaWJ1dGUgTW9kaWZpZWQnIERPTSBicmVha3BvaW50IG9uIHJv
b3RFbGVtZW50LiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdp
dGhUaW1lb3V0KCJtb2RpZnlBdHRyaWJ1dGUoJ3Jvb3RFbGVtZW50JywgJ2NsYXNzTmFtZScsICdm
b28nKSIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk1vZGlmeSByb290
RWxlbWVudCBjbGFzc05hbWUuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRp
bFBhdXNlZEFuZER1bXBTdGFjayhzdGVwMik7CisgICAgCisgICAgICAgICAgICBmdW5jdGlvbiBz
dGVwMihjYWxsRnJhbWVzKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJvb3RFbGVt
ZW50LmJyZWFrcG9pbnRzW1dlYkluc3BlY3Rvci5ET01CcmVha3BvaW50VHlwZXMuQXR0cmlidXRl
TW9kaWZpZWRdLnJlbW92ZSgpOworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0UmVtb3ZlTm9kZShuZXh0KQor
ICAgICAgICB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCB0aGF0
ICdOb2RlIFJlbW92ZWQnIGJyZWFrcG9pbnQgaXMgaGl0IHdoZW4gcmVtb3ZpbmcgYSBub2RlLiIp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKCJlbGVtZW50VG9SZW1vdmUi
LCBzdGVwMik7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKG5vZGUpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmJyZWFrcG9pbnRNYW5hZ2VyLmNyZWF0
ZURPTUJyZWFrcG9pbnQobm9kZS5pZCwgV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnRUeXBlcy5O
b2RlUmVtb3ZlZCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNl
dCAnTm9kZSBSZW1vdmVkJyBET00gYnJlYWtwb2ludCBvbiBlbGVtZW50VG9SZW1vdmUuIik7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0KCJy
ZW1vdmVFbGVtZW50KCdlbGVtZW50VG9SZW1vdmUnKSIpOworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJSZW1vdmUgZWxlbWVudFRvUmVtb3ZlLiIpOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkQW5kRHVtcFN0YWNrKG5leHQpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RSZWxvYWQo
bmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRl
c3QgdGhhdCBET00gYnJlYWtwb2ludHMgYXJlIHBlcnNpc3RlZCBiZXR3ZWVuIHBhZ2UgcmVsb2Fk
cy4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgicm9vdEVsZW1lbnQi
LCBzdGVwMik7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKG5vZGUpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmJyZWFrcG9pbnRNYW5hZ2VyLmNyZWF0
ZURPTUJyZWFrcG9pbnQobm9kZS5pZCwgV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnRUeXBlcy5T
dWJ0cmVlTW9kaWZpZWQpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJTZXQgJ1N1YnRyZWUgTW9kaWZpZWQnIERPTSBicmVha3BvaW50IG9uIHJvb3RFbGVtZW50LiIp
OworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShzdGVwMyk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQo
ImFwcGVuZEVsZW1lbnQoJ3Jvb3RFbGVtZW50JywgJ2NoaWxkRWxlbWVudCcpIik7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFwcGVuZCBjaGlsZEVsZW1lbnQgdG8g
cm9vdEVsZW1lbnQuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQ
YXVzZWRBbmREdW1wU3RhY2sobmV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICBd
KTsKK30KIAogPC9zY3JpcHQ+CiA8L2hlYWQ+CkBAIC0xNTksNyArMTI2LDEwIEBAIHZhciB0ZXN0
ID0gZnVuY3Rpb24oKQogPHA+CiBUZXN0cyBET00gYnJlYWtwb2ludHMuIDxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Mjg4NiI+QnVnIDQyODg2PC9hPgog
PC9wPgotPGRpdiBpZD0icm9vdEVsZW1lbnQiPjwvZGl2PgorCis8ZGl2IGlkPSJyb290RWxlbWVu
dCI+Cis8ZGl2IGlkPSJlbGVtZW50VG9SZW1vdmUiPjwvZGl2PgorPC9kaXY+CisKIDwvYm9keT4K
IDwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMv
ZXh0ZW5zaW9ucy1hdWRpdHMtdGVzdHMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5z
aW9ucy9leHRlbnNpb25zLWF1ZGl0cy10ZXN0cy5qcwppbmRleCBiMjA2NGZjLi45MmQzZDQzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1
ZGl0cy10ZXN0cy5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRl
bnNpb25zLWF1ZGl0cy10ZXN0cy5qcwpAQCAtMjMsNyArMjMsNyBAQCB2YXIgaW5pdGlhbGl6ZV9F
eHRlbnNpb25zQXVkaXRzVGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY29sbGVjdEF1ZGl0UmVzdWx0cygpOwogICAgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSgi
Iik7CiAgICAgICAgIH0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNw
ZWN0b3IucGFuZWxzLmF1ZGl0cywgIl9hdWRpdEZpbmlzaGVkQ2FsbGJhY2siLCBvbkF1ZGl0c0Rv
bmUsIHRydWUpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9y
LnBhbmVscy5hdWRpdHMsICJfYXVkaXRGaW5pc2hlZENhbGxiYWNrIiwgb25BdWRpdHNEb25lLCB0
cnVlKTsKIAogICAgICAgICBsYXVuY2hlclZpZXcuX2xhdW5jaEJ1dHRvbkNsaWNrZWQoKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pZnJh
bWUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWlmcmFtZS5odG1s
CmluZGV4IDVhMDIzY2EuLjE1N2FhMTggMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9zdHlsZXMvc3R5bGVzLWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvc3R5bGVzLWlmcmFtZS5odG1sCkBAIC0xOSw3ICsxOSw3IEBAIGZ1bmN0aW9uIGxvYWRJ
ZnJhbWUoKQogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgibG9hZElmcmFtZSgpIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJ
bnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXAwKTsKKyAg
ICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3Rv
dHlwZSwgImFkZE1lc3NhZ2UiLCBzdGVwMCk7CiAKICAgICBmdW5jdGlvbiBzdGVwMCgpCiAgICAg
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRl
LWZyb20tanMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0
ZS1mcm9tLWpzLmh0bWwKaW5kZXggOGY1YTI3ZS4uZjg4NWFiOSAxMDA3NTUKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20tanMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJvbS1qcy5odG1sCkBA
IC0yOCw3ICsyOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGZ1bmN0aW9uIHN0ZXAwKCkKICAg
ICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm1vZGlmeVN0eWxlQXR0
cmlidXRlKCkiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0
b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlLCAiX3JlYnVpbGRVcGRhdGUiLCBzdGVwMSk7
CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU3R5bGVzU2lk
ZWJhclBhbmUucHJvdG90eXBlLCAiX3JlYnVpbGRVcGRhdGUiLCBzdGVwMSk7CiAgICAgfQogCiAg
ICAgLy8gU2V0IHN0eWxlIHZpYSBjc3NUZXh0LgpAQCAtNDAsNyArNDAsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICAgICAgLy8gSW5oaWJpdCB0aGUgc2Vjb25kIFN0eWxlcyBwYW5lIHVwZGF0ZSBm
cm9tIHN0ZXAwKCkuCiAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKICAgICAgICAgewotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU3R5bGVzU2lk
ZWJhclBhbmUucHJvdG90eXBlLCAiX3JlYnVpbGRVcGRhdGUiLCBzdGVwMik7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5l
LnByb3RvdHlwZSwgIl9yZWJ1aWxkVXBkYXRlIiwgc3RlcDIpOwogICAgICAgICB9CiAKICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgibW9kaWZ5Q3NzVGV4dCgpIiwgY2FsbGJh
Y2spOwpAQCAtNTMsNyArNTMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgZHVtcEF0dHJp
YnV0ZUFuZFN0eWxlcygpOwogCiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
Im1vZGlmeVBhcnNlZEF0dHJpYnV0ZXMoKSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0Ll9hZGRT
bmlmZmVyKFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUsICJfcmVidWls
ZFVwZGF0ZSIsIHN0ZXAzKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYklu
c3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUsICJfcmVidWlsZFVwZGF0ZSIsIHN0
ZXAzKTsKICAgICB9CiAKICAgICAvLyBGaW5pc2ggdGhlIHRlc3QuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3Vy
Y2UuaHRtbAppbmRleCAyNjM0MDc0Li4xMDU0YjcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLmh0
bWwKQEAgLTIzLDcgKzIzLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgZnVuY3Rpb24gc3RlcDEo
KQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicGVyZm9ybUFj
dGlvbnMoKSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3BlY3Rv
ci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlw
ZSwgImFkZE1lc3NhZ2UiLCBzdGVwMik7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDIoKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlw
dC10YWctMS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNj
cmlwdC10YWctMS5odG1sCmluZGV4IDg4MjYwNDQuLjgyNGE1YzAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTEuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLmh0
bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgZnVuY3Rpb24gc3RlcDEo
KQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgicGVyZm9ybUFj
dGlvbnMoKSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3BlY3Rv
ci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlw
ZSwgImFkZE1lc3NhZ2UiLCBzdGVwMik7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDIoKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlw
dC10YWctMi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNj
cmlwdC10YWctMi5odG1sCmluZGV4IDZmODk2MzMuLjRjZGQ3ZDQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTIuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0yLmh0
bWwKQEAgLTE2LDcgKzE2LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgSW5zcGVjdG9yQWdlbnQu
c3RhcnRUaW1lbGluZVByb2ZpbGVyKHN0ZXAxKTsKICAgICBmdW5jdGlvbiBzdGVwMSgpCiAgICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xl
Vmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1l
c3NhZ2UiLCBzdGVwMik7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoInBl
cmZvcm1BY3Rpb25zKCkiKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCA1OTQ3MjJmLi42Yjg2MjJmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlv
bnMudHh0CkBAIC0zNDM2LDggKzM0MzYsNiBAQCBCVUdXSzU0NDk5IExJTlVYIDogc3ZnL3RyYW5z
Zm9ybXMvdGV4dC13aXRoLXBhdHRlcm4td2l0aC1zdmctdHJhbnNmb3JtLnN2ZyA9IElNQQogCiBC
VUdXSzU0NDcyIDogbWVkaWEvYXVkaW8tZGVsZXRlLXdoaWxlLXNsaWRlci10aHVtYi1jbGlja2Vk
Lmh0bWwgPSBUSU1FT1VUCiAKLUJVR1dLNTQ2MzggU0tJUCA6IGluc3BlY3Rvci9kZWJ1Z2dlci9k
b20tYnJlYWtwb2ludHMuaHRtbCA9IFRJTUVPVVQKLQogQlVHV0s1NDM4NyA6IGZhc3QvanMva2Rl
L21hdGguaHRtbCA9IFRFWFQKIAogLy8gRmxha3kK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83144</attachid>
            <date>2011-02-21 03:11:15 -0800</date>
            <delta_ts>2011-02-21 03:11:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54638-20110221141112.patch</filename>
            <type>text/plain</type>
            <size>38944</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzkyMDQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNWYwYTg5YzE3MjRjYjY1MGY4OTgw
YTBiNTRhMWY3YzY0Mjg2ODQ1Li43NDU1MzgyOTllZTJhZTM4Zjc4ZGZjNTVhYWI3ZGRjYmNjNmI3
YWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAKKzIwMTEtMDItMjEgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogW0Nocm9taXVtXSBpbnNwZWN0b3IvZGVidWdn
ZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWwgVElNRU9VVHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NjM4CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9jaGFuZ2UtaWZyYW1lLXNyYy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0RlYnVnZ2VyVGVz
dC5JbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0LnN0YXJ0VGVzdCk6CisgICAgICAgIChp
bml0aWFsaXplX0RlYnVnZ2VyVGVzdC5JbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KToK
KyAgICAgICAgKGluaXRpYWxpemVfRGVidWdnZXJUZXN0Lkluc3BlY3RvclRlc3QuY29tcGxldGVE
ZWJ1Z2dlclRlc3QuZGlzYWJsZURlYnVnZ2VyKToKKyAgICAgICAgKGluaXRpYWxpemVfRGVidWdn
ZXJUZXN0Lkluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0U3VpdGUucnVubmVyKToKKyAgICAg
ICAgKGluaXRpYWxpemVfRGVidWdnZXJUZXN0Lkluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0
U3VpdGUpOgorICAgICAgICAoaW5pdGlhbGl6ZV9EZWJ1Z2dlclRlc3QuSW5zcGVjdG9yVGVzdC53
YWl0VW50aWxQYXVzZWQpOgorICAgICAgICAoaW5pdGlhbGl6ZV9EZWJ1Z2dlclRlc3QuSW5zcGVj
dG9yVGVzdC53YWl0VW50aWxQYXVzZWRBbmREdW1wU3RhY2suc3RlcDEpOgorICAgICAgICAoaW5p
dGlhbGl6ZV9EZWJ1Z2dlclRlc3QuSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWRBbmREdW1w
U3RhY2spOgorICAgICAgICAoaW5pdGlhbGl6ZV9EZWJ1Z2dlclRlc3QuSW5zcGVjdG9yVGVzdC53
YWl0VW50aWxSZXN1bWVkKToKKyAgICAgICAgKGluaXRpYWxpemVfRGVidWdnZXJUZXN0Lkluc3Bl
Y3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKToKKyAgICAgICAgKGluaXRpYWxpemVfRGVidWdnZXJU
ZXN0Lkluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSk6CisgICAgICAgIChpbml0aWFsaXpl
X0RlYnVnZ2VyVGVzdC5JbnNwZWN0b3JUZXN0Ll9zaG93U2NyaXB0U291cmNlKToKKyAgICAgICAg
KGluaXRpYWxpemVfRGVidWdnZXJUZXN0Lkluc3BlY3RvclRlc3QuZXhwYW5kUHJvcGVydGllcy5l
eHBhbmROZXh0UGF0aCk6CisgICAgICAgIChpbml0aWFsaXplX0RlYnVnZ2VyVGVzdC5JbnNwZWN0
b3JUZXN0LmV4cGFuZFByb3BlcnRpZXMpOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0VsZW1lbnRUZXN0Lkluc3Bl
Y3RvclRlc3Qubm9kZVdpdGhJZC5wcm9jZXNzQ2hpbGRyZW4pOgorICAgICAgICAoaW5pdGlhbGl6
ZV9FbGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQpOgorICAgICAgICAoaW5pdGlh
bGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQubXljYWxsYmFj
ayk6CisgICAgICAgIChpbml0aWFsaXplX0VsZW1lbnRUZXN0Lkluc3BlY3RvclRlc3Quc2VsZWN0
Tm9kZVdpdGhJZCk6CisgICAgICAgIChpbml0aWFsaXplX0VsZW1lbnRUZXN0Lkluc3BlY3RvclRl
c3QuZXhwYW5kRWxlbWVudHNUcmVlLm15Y2FsbGJhY2spOgorICAgICAgICAoaW5pdGlhbGl6ZV9F
bGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0LmV4cGFuZEVsZW1lbnRzVHJlZSk6CisgICAgICAgIChp
bml0aWFsaXplX0VsZW1lbnRUZXN0KToKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKToKKyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVj
dG9yVGVzdC5JbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlQW5kRHVtcC5teWNhbGxiYWNr
KToKKyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5Db25zb2xlQW5kRHVtcCk6CisgICAgICAgIChpbml0aWFsaXplX0luc3BlY3RvclRlc3Qu
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZS5teWNhbGxiYWNrKToKKyAgICAgICAgKGluaXRp
YWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKToKKyAgICAg
ICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
V2l0aFRpbWVvdXQpOgorICAgICAgICAoaW5pdGlhbGl6ZV9JbnNwZWN0b3JUZXN0Lkluc3BlY3Rv
clRlc3QucmVsb2FkUGFnZSk6CisgICAgICAgIChpbml0aWFsaXplX0luc3BlY3RvclRlc3QuSW5z
cGVjdG9yVGVzdC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKToKKyAgICAgICAgKGluaXRpYWxp
emVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZS5ydW5uZXIpOgorICAg
ICAgICAoaW5pdGlhbGl6ZV9JbnNwZWN0b3JUZXN0Lkluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRl
KToKKyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LnNhZmVX
cmFwKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJz
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1hc3NlcnQuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRyYWNlLWluLWV2YWwuaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRyYWNlLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RvbS1icmVha3BvaW50cy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RvbS1icmVha3BvaW50cy5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLXRlc3RzLmpzOgorICAgICAg
ICAoaW5pdGlhbGl6ZV9FeHRlbnNpb25zQXVkaXRzVGVzdC5JbnNwZWN0b3JUZXN0LnN0YXJ0RXh0
ZW5zaW9uQXVkaXRzKToKKyAgICAgICAgKGluaXRpYWxpemVfRXh0ZW5zaW9uc0F1ZGl0c1Rlc3Qp
OgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWlmcmFtZS5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWw6CisgICAgICAg
ICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UuaHRtbDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtc2NyaXB0LXRhZy0xLmh0bWw6Cisg
ICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXNjcmlwdC10YWctMi5odG1sOgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKwogMjAx
MS0wMi0yMSAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBGaXhlZCB0eXBvIGluIGd0ayBTa2lwcGVkIGxpc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jaGFuZ2UtaWZyYW1lLXNyYy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY2hhbmdlLWlmcmFtZS1zcmMuaHRtbAppbmRleCA0ZmI4
NzY2MTY5MTcyZDc0YWM3ZDkwMWEwMjYwZTk0M2U1ZWQ4NWQyLi5iMmVlOGVlMDI2MjlmODIxMGVh
ODA5OTk2NWIwNTU3OGYzMWY1OWRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9jaGFuZ2UtaWZyYW1lLXNyYy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2NoYW5nZS1pZnJhbWUtc3JjLmh0bWwKQEAgLTIxLDcgKzIxLDcgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAgICAgZnVuY3Rpb24gc3RlcDEobm9kZSkKICAgICB7CiAgICAgICAg
IG5vZGUuc2V0QXR0cmlidXRlKCJzcmMiLCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rv
ci9yZXNvdXJjZXMvaWZyYW1lLWZyb20tZGlmZmVyZW50LWRvbWFpbi1kYXRhLmh0bWwiKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcu
cHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXAyKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdl
Iiwgc3RlcDIpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHN0ZXAyKCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCmluZGV4IDYwMDQ4NDAz
N2EzN2IwMzIwMjhlZjc4NmQzOTQ3ZDM4YmY4MWFlZjIuLmNhZjQ0OGM3NTRiZWVlMWU3MzU2OTcy
OTlkNzVkYjZhODE4YmVkZDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXItdGVzdC5qcwpAQCAtOCwxNiArOCwxNiBAQCBJbnNwZWN0b3JUZXN0LnN0
YXJ0RGVidWdnZXJUZXN0ID0gZnVuY3Rpb24oY2FsbGJhY2ssIHF1aWV0KQogICAgIGlmIChXZWJJ
bnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuX2RlYnVnZ2VyRW5hYmxlZCkKICAgICAgICAgc3RhcnRU
ZXN0KCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2Vi
SW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLCAiZGVidWdnZXJXYXNFbmFibGVkIiwgc3RhcnRUZXN0
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5wYW5lbHMu
c2NyaXB0cywgImRlYnVnZ2VyV2FzRW5hYmxlZCIsIHN0YXJ0VGVzdCk7CiAgICAgICAgIFdlYklu
c3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5fdG9nZ2xlRGVidWdnaW5nKGZhbHNlKTsKICAgICB9CiAK
ICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIkRlYnVnZ2VyIHdhcyBlbmFibGVkLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
Ll9hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLCAiX3BhdXNlZFNjcmlwdCIs
IEluc3BlY3RvclRlc3QuX3BhdXNlZFNjcmlwdCwgdHJ1ZSk7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwsICJfcmVzdW1lZFNjcmlw
dCIsIEluc3BlY3RvclRlc3QuX3Jlc3VtZWRTY3JpcHQsIHRydWUpOwotICAgICAgICBjYWxsYmFj
aygpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwsICJfcGF1c2VkU2NyaXB0IiwgSW5zcGVjdG9yVGVzdC5fcGF1c2VkU2NyaXB0LCB0
cnVlKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1vZGVsLCAiX3Jlc3VtZWRTY3JpcHQiLCBJbnNwZWN0b3JUZXN0Ll9yZXN1bWVkU2NyaXB0
LCB0cnVlKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChjYWxsYmFjaykoKTsKICAg
ICB9CiB9OwogCkBAIC0zNSw3ICszNSw3IEBAIEluc3BlY3RvclRlc3QuY29tcGxldGVEZWJ1Z2dl
clRlc3QgPSBmdW5jdGlvbigpCiAgICAgICAgIGlmICghc2NyaXB0c1BhbmVsLl9kZWJ1Z2dlckVu
YWJsZWQpCiAgICAgICAgICAgICBjb21wbGV0ZVRlc3QoKTsKICAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5wYW5lbHMuc2Ny
aXB0cywgImRlYnVnZ2VyV2FzRGlzYWJsZWQiLCBjb21wbGV0ZVRlc3QpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cywgImRl
YnVnZ2VyV2FzRGlzYWJsZWQiLCBjb21wbGV0ZVRlc3QpOwogICAgICAgICAgICAgc2NyaXB0c1Bh
bmVsLl90b2dnbGVEZWJ1Z2dpbmcoZmFsc2UpOwogICAgICAgICB9CiAgICAgfQpAQCAtNDcsNiAr
NDcsMjMgQEAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCA9IGZ1bmN0aW9uKCkK
ICAgICB9CiB9OwogCitJbnNwZWN0b3JUZXN0LnJ1bkRlYnVnZ2VyVGVzdFN1aXRlID0gZnVuY3Rp
b24odGVzdFN1aXRlKQoreworICAgIHZhciB0ZXN0U3VpdGVUZXN0cyA9IHRlc3RTdWl0ZS5zbGlj
ZSgpOworCisgICAgZnVuY3Rpb24gcnVubmVyKCkKKyAgICB7CisgICAgICAgIGlmICghdGVzdFN1
aXRlVGVzdHMubGVuZ3RoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVi
dWdnZXJUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNhZmVXcmFwKHRlc3RTdWl0ZVRlc3RzLnNoaWZ0KCkpKHJ1bm5lciwgcnVu
bmVyKTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0RGVidWdnZXJUZXN0KHJ1bm5l
cik7Cit9CisKIEluc3BlY3RvclRlc3QucnVuVGVzdEZ1bmN0aW9uQW5kV2FpdFVudGlsUGF1c2Vk
ID0gZnVuY3Rpb24oY2FsbGJhY2spCiB7CiAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29u
c29sZSgic2V0VGltZW91dCh0ZXN0RnVuY3Rpb24sIDApIik7CkBAIC01NiwxNCArNzMsMzAgQEAg
SW5zcGVjdG9yVGVzdC5ydW5UZXN0RnVuY3Rpb25BbmRXYWl0VW50aWxQYXVzZWQgPSBmdW5jdGlv
bihjYWxsYmFjaykKIAogSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQgPSBmdW5jdGlvbihj
YWxsYmFjaykKIHsKKyAgICBjYWxsYmFjayA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJh
Y2spOworCiAgICAgaWYgKEluc3BlY3RvclRlc3QuX2NhbGxGcmFtZXMpCiAgICAgICAgIGNhbGxi
YWNrKEluc3BlY3RvclRlc3QuX2NhbGxGcmFtZXMpOwogICAgIGVsc2UKICAgICAgICAgSW5zcGVj
dG9yVGVzdC5fd2FpdFVudGlsUGF1c2VkQ2FsbGJhY2sgPSBjYWxsYmFjazsKIH07CiAKK0luc3Bl
Y3RvclRlc3Qud2FpdFVudGlsUGF1c2VkQW5kRHVtcFN0YWNrID0gZnVuY3Rpb24oY2FsbGJhY2sp
Cit7CisgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQoc3RlcDEpOworCisgICAgZnVu
Y3Rpb24gc3RlcDEoY2FsbEZyYW1lcykKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY2Fw
dHVyZVN0YWNrVHJhY2UoY2FsbEZyYW1lcyk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zaWRlYmFyUGFuZXMuY2FsbHN0YWNrLmJv
ZHlFbGVtZW50Lmxhc3RDaGlsZC5pbm5lclRleHQpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnJl
c3VtZUV4ZWN1dGlvbihJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNhbGxiYWNrKSk7CisgICAgfQor
fTsKKwogSW5zcGVjdG9yVGVzdC53YWl0VW50aWxSZXN1bWVkID0gZnVuY3Rpb24oY2FsbGJhY2sp
CiB7CisgICAgY2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNhbGxiYWNrKTsKKwog
ICAgIGlmICghSW5zcGVjdG9yVGVzdC5fY2FsbEZyYW1lcykKICAgICAgICAgY2FsbGJhY2soKTsK
ICAgICBlbHNlCkBAIC03NCw4ICsxMDcsNyBAQCBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlv
biA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogewogICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLnNj
cmlwdHMucGF1c2VkKQogICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuX3RvZ2ds
ZVBhdXNlKCk7Ci0gICAgaWYgKGNhbGxiYWNrKQotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRV
bnRpbFJlc3VtZWQoY2FsbGJhY2spOworICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUmVzdW1l
ZChjYWxsYmFjayk7CiB9OwogCiBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFja1RyYWNlID0gZnVu
Y3Rpb24oY2FsbEZyYW1lcykKQEAgLTExOCw5ICsxNTAsOSBAQCBJbnNwZWN0b3JUZXN0Ll9yZXN1
bWVkU2NyaXB0ID0gZnVuY3Rpb24oKQogSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlID0g
ZnVuY3Rpb24oc2NyaXB0TmFtZSwgY2FsbGJhY2spCiB7CiAgICAgaWYgKEluc3BlY3RvclRlc3Qu
X3NjcmlwdHNBcmVQYXJzZWQoW3NjcmlwdE5hbWVdKSkKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5f
c2hvd1NjcmlwdFNvdXJjZShzY3JpcHROYW1lLCBjYWxsYmFjayk7CisgICAgICAgIEluc3BlY3Rv
clRlc3QuX3Nob3dTY3JpcHRTb3VyY2Uoc2NyaXB0TmFtZSwgSW5zcGVjdG9yVGVzdC5zYWZlV3Jh
cChjYWxsYmFjaykpOwogICAgICBlbHNlCi0gICAgICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZm
ZXIoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwsICJfcGFyc2VkU2NyaXB0U291cmNlIiwgSW5z
cGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlLmJpbmQoSW5zcGVjdG9yVGVzdCwgc2NyaXB0TmFt
ZSwgY2FsbGJhY2spKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1vZGVsLCAiX3BhcnNlZFNjcmlwdFNvdXJjZSIsIEluc3BlY3RvclRlc3Qu
c2hvd1NjcmlwdFNvdXJjZS5iaW5kKEluc3BlY3RvclRlc3QsIHNjcmlwdE5hbWUsIGNhbGxiYWNr
KSk7CiB9OwogCiBJbnNwZWN0b3JUZXN0Ll9zY3JpcHRzQXJlUGFyc2VkID0gZnVuY3Rpb24oc2Ny
aXB0cykKQEAgLTE2OSw3ICsyMDEsNyBAQCBJbnNwZWN0b3JUZXN0Ll9zaG93U2NyaXB0U291cmNl
ID0gZnVuY3Rpb24oc2NyaXB0TmFtZSwgY2FsbGJhY2spCiAgICAgaWYgKHNvdXJjZUZyYW1lLl9j
b250ZW50KQogICAgICAgICBjYWxsYmFjayhzb3VyY2VGcmFtZSk7CiAgICAgZWxzZQotICAgICAg
ICBJbnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKHNvdXJjZUZyYW1lLl90ZXh0TW9kZWwsICJzZXRU
ZXh0IiwgY2FsbGJhY2suYmluZChudWxsLCBzb3VyY2VGcmFtZSkpOworICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFNuaWZmZXIoc291cmNlRnJhbWUuX3RleHRNb2RlbCwgInNldFRleHQiLCBjYWxs
YmFjay5iaW5kKG51bGwsIHNvdXJjZUZyYW1lKSk7CiB9OwogCiBJbnNwZWN0b3JUZXN0LmV4cGFu
ZFByb3BlcnRpZXMgPSBmdW5jdGlvbihwcm9wZXJ0aWVzLCBjYWxsYmFjaykKQEAgLTE3OCw3ICsy
MTAsNyBAQCBJbnNwZWN0b3JUZXN0LmV4cGFuZFByb3BlcnRpZXMgPSBmdW5jdGlvbihwcm9wZXJ0
aWVzLCBjYWxsYmFjaykKICAgICBmdW5jdGlvbiBleHBhbmROZXh0UGF0aCgpCiAgICAgewogICAg
ICAgICBpZiAoaW5kZXggPT09IHByb3BlcnRpZXMubGVuZ3RoKSB7Ci0gICAgICAgICAgICBjYWxs
YmFjaygpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChjYWxsYmFjaykoKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICB2YXIgcGFyZW50VHJlZUVs
ZW1lbnQgPSBwcm9wZXJ0aWVzW2luZGV4KytdOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMKaW5kZXggM2U3ZjdjMzhlN2VmOTczYzhiOGVh
ZjIzZDI5MzBmNGUwY2U4ZjNjZS4uMmNmYzY5YWFjZTZlMjNjZTIxMTYzNDhiMGNiMjM1MTM4ZGM0
ZDEyNCAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy10ZXN0LmpzCkBAIC0zLDYgKzMsNyBAQCB2YXIgaW5pdGlhbGl6ZV9FbGVtZW50VGVzdCA9IGZ1
bmN0aW9uKCkgewogCiBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQgPSBmdW5jdGlvbihpZFZhbHVl
LCBjYWxsYmFjaykKIHsKKyAgICBjYWxsYmFjayA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2Fs
bGJhY2spOwogICAgIHZhciByZXN1bHQgPSBudWxsOwogICAgIHZhciB0b3BMZXZlbENoaWxkcmVu
UmVxdWVzdGVkID0gZmFsc2U7CiAgICAgdmFyIHBlbmRpbmdSZXF1ZXN0cyA9IDA7CkBAIC0xNiw4
ICsxNyw3IEBAIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCA9IGZ1bmN0aW9uKGlkVmFsdWUsIGNh
bGxiYWNrKQogICAgICAgICAgICAgdmFyIGNoaWxkTm9kZSA9IGNoaWxkcmVuW2ldOwogICAgICAg
ICAgICAgaWYgKGNoaWxkTm9kZS5nZXRBdHRyaWJ1dGUoImlkIikgPT09IGlkVmFsdWUpIHsKICAg
ICAgICAgICAgICAgICByZXN1bHQgPSBjaGlsZE5vZGU7Ci0gICAgICAgICAgICAgICAgaWYgKGNh
bGxiYWNrKQotICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQpOworICAgICAgICAg
ICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgcGVuZGluZ1JlcXVlc3RzKys7CkBAIC0yNyw3ICsyNyw3IEBA
IEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCA9IGZ1bmN0aW9uKGlkVmFsdWUsIGNhbGxiYWNrKQog
ICAgICAgICBpZiAodG9wTGV2ZWwpCiAgICAgICAgICAgICB0b3BMZXZlbENoaWxkcmVuUmVxdWVz
dGVkID0gdHJ1ZTsKICAgICAgICAgaWYgKHRvcExldmVsQ2hpbGRyZW5SZXF1ZXN0ZWQgJiYgIXJl
c3VsdCAmJiAhcGVuZGluZ1JlcXVlc3RzKQotICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7ICAg
IAorICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7CiAgICAgfQogICAgIHBlbmRpbmdSZXF1ZXN0
cysrOwogICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5nZXRDaGlsZE5vZGVzQXN5bmMoV2ViSW5z
cGVjdG9yLmRvbUFnZW50LmRvY3VtZW50LCBwcm9jZXNzQ2hpbGRyZW4uYmluZCh0aGlzLCB0cnVl
KSk7CkBAIC00NiwxMiArNDYsMTIgQEAgSW5zcGVjdG9yVGVzdC5leHBhbmRlZE5vZGVXaXRoSWQg
PSBmdW5jdGlvbihpZFZhbHVlKQogCiBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVXaXRoSWQgPSBm
dW5jdGlvbihpZFZhbHVlLCBjYWxsYmFjaykKIHsKKyAgICBjYWxsYmFjayA9IEluc3BlY3RvclRl
c3Quc2FmZVdyYXAoY2FsbGJhY2spOwogICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2sobm9kZSkKICAg
ICB7CiAgICAgICAgIGlmIChub2RlKQogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnVwZGF0ZUZv
Y3VzZWROb2RlKG5vZGUuaWQpOwotICAgICAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoY2FsbGJhY2suYmluZChudWxs
LCBub2RlKSk7CisgICAgICAgIEluc3BlY3RvclRlc3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hl
cyhjYWxsYmFjay5iaW5kKG51bGwsIG5vZGUpKTsKICAgICB9CiAgICAgSW5zcGVjdG9yVGVzdC5u
b2RlV2l0aElkKGlkVmFsdWUsIG15Y2FsbGJhY2spOwogfTsKQEAgLTE3Miw2ICsxNzIsOCBAQCBJ
bnNwZWN0b3JUZXN0LmR1bXBFbGVtZW50c1RyZWUgPSBmdW5jdGlvbihyb290Tm9kZSkKIAogSW5z
cGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1RyZWUgPSBmdW5jdGlvbihjYWxsYmFjaykKIHsKKyAg
ICBjYWxsYmFjayA9IEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spOworCiAgICAgZnVu
Y3Rpb24gZXhwYW5kKHRyZWVJdGVtKQogICAgIHsKICAgICAgICAgdmFyIGNoaWxkcmVuID0gdHJl
ZUl0ZW0uY2hpbGRyZW47CkBAIC0xODUsOCArMTg3LDcgQEAgSW5zcGVjdG9yVGVzdC5leHBhbmRF
bGVtZW50c1RyZWUgPSBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7CiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5wYW5lbHMuZWxlbWVudHMudXBkYXRlTW9kaWZpZWROb2RlcygpOwogICAgICAgICBleHBh
bmQoV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZSk7Ci0gICAgICAgIGlm
IChjYWxsYmFjaykKLSAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIGNhbGxiYWNrKCk7
CiAgICAgfQogICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgvbm9uc3RyaW5nLywgbXljYWxs
YmFjayk7CiB9OwpAQCAtMjAzLDQgKzIwNCw0IEBAIEluc3BlY3RvclRlc3QuZHVtcERPTUFnZW50
VHJlZSA9IGZ1bmN0aW9uKCkKICAgICBkdW1wKFdlYkluc3BlY3Rvci5kb21BZ2VudC5kb2N1bWVu
dCwgIiIsIFdlYkluc3BlY3Rvci5kb21BZ2VudC5kb2N1bWVudC5pZCAtIDEpOwogfTsKIAotfTsK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcwppbmRleCBhOTI1YjExOGU4Y2FkYTFi
MjM0ZjJiOTkzMjUwMjA2ZmFiZTFhNjU5Li45MWFmODA1OTI3NTA1ZGEyMThjZTMyNWMyZTBlODhl
OGNiYTg1YTI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcwpAQCAtMTAsNDIgKzEwLDQ1IEBAIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0ID0gZnVuY3Rpb24oKQogCiBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlID0g
ZnVuY3Rpb24oY29kZSwgY2FsbGJhY2spCiB7CisgICAgY2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0
LnNhZmVXcmFwKGNhbGxiYWNrKTsKKwogICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLnZpc2libGUg
PSB0cnVlOwogICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLnByb21wdC50ZXh0ID0gY29kZTsKICAg
ICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiS2V5Ym9hcmRFdmVudCIpOwogICAg
IGV2ZW50LmluaXRLZXlib2FyZEV2ZW50KCJrZXlkb3duIiwgdHJ1ZSwgdHJ1ZSwgbnVsbCwgIkVu
dGVyIiwgIiIpOwogICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLnByb21wdEVsZW1lbnQuZGlzcGF0
Y2hFdmVudChldmVudCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0
b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsCisgICAgSW5zcGVjdG9yVGVz
dC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNz
YWdlIiwKICAgICAgICAgZnVuY3Rpb24oY29tbWFuZFJlc3VsdCkgewotICAgICAgICAgICAgaWYg
KGNhbGxiYWNrKQotICAgICAgICAgICAgICAgIGNhbGxiYWNrKGNvbW1hbmRSZXN1bHQudG9NZXNz
YWdlRWxlbWVudCgpLnRleHRDb250ZW50KTsKKyAgICAgICAgICAgIGNhbGxiYWNrKGNvbW1hbmRS
ZXN1bHQudG9NZXNzYWdlRWxlbWVudCgpLnRleHRDb250ZW50KTsKICAgICAgICAgfSk7CiB9CiAK
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGVBbmREdW1wID0gZnVuY3Rpb24oY29kZSwg
Y2FsbGJhY2spCiB7CisgICAgY2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNhbGxi
YWNrKTsKKwogICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2sodGV4dCkKICAgICB7CiAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KGNvZGUgKyAiID0gIiArIHRleHQpOwotICAgICAgICBpZiAo
Y2FsbGJhY2spCi0gICAgICAgICAgICBjYWxsYmFjayh0ZXh0KTsKKyAgICAgICAgY2FsbGJhY2so
dGV4dCk7CiAgICAgfQogICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoY29kZSwg
bXljYWxsYmFjayk7CiB9CiAKIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UgPSBmdW5jdGlv
bihjb2RlLCBjYWxsYmFjaykKIHsKKyAgICBjYWxsYmFjayA9IEluc3BlY3RvclRlc3Quc2FmZVdy
YXAoY2FsbGJhY2spOworCiAgICAgZnVuY3Rpb24gbXljYWxsYmFjayhyZXN1bHQpCiAgICAgewot
ICAgICAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3Iu
UmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3VsdCkpOworICAgICAgICBjYWxsYmFjayhXZWJJ
bnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3VsdCkpOwogICAgIH0KICAgICBS
dW50aW1lQWdlbnQuZXZhbHVhdGUoY29kZSwgImNvbnNvbGUiLCBmYWxzZSwgbXljYWxsYmFjayk7
CiB9CiAKLUluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCA9IGZ1bmN0aW9u
KGNvZGUsIGNhbGxiYWNrKQorSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0
ID0gZnVuY3Rpb24oY29kZSkKIHsKLSAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJz
ZXRUaW1lb3V0KHVuZXNjYXBlKCciICsgZXNjYXBlKGNvZGUpICsgIicpKSIsIGNhbGxiYWNrKTsK
KyAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KHVuZXNjYXBlKCci
ICsgZXNjYXBlKGNvZGUpICsgIicpKSIpOwogfQogCiBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCA9
IGZ1bmN0aW9uKHRleHQpCkBAIC0xMDUsNyArMTA4LDcgQEAgSW5zcGVjdG9yVGVzdC5hZGRPYmpl
Y3QgPSBmdW5jdGlvbihvYmplY3QsIG5vbmRldGVybWluaXN0aWNQcm9wcywgcHJlZml4LCBmaXJz
dEwKIAogSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlID0gZnVuY3Rpb24oY2FsbGJhY2spCiB7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5fcmVsb2FkUGFnZUNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgSW5z
cGVjdG9yVGVzdC5fcmVsb2FkUGFnZUNhbGxiYWNrID0gSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChj
YWxsYmFjayk7CiAKICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrKQogICAgICAg
ICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsuX3Jlc2V0KCk7CkBAIC0xMjUsNiArMTI4LDgg
QEAgSW5zcGVjdG9yVGVzdC5wYWdlUmVsb2FkZWQgPSBmdW5jdGlvbigpCiAKIEluc3BlY3RvclRl
c3QucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogeworICAg
IGNhbGxiYWNrID0gSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChjYWxsYmFjayk7CisKICAgICBXZWJJ
bnNwZWN0b3IuVGVzdENvbnRyb2xsZXIucHJvdG90eXBlLnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNo
ZXMoY2FsbGJhY2spOwogfQogCkBAIC0xNDUsMTUgKzE1MCwzNSBAQCBJbnNwZWN0b3JUZXN0LnJ1
blRlc3RTdWl0ZSA9IGZ1bmN0aW9uKHRlc3RTdWl0ZSkKICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAg
ICAgdmFyIG5leHRUZXN0RnVuY3Rpb24gPSB0ZXN0U3VpdGVUZXN0cy5zaGlmdCgpOwotICAgICAg
ICBuZXh0VGVzdEZ1bmN0aW9uKHJ1bm5lcik7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2FmZVdy
YXAodGVzdFN1aXRlVGVzdHMuc2hpZnQoKSkocnVubmVyLCBydW5uZXIpOwogICAgIH0KLQogICAg
IHJ1bm5lcigpOwogfQogCi1JbnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyID0gZnVuY3Rpb24ocmVj
ZWl2ZXIsIG1ldGhvZE5hbWUsIG92ZXJyaWRlLCBvcHRfc3RpY2t5KQorSW5zcGVjdG9yVGVzdC5z
YWZlV3JhcCA9IGZ1bmN0aW9uKGZ1bmMsIG9uZXhjZXB0aW9uKQoreworICAgIGZ1bmN0aW9uIHJl
c3VsdCgpCisgICAgeworICAgICAgICBpZiAoIWZ1bmMpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIHZhciB3cmFwVGhpcyA9IHRoaXM7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBy
ZXR1cm4gZnVuYy5hcHBseSh3cmFwVGhpcywgYXJndW1lbnRzKTsKKyAgICAgICAgfSBjYXRjaChl
KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRXhjZXB0aW9uIHdoaWxl
IHJ1bm5pbmc6ICIgKyBmdW5jICsgIlxuIiArIGUpOworICAgICAgICAgICAgaWYgKG9uZXhjZXB0
aW9uKQorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2FmZVdyYXAob25leGNlcHRpb24p
KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitJ
bnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIgPSBmdW5jdGlvbihyZWNlaXZlciwgbWV0aG9kTmFtZSwg
b3ZlcnJpZGUsIG9wdF9zdGlja3kpCiB7CisgICAgb3ZlcnJpZGUgPSBJbnNwZWN0b3JUZXN0LnNh
ZmVXcmFwKG92ZXJyaWRlKTsKKwogICAgIHZhciBvcmlnaW5hbCA9IHJlY2VpdmVyW21ldGhvZE5h
bWVdOwogICAgIGlmICh0eXBlb2Ygb3JpZ2luYWwgIT09ICJmdW5jdGlvbiIpCiAgICAgICAgIHRo
cm93ICgiQ2Fubm90IGZpbmQgbWV0aG9kIHRvIG92ZXJyaWRlOiAiICsgbWV0aG9kTmFtZSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJh
bWV0ZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1w
YXJhbWV0ZXJzLmh0bWwKaW5kZXggY2NkMmUyNGNmODM0Yjc1ZDNhNWYwM2RhNjBiZmMzNDJkZWEw
ODVhOC4uOWE2ZTBlNjM0YWUyODhiMzRiMzVhMDYxYTI4NzE1MDFjOWExMmQxOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFt
ZXRlcnMuaHRtbApAQCAtMTIsNyArMTIsNyBAQCBmdW5jdGlvbiBzdWJtaXQoKQogZnVuY3Rpb24g
dGVzdCgpCiB7CiAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgic3VibWl0KCkiKTsK
LSAgICBJbnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrRGlzcGF0
Y2hlci5wcm90b3R5cGUsICJkaWRGaW5pc2hMb2FkaW5nIiwgZHVtcEhBUik7CisgICAgSW5zcGVj
dG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5
cGUsICJkaWRGaW5pc2hMb2FkaW5nIiwgZHVtcEhBUik7CiAKICAgICBmdW5jdGlvbiBkdW1wSEFS
KCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLWFzc2VydC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1h
c3NlcnQuaHRtbAppbmRleCBmMzNmZDA0OWM1NDFlMWY2YTAyMGQ5NDZiMWRlOGE1N2RhMzA3YWIy
Li5kY2I5OTU3YWM3YWU1MzE4OWM4YWM0MjFmZWE4NTI0NDM1ZmU5ZDdiIDEwMDc1NQotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWFzc2VydC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtYXNzZXJ0Lmh0bWwKQEAgLTI3LDcg
KzI3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIH0KICAgICB9CiAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZSgic2V0VGltZW91dChhLCAwKSIpOwotICAgIEluc3BlY3RvclRl
c3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1l
c3NhZ2UiLCBjYWxsYmFjaywgdHJ1ZSk7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdl
Ykluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgY2FsbGJhY2ss
IHRydWUpOwogfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9jb25zb2xlL2NvbnNvbGUtdHJhY2UtaW4tZXZhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY29uc29sZS10cmFjZS1pbi1ldmFsLmh0bWwKaW5kZXggNTQ2N2U0YjJmMjQ3
YTZjMzhjMzk5YjNiMzM0MTUyM2Y5MTZjOWE1ZC4uMDAzZjI0M2RkNGYwMWVlYWE2MWEzNWU4ZjRm
ZjhhOTRjYWQxNTc0ZCAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS10cmFjZS1pbi1ldmFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nv
bnNvbGUvY29uc29sZS10cmFjZS1pbi1ldmFsLmh0bWwKQEAgLTM1LDcgKzM1LDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAgICAgfQog
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImRvRXZhbFNvdXJjZSgpIik7Ci0gICAg
SW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90
eXBlLCAiYWRkTWVzc2FnZSIsIGNhbGxiYWNrKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZm
ZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBjYWxs
YmFjayk7CiB9CiAKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvY29uc29sZS10cmFjZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUvY29uc29sZS10cmFjZS5odG1sCmluZGV4IDAyYTk1N2YwNjVkN2Y3NGE0ZmQwZmYzZjJmNTlh
ODg5MzAzYzIxMTQuLmJlMmMyZjFlYmI4NjE0NmIzNjMwMTcwNjg4NDM3YzhhMDAwNGUyYjkgMTAw
NzU1Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtdHJhY2UuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLXRyYWNlLmh0bWwK
QEAgLTIyLDcgKzIyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7CiAgICAgfQogICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
InNldFRpbWVvdXQoYSwgMCkiKTsKLSAgICBJbnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYklu
c3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgY2FsbGJhY2spOwor
ICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJv
dG90eXBlLCAiYWRkTWVzc2FnZSIsIGNhbGxiYWNrKTsKIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMt
ZXhwZWN0ZWQudHh0CmluZGV4IDYzNmUwZWQ4NjQ1NmFiZGNkOTRkNzZkZDc3NmY0NGQ5ZGZiOTVh
MDguLmI3NDc0NjU2Yjc1YTdmMWYxYjIwZTcwMDEwZTQwMGZjYTQ2NmNhNDkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMt
ZXhwZWN0ZWQudHh0CkBAIC02LDcgKzYsNyBAQCBTZXQgJ1N1YnRyZWUgTW9kaWZpZWQnIERPTSBi
cmVha3BvaW50IG9uIHJvb3RFbGVtZW50LgogQXBwZW5kIGNoaWxkRWxlbWVudCB0byByb290RWxl
bWVudC4KIFNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgogQ2FsbCBzdGFjazoKLSAgICAwKSBhcHBl
bmRFbGVtZW50IChkb20tYnJlYWtwb2ludHMuaHRtbDoxMSkKKyAgICAwKSBhcHBlbmRFbGVtZW50
IChkb20tYnJlYWtwb2ludHMuaHRtbDoxMikKICAgICAxKSAgKDoxKQogUGF1c2VkIG9uIGEgIlN1
YnRyZWUgTW9kaWZpZWQiIGJyZWFrcG9pbnQgc2V0IG9uIGRpdiNyb290RWxlbWVudCwgYmVjYXVz
ZSBhIG5ldyBjaGlsZCB3YXMgYWRkZWQgdG8gdGhhdCBub2RlLgogU2NyaXB0IGV4ZWN1dGlvbiBy
ZXN1bWVkLgpAQCAtMTQsNyArMTQsNyBAQCBUZXN0IHRoYXQgJ1N1YnRyZWUgTW9kaWZpZWQnIGJy
ZWFrcG9pbnQgaXMgaGl0IHdoZW4gYXBwZW5kaW5nIGEgZ3JhbmRjaGlsZC4KIEFwcGVuZCBncmFu
ZGNoaWxkRWxlbWVudCB0byBjaGlsZEVsZW1lbnQuCiBTY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4K
IENhbGwgc3RhY2s6Ci0gICAgMCkgYXBwZW5kRWxlbWVudCAoZG9tLWJyZWFrcG9pbnRzLmh0bWw6
MTEpCisgICAgMCkgYXBwZW5kRWxlbWVudCAoZG9tLWJyZWFrcG9pbnRzLmh0bWw6MTIpCiAgICAg
MSkgICg6MSkKIFBhdXNlZCBvbiBhICJTdWJ0cmVlIE1vZGlmaWVkIiBicmVha3BvaW50IHNldCBv
biBkaXYjcm9vdEVsZW1lbnQsIGJlY2F1c2UgYSBuZXcgY2hpbGQgd2FzIGFkZGVkIHRvIGl0cyBk
ZXNjZW5kYW50IGRpdiNjaGlsZEVsZW1lbnQuCiBTY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCkBA
IC0yMiw3ICsyMiw3IEBAIFRlc3QgdGhhdCAnU3VidHJlZSBNb2RpZmllZCcgYnJlYWtwb2ludCBp
cyBoaXQgd2hlbiByZW1vdmluZyBhIGNoaWxkLgogUmVtb3ZlIGdyYW5kY2hpbGRFbGVtZW50Lgog
U2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCiBDYWxsIHN0YWNrOgotICAgIDApIHJlbW92ZUVsZW1l
bnQgKGRvbS1icmVha3BvaW50cy5odG1sOjIzKQorICAgIDApIHJlbW92ZUVsZW1lbnQgKGRvbS1i
cmVha3BvaW50cy5odG1sOjI0KQogICAgIDEpICAoOjEpCiBQYXVzZWQgb24gYSAiU3VidHJlZSBN
b2RpZmllZCIgYnJlYWtwb2ludCBzZXQgb24gZGl2I3Jvb3RFbGVtZW50LCBiZWNhdXNlIGl0cyBk
ZXNjZW5kYW50IGRpdiNncmFuZGNoaWxkRWxlbWVudCB3YXMgcmVtb3ZlZC4KIFNjcmlwdCBleGVj
dXRpb24gcmVzdW1lZC4KQEAgLTMxLDE3ICszMSwxNiBAQCBTZXQgJ0F0dHJpYnV0ZSBNb2RpZmll
ZCcgRE9NIGJyZWFrcG9pbnQgb24gcm9vdEVsZW1lbnQuCiBNb2RpZnkgcm9vdEVsZW1lbnQgY2xh
c3NOYW1lLgogU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCiBDYWxsIHN0YWNrOgotICAgIDApIG1v
ZGlmeUF0dHJpYnV0ZSAoZG9tLWJyZWFrcG9pbnRzLmh0bWw6MTcpCisgICAgMCkgbW9kaWZ5QXR0
cmlidXRlIChkb20tYnJlYWtwb2ludHMuaHRtbDoxOCkKICAgICAxKSAgKDoxKQogUGF1c2VkIG9u
IGEgIkF0dHJpYnV0ZSBNb2RpZmllZCIgYnJlYWtwb2ludCBzZXQgb24gZGl2I3Jvb3RFbGVtZW50
LgogU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgogVGVzdCB0aGF0ICdOb2RlIFJlbW92ZWQnIGJy
ZWFrcG9pbnQgaXMgaGl0IHdoZW4gcmVtb3ZpbmcgYSBub2RlLgotQXBwZW5kIGVsZW1lbnRUb1Jl
bW92ZSB0byByb290RWxlbWVudC4KIFNldCAnTm9kZSBSZW1vdmVkJyBET00gYnJlYWtwb2ludCBv
biBlbGVtZW50VG9SZW1vdmUuCiBSZW1vdmUgZWxlbWVudFRvUmVtb3ZlLgogU2NyaXB0IGV4ZWN1
dGlvbiBwYXVzZWQuCiBDYWxsIHN0YWNrOgotICAgIDApIHJlbW92ZUVsZW1lbnQgKGRvbS1icmVh
a3BvaW50cy5odG1sOjIzKQorICAgIDApIHJlbW92ZUVsZW1lbnQgKGRvbS1icmVha3BvaW50cy5o
dG1sOjI0KQogICAgIDEpICAoOjEpCiBQYXVzZWQgb24gYSAiTm9kZSBSZW1vdmVkIiBicmVha3Bv
aW50IHNldCBvbiBkaXYjZWxlbWVudFRvUmVtb3ZlLgogU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVk
LgpAQCAtNTEsNyArNTAsNyBAQCBQYWdlIHJlbG9hZGVkLgogQXBwZW5kIGNoaWxkRWxlbWVudCB0
byByb290RWxlbWVudC4KIFNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgogQ2FsbCBzdGFjazoKLSAg
ICAwKSBhcHBlbmRFbGVtZW50IChkb20tYnJlYWtwb2ludHMuaHRtbDoxMSkKKyAgICAwKSBhcHBl
bmRFbGVtZW50IChkb20tYnJlYWtwb2ludHMuaHRtbDoxMikKICAgICAxKSAgKDoxKQogUGF1c2Vk
IG9uIGEgIlN1YnRyZWUgTW9kaWZpZWQiIGJyZWFrcG9pbnQgc2V0IG9uIGRpdiNyb290RWxlbWVu
dCwgYmVjYXVzZSBhIG5ldyBjaGlsZCB3YXMgYWRkZWQgdG8gdGhhdCBub2RlLgogU2NyaXB0IGV4
ZWN1dGlvbiByZXN1bWVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2RvbS1icmVha3BvaW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2RvbS1icmVha3BvaW50cy5odG1sCmluZGV4IGRkN2I0MGI5OTZkYTBhNjYwNDI4NWMyZTVlYzc2
MTkzMDU0MzM5YzAuLmI2NDI2Zjc4NWViOGU4M2ZjZDY4YzE5ZTdlODkzYWMxN2NlNzVkN2UgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRz
Lmh0bWwKQEAgLTEsNiArMSw3IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10
ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKQEAgLTIzLDEzNCArMjQsMTAwIEBAIGZ1bmN0
aW9uIHJlbW92ZUVsZW1lbnQoZWxlbWVudElkKQogICAgIGVsZW1lbnQucGFyZW50Tm9kZS5yZW1v
dmVDaGlsZChlbGVtZW50KTsKIH0KIAotdmFyIHRlc3QgPSBmdW5jdGlvbigpCitmdW5jdGlvbiB0
ZXN0KCkKIHsKICAgICB2YXIgcm9vdEVsZW1lbnQ7Ci0gICAgdGVzdEluc2VydENoaWxkID0ge307
Ci0gICAgdGVzdEluc2VydENoaWxkLnN0ZXAxID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRlc3QgdGhhdCAnU3VidHJlZSBNb2RpZmllZCcgYnJl
YWtwb2ludCBpcyBoaXQgd2hlbiBhcHBlbmRpbmcgYSBjaGlsZC4iKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5ub2RlV2l0aElkKCJyb290RWxlbWVudCIsIHRlc3RJbnNlcnRDaGlsZC5zdGVwMik7
Ci0gICAgfTsKLSAgICB0ZXN0SW5zZXJ0Q2hpbGQuc3RlcDIgPSBmdW5jdGlvbihub2RlKQotICAg
IHsKLSAgICAgICAgcm9vdEVsZW1lbnQgPSBub2RlOwotICAgICAgICBXZWJJbnNwZWN0b3IuYnJl
YWtwb2ludE1hbmFnZXIuY3JlYXRlRE9NQnJlYWtwb2ludChub2RlLmlkLCBXZWJJbnNwZWN0b3Iu
RE9NQnJlYWtwb2ludFR5cGVzLlN1YnRyZWVNb2RpZmllZCk7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJTZXQgJ1N1YnRyZWUgTW9kaWZpZWQnIERPTSBicmVha3BvaW50IG9uIHJv
b3RFbGVtZW50LiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRp
bWVvdXQoImFwcGVuZEVsZW1lbnQoJ3Jvb3RFbGVtZW50JywgJ2NoaWxkRWxlbWVudCcpIik7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBcHBlbmQgY2hpbGRFbGVtZW50IHRvIHJv
b3RFbGVtZW50LiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZCh0ZXN0
SW5zZXJ0Q2hpbGQuc3RlcDMpOwotICAgIH07Ci0gICAgdGVzdEluc2VydENoaWxkLnN0ZXAzID0g
ZnVuY3Rpb24oY2FsbEZyYW1lcykKLSAgICB7Ci0gICAgICAgIGR1bXBTdGF0dXMoY2FsbEZyYW1l
cyk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKHRlc3RJbnNlcnRHcmFu
ZGNoaWxkLnN0ZXAxKTsKLSAgICB9OwotCi0gICAgdmFyIHRlc3RJbnNlcnRHcmFuZGNoaWxkID0g
e307Ci0gICAgdGVzdEluc2VydEdyYW5kY2hpbGQuc3RlcDEgPSBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCB0aGF0ICdTdWJ0cmVlIE1vZGlm
aWVkJyBicmVha3BvaW50IGlzIGhpdCB3aGVuIGFwcGVuZGluZyBhIGdyYW5kY2hpbGQuIik7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgiYXBwZW5kRWxl
bWVudCgnY2hpbGRFbGVtZW50JywgJ2dyYW5kY2hpbGRFbGVtZW50JykiKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFwcGVuZCBncmFuZGNoaWxkRWxlbWVudCB0byBjaGlsZEVs
ZW1lbnQuIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHRlc3RJbnNl
cnRHcmFuZGNoaWxkLnN0ZXAyKTsKLSAgICB9Ci0gICAgdGVzdEluc2VydEdyYW5kY2hpbGQuc3Rl
cDIgPSBmdW5jdGlvbihjYWxsRnJhbWVzKQotICAgIHsKLSAgICAgICAgZHVtcFN0YXR1cyhjYWxs
RnJhbWVzKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXN1bWVFeGVjdXRpb24odGVzdFJlbW92
ZUNoaWxkLnN0ZXAxKTsKLSAgICB9Ci0KLSAgICB2YXIgdGVzdFJlbW92ZUNoaWxkID0ge307Ci0g
ICAgdGVzdFJlbW92ZUNoaWxkLnN0ZXAxID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRlc3QgdGhhdCAnU3VidHJlZSBNb2RpZmllZCcgYnJlYWtw
b2ludCBpcyBoaXQgd2hlbiByZW1vdmluZyBhIGNoaWxkLiIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoInJlbW92ZUVsZW1lbnQoJ2dyYW5kY2hpbGRF
bGVtZW50JykiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJlbW92ZSBncmFu
ZGNoaWxkRWxlbWVudC4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWQo
dGVzdFJlbW92ZUNoaWxkLnN0ZXAyKTsKLQotICAgIH0KLSAgICB0ZXN0UmVtb3ZlQ2hpbGQuc3Rl
cDIgPSBmdW5jdGlvbihjYWxsRnJhbWVzKQotICAgIHsKLSAgICAgICAgZHVtcFN0YXR1cyhjYWxs
RnJhbWVzKTsKLSAgICAgICAgcm9vdEVsZW1lbnQuYnJlYWtwb2ludHNbV2ViSW5zcGVjdG9yLkRP
TUJyZWFrcG9pbnRUeXBlcy5TdWJ0cmVlTW9kaWZpZWRdLnJlbW92ZSgpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbih0ZXN0TW9kaWZ5QXR0cmlidXRlLnN0ZXAxKTsKLSAg
ICB9Ci0KLSAgICB2YXIgdGVzdE1vZGlmeUF0dHJpYnV0ZSA9IHt9OwotICAgIHRlc3RNb2RpZnlB
dHRyaWJ1dGUuc3RlcDEgPSBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiVGVzdCB0aGF0ICdBdHRyaWJ1dGUgTW9kaWZpZWQnIGJyZWFrcG9pbnQgaXMg
aGl0IHdoZW4gbW9kaWZ5aW5nIGF0dHJpYnV0ZS4iKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmJy
ZWFrcG9pbnRNYW5hZ2VyLmNyZWF0ZURPTUJyZWFrcG9pbnQocm9vdEVsZW1lbnQuaWQsIFdlYklu
c3BlY3Rvci5ET01CcmVha3BvaW50VHlwZXMuQXR0cmlidXRlTW9kaWZpZWQpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0ICdBdHRyaWJ1dGUgTW9kaWZpZWQnIERPTSBicmVh
a3BvaW50IG9uIHJvb3RFbGVtZW50LiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlV2l0aFRpbWVvdXQoIm1vZGlmeUF0dHJpYnV0ZSgncm9vdEVsZW1lbnQnLCAnY2xhc3NO
YW1lJywgJ2ZvbycpIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJNb2RpZnkg
cm9vdEVsZW1lbnQgY2xhc3NOYW1lLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRp
bFBhdXNlZCh0ZXN0TW9kaWZ5QXR0cmlidXRlLnN0ZXAyLmJpbmQobnVsbCkpOwotICAgIH0KLSAg
ICB0ZXN0TW9kaWZ5QXR0cmlidXRlLnN0ZXAyID0gZnVuY3Rpb24oY2FsbEZyYW1lcykKLSAgICB7
Ci0gICAgICAgIGR1bXBTdGF0dXMoY2FsbEZyYW1lcyk7Ci0gICAgICAgIHJvb3RFbGVtZW50LmJy
ZWFrcG9pbnRzW1dlYkluc3BlY3Rvci5ET01CcmVha3BvaW50VHlwZXMuQXR0cmlidXRlTW9kaWZp
ZWRdLnJlbW92ZSgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbih0ZXN0
UmVtb3ZlTm9kZS5zdGVwMSk7Ci0gICAgfQotCi0gICAgdmFyIHRlc3RSZW1vdmVOb2RlID0ge307
Ci0gICAgdGVzdFJlbW92ZU5vZGUuc3RlcDEgPSBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVGVzdCB0aGF0ICdOb2RlIFJlbW92ZWQnIGJyZWFrcG9p
bnQgaXMgaGl0IHdoZW4gcmVtb3ZpbmcgYSBub2RlLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoImFwcGVuZEVsZW1lbnQoJ3Jvb3RFbGVtZW50Jywg
J2VsZW1lbnRUb1JlbW92ZScpIiwgdGVzdFJlbW92ZU5vZGUuc3RlcDIpOwotICAgIH0KLSAgICB0
ZXN0UmVtb3ZlTm9kZS5zdGVwMiA9IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJBcHBlbmQgZWxlbWVudFRvUmVtb3ZlIHRvIHJvb3RFbGVtZW50LiIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoImVsZW1lbnRUb1JlbW92ZSIsIHRl
c3RSZW1vdmVOb2RlLnN0ZXAzKTsKLSAgICB9Ci0gICAgdGVzdFJlbW92ZU5vZGUuc3RlcDMgPSBm
dW5jdGlvbihub2RlKQotICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmJyZWFrcG9pbnRNYW5h
Z2VyLmNyZWF0ZURPTUJyZWFrcG9pbnQobm9kZS5pZCwgV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9p
bnRUeXBlcy5Ob2RlUmVtb3ZlZCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJT
ZXQgJ05vZGUgUmVtb3ZlZCcgRE9NIGJyZWFrcG9pbnQgb24gZWxlbWVudFRvUmVtb3ZlLiIpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoInJlbW92ZUVs
ZW1lbnQoJ2VsZW1lbnRUb1JlbW92ZScpIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJSZW1vdmUgZWxlbWVudFRvUmVtb3ZlLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0Lndh
aXRVbnRpbFBhdXNlZCh0ZXN0UmVtb3ZlTm9kZS5zdGVwNCk7Ci0gICAgfQotICAgIHRlc3RSZW1v
dmVOb2RlLnN0ZXA0ID0gZnVuY3Rpb24oY2FsbEZyYW1lcykKLSAgICB7Ci0gICAgICAgIGR1bXBT
dGF0dXMoY2FsbEZyYW1lcyk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9u
KHRlc3RSZWxvYWQuc3RlcDEpOwotICAgIH0KLQotICAgIHZhciB0ZXN0UmVsb2FkPSB7fTsKLSAg
ICB0ZXN0UmVsb2FkLnN0ZXAxID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlRlc3QgdGhhdCBET00gYnJlYWtwb2ludHMgYXJlIHBlcnNpc3RlZCBi
ZXR3ZWVuIHBhZ2UgcmVsb2Fkcy4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElk
KCJyb290RWxlbWVudCIsIHRlc3RSZWxvYWQuc3RlcDIpOwotICAgIH0KLSAgICB0ZXN0UmVsb2Fk
LnN0ZXAyID0gZnVuY3Rpb24obm9kZSkKLSAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5icmVh
a3BvaW50TWFuYWdlci5jcmVhdGVET01CcmVha3BvaW50KG5vZGUuaWQsIFdlYkluc3BlY3Rvci5E
T01CcmVha3BvaW50VHlwZXMuU3VidHJlZU1vZGlmaWVkKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIlNldCAnU3VidHJlZSBNb2RpZmllZCcgRE9NIGJyZWFrcG9pbnQgb24gcm9v
dEVsZW1lbnQuIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh0ZXN0UmVsb2Fk
LnN0ZXAzKTsKLSAgICB9Ci0gICAgdGVzdFJlbG9hZC5zdGVwMyA9IGZ1bmN0aW9uKCkKLSAgICB7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgiYXBwZW5k
RWxlbWVudCgncm9vdEVsZW1lbnQnLCAnY2hpbGRFbGVtZW50JykiKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIkFwcGVuZCBjaGlsZEVsZW1lbnQgdG8gcm9vdEVsZW1lbnQuIik7
Ci0gICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkKHRlc3RSZWxvYWQuc3RlcDQp
OwotICAgIH0KLSAgICB0ZXN0UmVsb2FkLnN0ZXA0ID0gZnVuY3Rpb24oY2FsbEZyYW1lcykKLSAg
ICB7Ci0gICAgICAgIGR1bXBTdGF0dXMoY2FsbEZyYW1lcyk7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVEZWJ1Z2dlclRlc3QoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wU3Rh
dHVzKGNhbGxGcmFtZXMpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFj
a1RyYWNlKGNhbGxGcmFtZXMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChXZWJJ
bnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2lkZWJhclBhbmVzLmNhbGxzdGFjay5ib2R5RWxlbWVu
dC5sYXN0Q2hpbGQuaW5uZXJUZXh0KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnN0YXJ0
RGVidWdnZXJUZXN0KHRlc3RJbnNlcnRDaGlsZC5zdGVwMSk7Ci19OworICAgIEluc3BlY3RvclRl
c3QucnVuRGVidWdnZXJUZXN0U3VpdGUoWworICAgICAgICBmdW5jdGlvbiB0ZXN0SW5zZXJ0Q2hp
bGQobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlRlc3QgdGhhdCAnU3VidHJlZSBNb2RpZmllZCcgYnJlYWtwb2ludCBpcyBoaXQgd2hlbiBhcHBl
bmRpbmcgYSBjaGlsZC4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgi
cm9vdEVsZW1lbnQiLCBzdGVwMik7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKG5vZGUp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcm9vdEVsZW1lbnQgPSBub2RlOworICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlci5jcmVhdGVET01CcmVh
a3BvaW50KG5vZGUuaWQsIFdlYkluc3BlY3Rvci5ET01CcmVha3BvaW50VHlwZXMuU3VidHJlZU1v
ZGlmaWVkKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0ICdT
dWJ0cmVlIE1vZGlmaWVkJyBET00gYnJlYWtwb2ludCBvbiByb290RWxlbWVudC4iKTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlV2l0aFRpbWVvdXQoImFwcGVu
ZEVsZW1lbnQoJ3Jvb3RFbGVtZW50JywgJ2NoaWxkRWxlbWVudCcpIik7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFwcGVuZCBjaGlsZEVsZW1lbnQgdG8gcm9vdEVs
ZW1lbnQuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWRB
bmREdW1wU3RhY2sobmV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisKKyAgICAgICAg
ZnVuY3Rpb24gdGVzdEluc2VydEdyYW5kY2hpbGQobmV4dCkKKyAgICAgICAgeworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRlc3QgdGhhdCAnU3VidHJlZSBNb2RpZmllZCcg
YnJlYWtwb2ludCBpcyBoaXQgd2hlbiBhcHBlbmRpbmcgYSBncmFuZGNoaWxkLiIpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0KCJhcHBlbmRFbGVt
ZW50KCdjaGlsZEVsZW1lbnQnLCAnZ3JhbmRjaGlsZEVsZW1lbnQnKSIpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFwcGVuZCBncmFuZGNoaWxkRWxlbWVudCB0byBjaGls
ZEVsZW1lbnQuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZEFu
ZER1bXBTdGFjayhuZXh0KTsKKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0UmVt
b3ZlQ2hpbGQobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIlRlc3QgdGhhdCAnU3VidHJlZSBNb2RpZmllZCcgYnJlYWtwb2ludCBpcyBoaXQgd2hl
biByZW1vdmluZyBhIGNoaWxkLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZVdpdGhUaW1lb3V0KCJyZW1vdmVFbGVtZW50KCdncmFuZGNoaWxkRWxlbWVudCcpIik7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVtb3ZlIGdyYW5kY2hpbGRF
bGVtZW50LiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWRBbmRE
dW1wU3RhY2soc3RlcDIpOworCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgcm9vdEVsZW1lbnQuYnJlYWtwb2ludHNbV2ViSW5zcGVj
dG9yLkRPTUJyZWFrcG9pbnRUeXBlcy5TdWJ0cmVlTW9kaWZpZWRdLnJlbW92ZSgpOworICAgICAg
ICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAgICBm
dW5jdGlvbiB0ZXN0TW9kaWZ5QXR0cmlidXRlKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0IHRoYXQgJ0F0dHJpYnV0ZSBNb2RpZmllZCcg
YnJlYWtwb2ludCBpcyBoaXQgd2hlbiBtb2RpZnlpbmcgYXR0cmlidXRlLiIpOworICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmJyZWFrcG9pbnRNYW5hZ2VyLmNyZWF0ZURPTUJyZWFrcG9pbnQocm9v
dEVsZW1lbnQuaWQsIFdlYkluc3BlY3Rvci5ET01CcmVha3BvaW50VHlwZXMuQXR0cmlidXRlTW9k
aWZpZWQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldCAnQXR0cmli
dXRlIE1vZGlmaWVkJyBET00gYnJlYWtwb2ludCBvbiByb290RWxlbWVudC4iKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgibW9kaWZ5QXR0cmli
dXRlKCdyb290RWxlbWVudCcsICdjbGFzc05hbWUnLCAnZm9vJykiKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJNb2RpZnkgcm9vdEVsZW1lbnQgY2xhc3NOYW1lLiIpOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC53YWl0VW50aWxQYXVzZWRBbmREdW1wU3RhY2soc3Rl
cDIpOworICAgIAorICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoY2FsbEZyYW1lcykKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICByb290RWxlbWVudC5icmVha3BvaW50c1tXZWJJbnNw
ZWN0b3IuRE9NQnJlYWtwb2ludFR5cGVzLkF0dHJpYnV0ZU1vZGlmaWVkXS5yZW1vdmUoKTsKKyAg
ICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisKKyAgICAg
ICAgZnVuY3Rpb24gdGVzdFJlbW92ZU5vZGUobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlRlc3QgdGhhdCAnTm9kZSBSZW1vdmVkJyBicmVha3Bv
aW50IGlzIGhpdCB3aGVuIHJlbW92aW5nIGEgbm9kZS4iKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Qubm9kZVdpdGhJZCgiZWxlbWVudFRvUmVtb3ZlIiwgc3RlcDIpOworCisgICAgICAgICAg
ICBmdW5jdGlvbiBzdGVwMihub2RlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlci5jcmVhdGVET01CcmVha3BvaW50KG5vZGUuaWQs
IFdlYkluc3BlY3Rvci5ET01CcmVha3BvaW50VHlwZXMuTm9kZVJlbW92ZWQpOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZXQgJ05vZGUgUmVtb3ZlZCcgRE9NIGJy
ZWFrcG9pbnQgb24gZWxlbWVudFRvUmVtb3ZlLiIpOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXZhbHVhdGVJblBhZ2VXaXRoVGltZW91dCgicmVtb3ZlRWxlbWVudCgnZWxlbWVudFRv
UmVtb3ZlJykiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVt
b3ZlIGVsZW1lbnRUb1JlbW92ZS4iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lndh
aXRVbnRpbFBhdXNlZEFuZER1bXBTdGFjayhuZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0UmVsb2FkKG5leHQpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJUZXN0IHRoYXQgRE9NIGJyZWFrcG9pbnRz
IGFyZSBwZXJzaXN0ZWQgYmV0d2VlbiBwYWdlIHJlbG9hZHMuIik7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0Lm5vZGVXaXRoSWQoInJvb3RFbGVtZW50Iiwgc3RlcDIpOworCisgICAgICAgICAg
ICBmdW5jdGlvbiBzdGVwMihub2RlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlci5jcmVhdGVET01CcmVha3BvaW50KG5vZGUuaWQs
IFdlYkluc3BlY3Rvci5ET01CcmVha3BvaW50VHlwZXMuU3VidHJlZU1vZGlmaWVkKTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0ICdTdWJ0cmVlIE1vZGlmaWVk
JyBET00gYnJlYWtwb2ludCBvbiByb290RWxlbWVudC4iKTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoc3RlcDMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBmdW5jdGlvbiBzdGVwMygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZVdpdGhUaW1lb3V0KCJhcHBlbmRFbGVtZW50KCdyb290RWxl
bWVudCcsICdjaGlsZEVsZW1lbnQnKSIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJBcHBlbmQgY2hpbGRFbGVtZW50IHRvIHJvb3RFbGVtZW50LiIpOworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdFVudGlsUGF1c2VkQW5kRHVtcFN0YWNrKG5leHQp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgXSk7Cit9CiAKIDwvc2NyaXB0PgogPC9o
ZWFkPgpAQCAtMTU5LDcgKzEyNiwxMCBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKIDxwPgogVGVz
dHMgRE9NIGJyZWFrcG9pbnRzLiA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDI4ODYiPkJ1ZyA0Mjg4NjwvYT4KIDwvcD4KLTxkaXYgaWQ9InJvb3RFbGVt
ZW50Ij48L2Rpdj4KKworPGRpdiBpZD0icm9vdEVsZW1lbnQiPgorPGRpdiBpZD0iZWxlbWVudFRv
UmVtb3ZlIj48L2Rpdj4KKzwvZGl2PgorCiA8L2JvZHk+CiA8L2h0bWw+Ci0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLXRlc3Rz
LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMt
dGVzdHMuanMKaW5kZXggYjIwNjRmYzczNzJlMGViOWRiMzY4ZTUxNDUwMjRmZjBkZDhmZjgyOS4u
OTJkM2Q0MzczNjIyYmU4YjE0ZWEwYTdhNmFkZjVmZTRmMTE0NDY5OSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtdGVzdHMuanMK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMt
dGVzdHMuanMKQEAgLTIzLDcgKzIzLDcgQEAgdmFyIGluaXRpYWxpemVfRXh0ZW5zaW9uc0F1ZGl0
c1Rlc3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbGxlY3RBdWRp
dFJlc3VsdHMoKTsKICAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoIiIpOwogICAgICAgICB9
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLnBhbmVscy5h
dWRpdHMsICJfYXVkaXRGaW5pc2hlZENhbGxiYWNrIiwgb25BdWRpdHNEb25lLCB0cnVlKTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5wYW5lbHMuYXVkaXRz
LCAiX2F1ZGl0RmluaXNoZWRDYWxsYmFjayIsIG9uQXVkaXRzRG9uZSwgdHJ1ZSk7CiAKICAgICAg
ICAgbGF1bmNoZXJWaWV3Ll9sYXVuY2hCdXR0b25DbGlja2VkKCk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtaWZyYW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1pZnJhbWUuaHRtbAppbmRleCA1YTAyM2Nh
ZTg2N2U2YzE5MDQ3MGUwMGY3OGY3MWEzMTY1MTUyYzc1Li4xNTdhYTE4ZjhjY2I5YzVjZjZiYzk1
ZjY0YWIwMTQwMmEwY2RhZDdiIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5
bGVzL3N0eWxlcy1pZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3N0eWxlcy1pZnJhbWUuaHRtbApAQCAtMTksNyArMTksNyBAQCBmdW5jdGlvbiBsb2FkSWZyYW1l
KCkKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
ImxvYWRJZnJhbWUoKSIpOwotICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVj
dG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgImFkZE1lc3NhZ2UiLCBzdGVwMCk7CisgICAgSW5z
cGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUs
ICJhZGRNZXNzYWdlIiwgc3RlcDApOwogCiAgICAgZnVuY3Rpb24gc3RlcDAoKQogICAgIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9t
LWpzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy11cGRhdGUtZnJv
bS1qcy5odG1sCmluZGV4IDhmNWEyN2UzMjYxNDY4N2I2ZWQ3M2Q5MzBkOGVmMTlmNDg2YjZlNTYu
LmY4ODVhYjllN2EzZTdkNTI2ZjFmNDcwNzc3ZWFiN2UzM2I2NDFmYzAgMTAwNzU1Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXVwZGF0ZS1mcm9tLWpzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtdXBkYXRlLWZyb20tanMuaHRt
bApAQCAtMjgsNyArMjgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBmdW5jdGlvbiBzdGVwMCgp
CiAgICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJtb2RpZnlTdHls
ZUF0dHJpYnV0ZSgpIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5z
cGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZSwgIl9yZWJ1aWxkVXBkYXRlIiwgc3Rl
cDEpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlN0eWxl
c1NpZGViYXJQYW5lLnByb3RvdHlwZSwgIl9yZWJ1aWxkVXBkYXRlIiwgc3RlcDEpOwogICAgIH0K
IAogICAgIC8vIFNldCBzdHlsZSB2aWEgY3NzVGV4dC4KQEAgLTQwLDcgKzQwLDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgICAgIC8vIEluaGliaXQgdGhlIHNlY29uZCBTdHlsZXMgcGFuZSB1cGRh
dGUgZnJvbSBzdGVwMCgpLgogICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlN0eWxl
c1NpZGViYXJQYW5lLnByb3RvdHlwZSwgIl9yZWJ1aWxkVXBkYXRlIiwgc3RlcDIpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFy
UGFuZS5wcm90b3R5cGUsICJfcmVidWlsZFVwZGF0ZSIsIHN0ZXAyKTsKICAgICAgICAgfQogCiAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoIm1vZGlmeUNzc1RleHQoKSIsIGNh
bGxiYWNrKTsKQEAgLTUzLDcgKzUzLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIGR1bXBB
dHRyaWJ1dGVBbmRTdHlsZXMoKTsKIAogICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKCJtb2RpZnlQYXJzZWRBdHRyaWJ1dGVzKCkiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5f
YWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlLCAiX3Jl
YnVpbGRVcGRhdGUiLCBzdGVwMyk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihX
ZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlLCAiX3JlYnVpbGRVcGRhdGUi
LCBzdGVwMyk7CiAgICAgfQogCiAgICAgLy8gRmluaXNoIHRoZSB0ZXN0LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2Uu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJl
c291cmNlLmh0bWwKaW5kZXggMjYzNDA3NDg1NjA5M2IxOGU4ZjExZWMzYmVhNjM4OWVlOGY3MWZl
Yi4uMTA1NGI3MGNhNjc1MWJkODlmZThjYjM2Y2M5MzVlZDdlNDBiYjVmNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2Uu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0d29y
ay1yZXNvdXJjZS5odG1sCkBAIC0yMyw3ICsyMyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGZ1
bmN0aW9uIHN0ZXAxKCkKICAgICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoInBlcmZvcm1BY3Rpb25zKCkiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZl
cihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2FnZSIsIHN0ZXAy
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5Db25zb2xl
Vmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOwogICAgIH0KIAogICAgIGZ1bmN0
aW9uIHN0ZXAyKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90
aW1lbGluZS1zY3JpcHQtdGFnLTEuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGlu
ZS90aW1lbGluZS1zY3JpcHQtdGFnLTEuaHRtbAppbmRleCA4ODI2MDQ0MDEyM2YwYzcyMDVlN2Iy
ZWYxNDZkNGNlYTY4YmVlNGMyLi44MjRhNWMwMmZkMmJkMGEyOGFiN2QyZDNmZDFkZGZmZGRjMjE1
NjM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
c2NyaXB0LXRhZy0xLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLXNjcmlwdC10YWctMS5odG1sCkBAIC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogICAgIGZ1bmN0aW9uIHN0ZXAxKCkKICAgICB7CiAgICAgICAgIEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoInBlcmZvcm1BY3Rpb25zKCkiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5f
YWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2Fn
ZSIsIHN0ZXAyKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rv
ci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOwogICAgIH0KIAog
ICAgIGZ1bmN0aW9uIHN0ZXAyKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1zY3JpcHQtdGFnLTIuaHRtbAppbmRleCA2Zjg5NjMzN2MwMGIy
MmUzZWYyODIyYTZjMzQ4MjI1YWY2ZmVjODU4Li40Y2RkN2Q0ZWJhMGFjODVlZDA1ZmNmMzExYzk1
YmU0OWFlZjlmNzJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtc2NyaXB0LXRhZy0yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLXNjcmlwdC10YWctMi5odG1sCkBAIC0xNiw3ICsxNiw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIEluc3BlY3RvckFnZW50LnN0YXJ0VGltZWxpbmVQcm9maWxlcihzdGVw
MSk7CiAgICAgZnVuY3Rpb24gc3RlcDEoKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5f
YWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiYWRkTWVzc2Fn
ZSIsIHN0ZXAyKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rv
ci5Db25zb2xlVmlldy5wcm90b3R5cGUsICJhZGRNZXNzYWdlIiwgc3RlcDIpOwogICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJwZXJmb3JtQWN0aW9ucygpIik7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQKaW5kZXggNTIzZDAxYzM5ODUyMTgyNTBkZjg1MzJhNmI0YTY2MjJhY2RiYjAwMi4uN2U5
MjBhMTkxNDEwNDNlNjYzYzhjMjczMzJjMjY2ODFlNDc4MDUwNSAxMDA3NTUKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzQzMCw4
ICszNDMwLDYgQEAgQlVHV0s1NDQ5OSBMSU5VWCA6IHN2Zy90cmFuc2Zvcm1zL3RleHQtd2l0aC1w
YXR0ZXJuLXdpdGgtc3ZnLXRyYW5zZm9ybS5zdmcgPSBJTUEKIAogQlVHV0s1NDQ3MiA6IG1lZGlh
L2F1ZGlvLWRlbGV0ZS13aGlsZS1zbGlkZXItdGh1bWItY2xpY2tlZC5odG1sID0gVElNRU9VVAog
Ci1CVUdXSzU0NjM4IFNLSVAgOiBpbnNwZWN0b3IvZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0
bWwgPSBUSU1FT1VUCi0KIEJVR1dLNTQzODcgOiBmYXN0L2pzL2tkZS9tYXRoLmh0bWwgPSBURVhU
CiAKIC8vIEZsYWt5Cg==
</data>
<flag name="review"
          id="74905"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>