<?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>148771</bug_id>
          
          <creation_ts>2015-09-03 18:57:10 -0700</creation_ts>
          <short_desc>JavaScriptCore should have some ES6 conformance tests</short_desc>
          <delta_ts>2015-09-07 15:47:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>achristensen</cc>
    
    <cc>barraclough</cc>
    
    <cc>cdumez</cc>
    
    <cc>fpizlo</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1123271</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-03 18:57:10 -0700</bug_when>
    <thetext>JavaScriptCore should have some ES6 conformance tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123275</commentid>
    <comment_count>1</comment_count>
      <attachid>260549</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-03 19:10:05 -0700</bug_when>
    <thetext>Created attachment 260549
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123284</commentid>
    <comment_count>2</comment_count>
      <attachid>260549</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-09-03 19:28:03 -0700</bug_when>
    <thetext>Comment on attachment 260549
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123293</commentid>
    <comment_count>3</comment_count>
      <attachid>260549</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-09-03 19:37:38 -0700</bug_when>
    <thetext>Comment on attachment 260549
Patch

R=me too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123295</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-09-03 19:39:24 -0700</bug_when>
    <thetext>Committed r189333: &lt;http://trac.webkit.org/changeset/189333&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124171</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-09-07 15:47:04 -0700</bug_when>
    <thetext>Changed some filenames from ..._*_... to ..._star_... in r189468</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260549</attachid>
            <date>2015-09-03 19:10:05 -0700</date>
            <delta_ts>2015-09-03 19:28:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148771-20150903191004.patch</filename>
            <type>text/plain</type>
            <size>475312</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg5MzMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0OTQg
QEAKKzIwMTUtMDktMDMgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAg
ICAgICBKYXZhU2NyaXB0Q29yZSBzaG91bGQgaGF2ZSBzb21lIEVTNiBjb25mb3JtYW5jZSB0ZXN0
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4Nzcx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSSBjcmVh
dGVkIDU5MCBpbmRlcGVuZGVudCwgcmVkdWNlZCB0ZXN0IGNhc2VzIHRoYXQgY29sbGVjdGl2ZWx5
IHRlbGwgdXMKKyAgICAgICAgd2hldGhlciB3ZSBwYXNzIG9yIGZhaWwgdGhlIGNvbmZvcm1hbmNl
IG1hdHJpeCBAIGh0dHA6Ly9rYW5nYXguZ2l0aHViLmlvL2NvbXBhdC10YWJsZS9lczYvLgorCisg
ICAgICAgICogdGVzdHMvZXM2OiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9lczYueWFtbDogQWRk
ZWQuCisgICAgICAgICogdGVzdHMvZXM2L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0FycmF5LnBy
b3RvdHlwZS5jb3B5V2l0aGluLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi9BcnJheS5wcm90b3R5cGVfbWV0aG9kc19BcnJheS5wcm90b3R5cGUuZW50cmll
cy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvQXJyYXku
cHJvdG90eXBlX21ldGhvZHNfQXJyYXkucHJvdG90eXBlLmZpbGwuanM6IEFkZGVkLgorICAgICAg
ICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0Fy
cmF5LnByb3RvdHlwZS5maW5kLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi9BcnJheS5wcm90b3R5cGVfbWV0aG9kc19BcnJheS5wcm90b3R5cGUuZmluZElu
ZGV4LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9BcnJh
eS5wcm90b3R5cGVfbWV0aG9kc19BcnJheS5wcm90b3R5cGUua2V5cy5qczogQWRkZWQuCisgICAg
ICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNf
QXJyYXkucHJvdG90eXBlLnZhbHVlcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAg
ICAgKiB0ZXN0cy9lczYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNfQXJyYXkucHJvdG90eXBlW1N5
bWJvbC5pdGVyYXRvcl0uanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVz
dHMvZXM2L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0FycmF5LnByb3RvdHlwZVtTeW1ib2wudW5z
Y29wYWJsZXNdLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2Vz
Ni9BcnJheS5wcm90b3R5cGVfbWV0aG9kc19BcnJheV9pdGVyYXRvcl9wcm90b3R5cGVfY2hhaW4u
anM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L0FycmF5X2lz
X3N1YmNsYXNzYWJsZV9BcnJheS5mcm9tLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuQyk6Cisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvQXJyYXlfaXNfc3ViY2xhc3NhYmxl
X0FycmF5LmlzQXJyYXlfc3VwcG9ydC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkMpOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9B
cnJheS5vZi5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkMpOgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogdGVzdHMvZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9BcnJheS5wcm90b3R5cGUu
Y29uY2F0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgKiB0ZXN0cy9lczYvQXJyYXlfaXNfc3ViY2xhc3NhYmxlX0FycmF5LnByb3RvdHlwZS5m
aWx0ZXIuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5DKToKKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAqIHRlc3RzL2VzNi9BcnJheV9pc19zdWJjbGFzc2FibGVfQXJyYXkucHJvdG90eXBlLm1h
cC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkMpOgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogdGVzdHMvZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9BcnJheS5wcm90b3R5cGUuc2xpY2Uu
anM6IEFkZGVkLgorICAgICAgICAodGVzdC5DKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi9BcnJheV9pc19zdWJjbGFzc2FibGVfQXJyYXkucHJvdG90eXBlLnNwbGljZS5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0LkMpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICog
dGVzdHMvZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9jb3JyZWN0X3Byb3RvdHlwZV9jaGFpbi5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0LkMpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICog
dGVzdHMvZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9sZW5ndGhfcHJvcGVydHlfYWNjZXNzaW5n
LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KiB0ZXN0cy9lczYvQXJyYXlfaXNfc3ViY2xhc3NhYmxlX2xlbmd0aF9wcm9wZXJ0eV9zZXR0aW5n
LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KiB0ZXN0cy9lczYvQXJyYXlfc3RhdGljX21ldGhvZHNfQXJyYXkuZnJvbV9hcnJheS1saWtlX29i
amVjdHMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L0Fy
cmF5X3N0YXRpY19tZXRob2RzX0FycmF5LmZyb21fZ2VuZXJhdG9yX2luc3RhbmNlcy5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0Lml0ZXJhYmxlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi9BcnJheV9zdGF0aWNfbWV0aG9kc19BcnJheS5mcm9tX2dlbmVyaWNfaXRlcmFi
bGVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9BcnJh
eV9zdGF0aWNfbWV0aG9kc19BcnJheS5mcm9tX2luc3RhbmNlc19vZl9nZW5lcmljX2l0ZXJhYmxl
cy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvQXJyYXlf
c3RhdGljX21ldGhvZHNfQXJyYXkuZnJvbV9pdGVyYXRvcl9jbG9zaW5nLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9BcnJh
eV9zdGF0aWNfbWV0aG9kc19BcnJheS5mcm9tX21hcF9mdW5jdGlvbl9hcnJheS1saWtlX29iamVj
dHMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L0FycmF5
X3N0YXRpY19tZXRob2RzX0FycmF5LmZyb21fbWFwX2Z1bmN0aW9uX2dlbmVyYXRvcl9pbnN0YW5j
ZXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5pdGVyYWJsZSk6CisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiB0ZXN0cy9lczYvQXJyYXlfc3RhdGljX21ldGhvZHNfQXJyYXkuZnJvbV9tYXBf
ZnVuY3Rpb25fZ2VuZXJpY19pdGVyYWJsZXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogdGVzdHMvZXM2L0FycmF5X3N0YXRpY19tZXRob2RzX0FycmF5LmZyb21fbWFwX2Z1
bmN0aW9uX2luc3RhbmNlc19vZl9pdGVyYWJsZXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvZXM2L0FycmF5X3N0YXRpY19tZXRob2RzX0FycmF5Lm9mLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9BcnJheV9zdGF0aWNf
bWV0aG9kc19BcnJheVtTeW1ib2wuc3BlY2llc10uanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvZXM2L0Z1bmN0aW9uX2lzX3N1YmNsYXNzYWJsZV9GdW5jdGlvbi5w
cm90b3R5cGUuYXBwbHkuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5DKToKKyAgICAgICAgKHRl
c3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9GdW5jdGlvbl9pc19zdWJjbGFzc2FibGVfRnVuY3Rp
b24ucHJvdG90eXBlLmJpbmQuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5DKToKKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9GdW5jdGlvbl9pc19zdWJjbGFzc2FibGVfRnVu
Y3Rpb24ucHJvdG90eXBlLmNhbGwuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5DKToKKyAgICAg
ICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9GdW5jdGlvbl9pc19zdWJjbGFzc2FibGVf
Y2FuX2JlX2NhbGxlZC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkMpOgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogdGVzdHMvZXM2L0Z1bmN0aW9uX2lzX3N1YmNsYXNzYWJsZV9jYW5fYmVf
dXNlZF93aXRoX25ldy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkMpOgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogdGVzdHMvZXM2L0Z1bmN0aW9uX2lzX3N1YmNsYXNzYWJsZV9jb3JyZWN0
X3Byb3RvdHlwZV9jaGFpbi5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkMpOgorICAgICAgICAo
dGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L0hUTUwtc3R5bGVfY29tbWVudHMuanM6IEFkZGVk
LgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L01hcF8tMF9rZXlfY29udmVy
dHNfdG9fKzAuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5zZXQgdmFyKToKKyAgICAgICAgKiB0
ZXN0cy9lczYvTWFwX01hcC5wcm90b3R5cGUuY2xlYXIuanM6IEFkZGVkLgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogdGVzdHMvZXM2L01hcF9NYXAucHJvdG90eXBlLmRlbGV0ZS5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvTWFwX01hcC5wcm90b3R5
cGUuZW50cmllcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9l
czYvTWFwX01hcC5wcm90b3R5cGUuZm9yRWFjaC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiB0ZXN0cy9lczYvTWFwX01hcC5wcm90b3R5cGUua2V5cy5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvTWFwX01hcC5wcm90b3R5cGUuc2V0
X3JldHVybnNfdGhpcy5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvZXM2L01hcF9NYXAucHJv
dG90eXBlLnNpemUuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL2VzNi9NYXBfTWFwLnByb3Rv
dHlwZS52YWx1ZXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMv
ZXM2L01hcF9NYXAucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0uanM6IEFkZGVkLgorICAgICAg
ICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L01hcF9NYXBbU3ltYm9sLnNwZWNpZXNdLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9NYXBfTWFwX2l0
ZXJhdG9yX3Byb3RvdHlwZV9jaGFpbi5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAg
ICAgKiB0ZXN0cy9lczYvTWFwX2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanM6IEFkZGVkLgorICAgICAg
ICAqIHRlc3RzL2VzNi9NYXBfY29uc3RydWN0b3JfYWNjZXB0c19udWxsLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9NYXBfY29uc3RydWN0b3JfYXJndW1l
bnRzLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9lczYvTWFwX2NvbnN0cnVjdG9yX2ludm9r
ZXNfc2V0LmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9lczYvTWFwX2NvbnN0cnVjdG9yX3Jl
cXVpcmVzX25ldy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9l
czYvTWFwX2l0ZXJhdG9yX2Nsb3NpbmcuanM6IEFkZGVkLgorICAgICAgICAodGVzdC4pOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRoLmFjb3No
LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9NYXRoX21l
dGhvZHNfTWF0aC5hc2luaC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0
ZXN0cy9lczYvTWF0aF9tZXRob2RzX01hdGguYXRhbmguanM6IEFkZGVkLgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogdGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRoLmNicnQuanM6IEFkZGVk
LgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRo
LmNsejMyLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9N
YXRoX21ldGhvZHNfTWF0aC5jb3NoLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAg
ICAqIHRlc3RzL2VzNi9NYXRoX21ldGhvZHNfTWF0aC5leHBtMS5qczogQWRkZWQuCisgICAgICAg
ICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvTWF0aF9tZXRob2RzX01hdGguZnJvdW5kLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9NYXRoX21ldGhv
ZHNfTWF0aC5oeXBvdC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0
cy9lczYvTWF0aF9tZXRob2RzX01hdGguaW11bC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiB0ZXN0cy9lczYvTWF0aF9tZXRob2RzX01hdGgubG9nMTAuanM6IEFkZGVkLgor
ICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRoLmxv
ZzFwLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9NYXRo
X21ldGhvZHNfTWF0aC5sb2cyLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi9NYXRoX21ldGhvZHNfTWF0aC5zaWduLmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9NYXRoX21ldGhvZHNfTWF0aC5zaW5oLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9NYXRoX21ldGhvZHNfTWF0
aC50YW5oLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9N
YXRoX21ldGhvZHNfTWF0aC50cnVuYy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAg
ICAgKiB0ZXN0cy9lczYvTnVtYmVyX3Byb3BlcnRpZXNfTnVtYmVyLkVQU0lMT04uanM6IEFkZGVk
LgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L051bWJlcl9wcm9wZXJ0aWVz
X051bWJlci5NQVhfU0FGRV9JTlRFR0VSLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAqIHRlc3RzL2VzNi9OdW1iZXJfcHJvcGVydGllc19OdW1iZXIuTUlOX1NBRkVfSU5URUdF
Ui5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvTnVtYmVy
X3Byb3BlcnRpZXNfTnVtYmVyLmlzRmluaXRlLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgor
ICAgICAgICAqIHRlc3RzL2VzNi9OdW1iZXJfcHJvcGVydGllc19OdW1iZXIuaXNJbnRlZ2VyLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9OdW1iZXJfcHJv
cGVydGllc19OdW1iZXIuaXNOYU4uanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogdGVzdHMvZXM2L051bWJlcl9wcm9wZXJ0aWVzX051bWJlci5pc1NhZmVJbnRlZ2VyLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9PYmplY3QucHJvdG90
eXBlLl9fcHJvdG9fX19hYnNlbnRfZnJvbV9PYmplY3QuY3JlYXRlbnVsbC5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvT2JqZWN0LnByb3RvdHlwZS5fX3By
b3RvX19fY29ycmVjdF9wcm9wZXJ0eV9kZXNjcmlwdG9yLmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3QuQSk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvT2JqZWN0LnByb3Rv
dHlwZS5fX3Byb3RvX19fZ2V0X3Byb3RvdHlwZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkEp
OgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L09iamVjdC5wcm90b3R5cGUu
X19wcm90b19fX3ByZXNlbnRfaW5fT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMuanM6IEFkZGVk
LgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L09iamVjdC5wcm90b3R5cGUu
X19wcm90b19fX3ByZXNlbnRfaW5faGFzT3duUHJvcGVydHkuanM6IEFkZGVkLgorICAgICAgICAo
dGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L09iamVjdC5wcm90b3R5cGUuX19wcm90b19fX3Nl
dF9wcm90b3R5cGUuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMv
ZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19PYmplY3QuYXNzaWduLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfT2Jq
ZWN0LmdldE93blByb3BlcnR5U3ltYm9scy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgKiB0ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX09iamVjdC5pcy5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19t
ZXRob2RzX09iamVjdC5zZXRQcm90b3R5cGVPZi5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiB0ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX2FjY2VwdF9wcmltaXRp
dmVzX09iamVjdC5mcmVlemUuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICog
dGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19hY2NlcHRfcHJpbWl0aXZlc19PYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAqIHRlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfYWNjZXB0X3ByaW1pdGl2ZXNf
T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19hY2NlcHRfcHJpbWl0aXZl
c19PYmplY3QuZ2V0UHJvdG90eXBlT2YuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAg
ICAgICogdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19hY2NlcHRfcHJpbWl0aXZlc19P
YmplY3QuaXNFeHRlbnNpYmxlLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfYWNjZXB0X3ByaW1pdGl2ZXNfT2JqZWN0
LmlzRnJvemVuLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2Vz
Ni9PYmplY3Rfc3RhdGljX21ldGhvZHNfYWNjZXB0X3ByaW1pdGl2ZXNfT2JqZWN0LmlzU2VhbGVk
LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9PYmplY3Rf
c3RhdGljX21ldGhvZHNfYWNjZXB0X3ByaW1pdGl2ZXNfT2JqZWN0LmtleXMuanM6IEFkZGVkLgor
ICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9k
c19hY2NlcHRfcHJpbWl0aXZlc19PYmplY3QucHJldmVudEV4dGVuc2lvbnMuanM6IEFkZGVkLgor
ICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9k
c19hY2NlcHRfcHJpbWl0aXZlc19PYmplY3Quc2VhbC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJvbWlzZV9Qcm9taXNlLmFsbC5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJvbWlzZV9Qcm9taXNlLmFsbF9n
ZW5lcmljX2l0ZXJhYmxlcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0
ZXN0cy9lczYvUHJvbWlzZV9Qcm9taXNlLnJhY2UuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvZXM2L1Byb21pc2VfUHJvbWlzZS5yYWNlX2dlbmVyaWNfaXRlcmFi
bGVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm9t
aXNlX1Byb21pc2VbU3ltYm9sLnNwZWNpZXNdLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgor
ICAgICAgICAqIHRlc3RzL2VzNi9Qcm9taXNlX2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanM6IEFkZGVk
LgorICAgICAgICAodGVzdC50aGVuRm4pOgorICAgICAgICAodGVzdC5jYXRjaEZuKToKKyAgICAg
ICAgKHRlc3Quc2hvdWxkTm90UnVuKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3Rz
L2VzNi9Qcm9taXNlX2NvbnN0cnVjdG9yX3JlcXVpcmVzX25ldy5qczogQWRkZWQuCisgICAgICAg
ICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJvbWlzZV9pc19zdWJjbGFzc2FibGVfUHJv
bWlzZS5hbGwuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5QKToKKyAgICAgICAgKHRlc3QpOgor
ICAgICAgICAqIHRlc3RzL2VzNi9Qcm9taXNlX2lzX3N1YmNsYXNzYWJsZV9Qcm9taXNlLnJhY2Uu
anM6IEFkZGVkLgorICAgICAgICAodGVzdC5QKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi9Qcm9taXNlX2lzX3N1YmNsYXNzYWJsZV9iYXNpY19mdW5jdGlvbmFsaXR5Lmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QuUCk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKHRl
c3QuY2F0Y2hGbik6CisgICAgICAgICh0ZXN0LnNob3VsZE5vdFJ1bik6CisgICAgICAgICogdGVz
dHMvZXM2L1Byb21pc2VfaXNfc3ViY2xhc3NhYmxlX2NvcnJlY3RfcHJvdG90eXBlX2NoYWluLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0
ZXN0cy9lczYvUHJveHlfQXJyYXkuaXNBcnJheV9zdXBwb3J0LmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9KU09OLnN0cmluZ2lmeV9zdXBwb3J0
LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9Q
cm94eS5yZXZvY2FibGUuanM6IEFkZGVkLgorICAgICAgICAodGVzdC4pOgorICAgICAgICAodGVz
dC5nZXQgdmFyKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9h
cHBseV9oYW5kbGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QucHJveGllZCk6CisgICAgICAg
ICh0ZXN0Lmhvc3QuKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94
eV9jb25zdHJ1Y3RfaGFuZGxlci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LnByb3hpZWQpOgor
ICAgICAgICAodGVzdC4pOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1By
b3h5X2NvbnN0cnVjdG9yX3JlcXVpcmVzX25ldy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfZGVmaW5lUHJvcGVydHlfaGFuZGxlci5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9l
czYvUHJveHlfZGVsZXRlUHJvcGVydHlfaGFuZGxlci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
Lik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfZW51bWVyYXRl
X2hhbmRsZXIuanM6IEFkZGVkLgorICAgICAgICAodGVzdC4pOgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2dldE93blByb3BlcnR5RGVzY3JpcHRvcl9oYW5kbGVy
LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi9Qcm94eV9nZXRQcm90b3R5cGVPZl9oYW5kbGVyLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9n
ZXRfaGFuZGxlci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICogdGVzdHMv
ZXM2L1Byb3h5X2dldF9oYW5kbGVyX2luc3RhbmNlc19vZl9wcm94aWVzLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QuKToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfaGFzX2hhbmRsZXIuanM6
IEFkZGVkLgorICAgICAgICAodGVzdC4pOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVz
dHMvZXM2L1Byb3h5X2hhc19oYW5kbGVyX2luc3RhbmNlc19vZl9wcm94aWVzLmpzOiBBZGRlZC4K
KyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9Q
cm94eV9pbnRlcm5hbF9kZWZpbmVQcm9wZXJ0eV9jYWxsc19TZXRJbnRlZ3JpdHlMZXZlbC5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0
cy9lczYvUHJveHlfaW50ZXJuYWxfZGVmaW5lUHJvcGVydHlfY2FsbHNfW1tTZXRdXS5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9l
czYvUHJveHlfaW50ZXJuYWxfZGVsZXRlUHJvcGVydHlfY2FsbHNfQXJyYXkucHJvdG90eXBlLmNv
cHlXaXRoaW4uanM6IEFkZGVkLgorICAgICAgICAodGVzdC4pOgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2RlbGV0ZVByb3BlcnR5X2NhbGxzX0Fy
cmF5LnByb3RvdHlwZS5wb3AuanM6IEFkZGVkLgorICAgICAgICAodGVzdC4pOgorICAgICAgICAo
dGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2RlbGV0ZVByb3BlcnR5
X2NhbGxzX0FycmF5LnByb3RvdHlwZS5yZXZlcnNlLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3Qu
KToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9k
ZWxldGVQcm9wZXJ0eV9jYWxsc19BcnJheS5wcm90b3R5cGUuc2hpZnQuanM6IEFkZGVkLgorICAg
ICAgICAodGVzdC4pOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5
X2ludGVybmFsX2RlbGV0ZVByb3BlcnR5X2NhbGxzX0FycmF5LnByb3RvdHlwZS5zcGxpY2UuanM6
IEFkZGVkLgorICAgICAgICAodGVzdC4pOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVz
dHMvZXM2L1Byb3h5X2ludGVybmFsX2RlbGV0ZVByb3BlcnR5X2NhbGxzX0FycmF5LnByb3RvdHlw
ZS51bnNoaWZ0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3QpOgor
ICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JfY2FsbHNfRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuanM6IEFkZGVkLgorICAgICAgICAodGVz
dC4pOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFs
X2dldE93blByb3BlcnR5RGVzY3JpcHRvcl9jYWxsc19PYmplY3QuYXNzaWduLmpzOiBBZGRlZC4K
KyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9Q
cm94eV9pbnRlcm5hbF9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JfY2FsbHNfT2JqZWN0LnByb3Rv
dHlwZS5oYXNPd25Qcm9wZXJ0eS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Lik6CisgICAgICAg
ICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yX2NhbGxzX1tbU2V0XV0uanM6IEFkZGVkLgorICAgICAgICAodGVzdC4pOgor
ICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9j
YWxsc19BcnJheS5mcm9tLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuZ2V0IHZhcik6CisgICAg
ICAgICh0ZXN0Lik6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxs
c19BcnJheS5wcm90b3R5cGUuY29uY2F0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuKToKKyAg
ICAgICAgKHRlc3QuZ2V0IHZhcik6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFs
X2dldF9jYWxsc19BcnJheS5wcm90b3R5cGUucG9wLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3Qu
KToKKyAgICAgICAgKHRlc3QuZ2V0IHZhcik6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2lu
dGVybmFsX2dldF9jYWxsc19BcnJheS5wcm90b3R5cGUucmV2ZXJzZS5qczogQWRkZWQuCisgICAg
ICAgICh0ZXN0Lik6CisgICAgICAgICh0ZXN0LmdldCB2YXIpOgorICAgICAgICAqIHRlc3RzL2Vz
Ni9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLnNoaWZ0LmpzOiBBZGRl
ZC4KKyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3QuZ2V0IHZhcik6CisgICAgICAgICog
dGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19BcnJheS5wcm90b3R5cGUuc3BsaWNl
LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3QuZ2V0IHZhcik6Cisg
ICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19BcnJheS5wcm90b3R5
cGUudG9TdHJpbmcuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5nZXQgdmFyKToKKyAgICAgICAg
KHRlc3QuKToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX0Fy
cmF5LnByb3RvdHlwZV9pdGVyYXRpb25fbWV0aG9kcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
LmdldCB2YXIpOgorICAgICAgICAodGVzdC4pOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9p
bnRlcm5hbF9nZXRfY2FsbHNfQ2xhc3NEZWZpbml0aW9uRXZhbHVhdGlvbi5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0Lik6CisgICAgICAgICh0ZXN0LmdldCB2YXIpOgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19DcmVhdGVEeW5h
bWljRnVuY3Rpb24uanM6IEFkZGVkLgorICAgICAgICAodGVzdC4pOgorICAgICAgICAodGVzdC5n
ZXQgdmFyKToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX0Ny
ZWF0ZUxpc3RGcm9tQXJyYXlMaWtlLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuZ2V0IHZhcik6
CisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICh0ZXN0LmdldCBGdW5jdGlvbik6CisgICAgICAg
ICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19EYXRlLnByb3RvdHlwZS50b0pT
T04uanM6IEFkZGVkLgorICAgICAgICAodGVzdC5nZXQgdmFyKToKKyAgICAgICAgKHRlc3QuKToK
KyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX0Vycm9yLnByb3Rv
dHlwZS50b1N0cmluZy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LmdldCB2YXIpOgorICAgICAg
ICAodGVzdC4pOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNf
RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuanM6IEFkZGVkLgorICAgICAgICAodGVzdC4pOgorICAg
ICAgICAodGVzdC5nZXQgdmFyKToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxf
Z2V0X2NhbGxzX0hhc0JpbmRpbmcuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5nZXQgdmFyKToK
KyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3QuZ2V0IHApOgorICAgICAgICAqIHRlc3Rz
L2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfSXRlcmF0b3JDb21wbGV0ZV9JdGVyYXRvclZh
bHVlLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuZ2V0IHZhcik6CisgICAgICAgICh0ZXN0Lml0
ZXJhYmxlLlN5bWJvbC5pdGVyYXRvci5yZXR1cm4ubmV4dC4pOgorICAgICAgICAodGVzdC5pdGVy
YWJsZS5TeW1ib2wuaXRlcmF0b3IucmV0dXJuLm5leHQpOgorICAgICAgICAodGVzdC5pdGVyYWJs
ZS5TeW1ib2wuaXRlcmF0b3IpOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9n
ZXRfY2FsbHNfSlNPTi5zdHJpbmdpZnkuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5nZXQgdmFy
KToKKyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxf
Z2V0X2NhbGxzX09iamVjdC5hc3NpZ24uanM6IEFkZGVkLgorICAgICAgICAodGVzdC5nZXQgdmFy
KToKKyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3QuZ2V0IE9iamVjdCk6CisgICAgICAg
ICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19PYmplY3QuZGVmaW5lUHJvcGVy
dGllcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LmdldCB2YXIpOgorICAgICAgICAodGVzdC4p
OgorICAgICAgICAodGVzdC5nZXQgT2JqZWN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlf
aW50ZXJuYWxfZ2V0X2NhbGxzX1Byb21pc2VfcmVzb2x2ZV9mdW5jdGlvbnMuanM6IEFkZGVkLgor
ICAgICAgICAodGVzdC5nZXQgdmFyKToKKyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3Qu
Z2V0IG5ldyk6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19S
ZWdFeHAucHJvdG90eXBlLmZsYWdzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuZ2V0IHZhcik6
CisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dl
dF9jYWxsc19SZWdFeHAucHJvdG90eXBlLnRlc3QuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5n
ZXQgdmFyLnAubmV3LlByb3h5KToKKyAgICAgICAgKHRlc3QuZ2V0IHZhcik6CisgICAgICAgICh0
ZXN0Lik6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19SZWdF
eHAucHJvdG90eXBlW1N5bWJvbC5tYXRjaF0uanM6IEFkZGVkLgorICAgICAgICAodGVzdC5nZXQg
dmFyLnAubmV3LlByb3h5KToKKyAgICAgICAgKHRlc3QuZ2V0IHZhcik6CisgICAgICAgICh0ZXN0
Lik6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19SZWdFeHAu
cHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LmdldCB2
YXIucC5uZXcuUHJveHkpOgorICAgICAgICAodGVzdC5nZXQgdmFyKToKKyAgICAgICAgKHRlc3Qu
KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX1JlZ0V4cC5w
cm90b3R5cGVbU3ltYm9sLnNlYXJjaF0uanM6IEFkZGVkLgorICAgICAgICAodGVzdC5nZXQgdmFy
LnAubmV3LlByb3h5KToKKyAgICAgICAgKHRlc3QuZ2V0IHZhcik6CisgICAgICAgICh0ZXN0Lik6
CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19SZWdFeHAucHJv
dG90eXBlW1N5bWJvbC5zcGxpdF0uanM6IEFkZGVkLgorICAgICAgICAodGVzdC5wLm5ldy5Qcm94
eSk6CisgICAgICAgICh0ZXN0LmdldCB2YXIpOgorICAgICAgICAodGVzdC4pOgorICAgICAgICAq
IHRlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfUmVnRXhwX2NvbnN0cnVjdG9yLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QuZ2V0IHZhcik6CisgICAgICAgICh0ZXN0Lik6CisgICAg
ICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19TdHJpbmcucHJvdG90eXBl
Lm1hdGNoLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuZ2V0IHZhcik6CisgICAgICAgICh0ZXN0
Lik6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19TdHJpbmcu
cHJvdG90eXBlLnJlcGxhY2UuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5nZXQgdmFyKToKKyAg
ICAgICAgKHRlc3QuKToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2Nh
bGxzX1N0cmluZy5wcm90b3R5cGUuc2VhcmNoLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuZ2V0
IHZhcik6CisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVy
bmFsX2dldF9jYWxsc19TdHJpbmcucHJvdG90eXBlLnNwbGl0LmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QuZ2V0IHZhcik6CisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICogdGVzdHMvZXM2L1By
b3h5X2ludGVybmFsX2dldF9jYWxsc19TdHJpbmcucmF3LmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3QuZ2V0IHZhcik6CisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5
X2ludGVybmFsX2dldF9jYWxsc19Ub1ByaW1pdGl2ZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
LmdldCB2YXIpOgorICAgICAgICAodGVzdC4pOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9p
bnRlcm5hbF9nZXRfY2FsbHNfVG9Qcm9wZXJ0eURlc2NyaXB0b3IuanM6IEFkZGVkLgorICAgICAg
ICAodGVzdC5nZXQgdmFyKToKKyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3Quc2V0IGdl
dCB0cnkpOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfaW5z
dGFuY2VvZl9vcGVyYXRvci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICh0
ZXN0LmdldCB2YXIpOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9vd25LZXlz
X2NhbGxzX1NlcmlhbGl6ZUpTT05PYmplY3QuanM6IEFkZGVkLgorICAgICAgICAodGVzdC4pOgor
ICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX293bktl
eXNfY2FsbHNfU2V0SW50ZWdyaXR5TGV2ZWwuanM6IEFkZGVkLgorICAgICAgICAodGVzdC4pOgor
ICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX293bktl
eXNfY2FsbHNfVGVzdEludGVncml0eUxldmVsLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuKToK
KyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9zZXRf
Y2FsbHNfQXJyYXkuZnJvbS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LnNldCB2YXIpOgorICAg
ICAgICAodGVzdC4pOgorICAgICAgICAodGVzdC5zZXQgQXJyYXkpOgorICAgICAgICAqIHRlc3Rz
L2VzNi9Qcm94eV9pbnRlcm5hbF9zZXRfY2FsbHNfQXJyYXkub2YuanM6IEFkZGVkLgorICAgICAg
ICAodGVzdC5zZXQgdmFyKToKKyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3Quc2V0IEFy
cmF5KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfc2V0X2NhbGxzX0FycmF5
LnByb3RvdHlwZS5jb3B5V2l0aGluLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuKToKKyAgICAg
ICAgKHRlc3Quc2V0IHZhcik6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX3Nl
dF9jYWxsc19BcnJheS5wcm90b3R5cGUuZmlsbC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Lik6
CisgICAgICAgICh0ZXN0LnNldCB2YXIpOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9pbnRl
cm5hbF9zZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLnBvcC5qczogQWRkZWQuCisgICAgICAgICh0
ZXN0Lik6CisgICAgICAgICh0ZXN0LnNldCB2YXIpOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94
eV9pbnRlcm5hbF9zZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLnB1c2guanM6IEFkZGVkLgorICAg
ICAgICAodGVzdC4pOgorICAgICAgICAodGVzdC5zZXQgdmFyKToKKyAgICAgICAgKiB0ZXN0cy9l
czYvUHJveHlfaW50ZXJuYWxfc2V0X2NhbGxzX0FycmF5LnByb3RvdHlwZS5yZXZlcnNlLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3Quc2V0IHZhcik6CisgICAgICAg
ICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX3NldF9jYWxsc19BcnJheS5wcm90b3R5cGUuc2hp
ZnQuanM6IEFkZGVkLgorICAgICAgICAodGVzdC4pOgorICAgICAgICAodGVzdC5zZXQgdmFyKToK
KyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfc2V0X2NhbGxzX0FycmF5LnByb3Rv
dHlwZS5zcGxpY2UuanM6IEFkZGVkLgorICAgICAgICAodGVzdC4pOgorICAgICAgICAodGVzdC5z
ZXQgdmFyKToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfc2V0X2NhbGxzX0Fy
cmF5LnByb3RvdHlwZS51bnNoaWZ0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuKToKKyAgICAg
ICAgKHRlc3Quc2V0IHZhcik6CisgICAgICAgICogdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX3Nl
dF9jYWxsc19PYmplY3QuYXNzaWduLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3Quc2V0IHZhcik6
CisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICh0ZXN0LnNldCBPYmplY3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi9Qcm94eV9pc0V4dGVuc2libGVfaGFuZGxlci5qczogQWRkZWQuCisgICAgICAg
ICh0ZXN0Lik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUHJveHlfb3du
S2V5c19oYW5kbGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9wcmV2ZW50RXh0ZW5zaW9uc19oYW5kbGVyLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRl
c3RzL2VzNi9Qcm94eV9zZXRQcm90b3R5cGVPZl9oYW5kbGVyLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QuKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9Qcm94eV9zZXRf
aGFuZGxlci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICogdGVzdHMvZXM2
L1Byb3h5X3NldF9oYW5kbGVyX2luc3RhbmNlc19vZl9wcm94aWVzLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHRlc3QuKToKKyAgICAgICAgKiB0ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0LmFwcGx5Lmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9SZWZsZWN0X1Jl
ZmxlY3QuY29uc3RydWN0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRl
c3RzL2VzNi9SZWZsZWN0X1JlZmxlY3QuY29uc3RydWN0X2NyZWF0ZXNfaW5zdGFuY2VfZnJvbV9u
ZXdUYXJnZXRfYXJndW1lbnQuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5GKToKKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9SZWZsZWN0X1JlZmxlY3QuY29uc3RydWN0X3Nl
dHNfbmV3LnRhcmdldF9tZXRhX3Byb3BlcnR5LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgor
ICAgICAgICAqIHRlc3RzL2VzNi9SZWZsZWN0X1JlZmxlY3QuZGVmaW5lUHJvcGVydHkuanM6IEFk
ZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1JlZmxlY3RfUmVmbGVj
dC5kZWxldGVQcm9wZXJ0eS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0
ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0LmVudW1lcmF0ZS5qczogQWRkZWQuCisgICAgICAgICh0
ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0LmdldC5qczogQWRkZWQu
CisgICAgICAgICogdGVzdHMvZXM2L1JlZmxlY3RfUmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1Jl
ZmxlY3RfUmVmbGVjdC5nZXRQcm90b3R5cGVPZi5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiB0ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0Lmhhcy5qczogQWRkZWQuCisgICAg
ICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0LmlzRXh0ZW5z
aWJsZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUmVm
bGVjdF9SZWZsZWN0Lm93bktleXNfc3RyaW5nX2tleXMuanM6IEFkZGVkLgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogdGVzdHMvZXM2L1JlZmxlY3RfUmVmbGVjdC5vd25LZXlzX3N5bWJvbF9r
ZXlzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9SZWZs
ZWN0X1JlZmxlY3QucHJldmVudEV4dGVuc2lvbnMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvZXM2L1JlZmxlY3RfUmVmbGVjdC5zZXQuanM6IEFkZGVkLgorICAg
ICAgICAqIHRlc3RzL2VzNi9SZWZsZWN0X1JlZmxlY3Quc2V0UHJvdG90eXBlT2YuanM6IEFkZGVk
LgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1JlZ0V4cC5wcm90b3R5cGUu
Y29tcGlsZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYv
UmVnRXhwLnByb3RvdHlwZV9wcm9wZXJ0aWVzX1JlZ0V4cC5wcm90b3R5cGUuZmxhZ3MuanM6IEFk
ZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1JlZ0V4cC5wcm90b3R5
cGVfcHJvcGVydGllc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5tYXRjaF0uanM6IEFkZGVkLgor
ICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1JlZ0V4cC5wcm90b3R5cGVfcHJv
cGVydGllc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXS5qczogQWRkZWQuCisgICAg
ICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUmVnRXhwLnByb3RvdHlwZV9wcm9wZXJ0
aWVzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNlYXJjaF0uanM6IEFkZGVkLgorICAgICAgICAo
dGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1JlZ0V4cC5wcm90b3R5cGVfcHJvcGVydGllc19S
ZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zcGxpdF0uanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvZXM2L1JlZ0V4cC5wcm90b3R5cGVfcHJvcGVydGllc19SZWdFeHBb
U3ltYm9sLnNwZWNpZXNdLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRl
c3RzL2VzNi9SZWdFeHBfaXNfc3ViY2xhc3NhYmxlX1JlZ0V4cC5wcm90b3R5cGUuZXhlYy5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0LlIpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVz
dHMvZXM2L1JlZ0V4cF9pc19zdWJjbGFzc2FibGVfUmVnRXhwLnByb3RvdHlwZS50ZXN0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHRlc3QuUik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0
cy9lczYvUmVnRXhwX2lzX3N1YmNsYXNzYWJsZV9iYXNpY19mdW5jdGlvbmFsaXR5LmpzOiBBZGRl
ZC4KKyAgICAgICAgKHRlc3QuUik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9l
czYvUmVnRXhwX2lzX3N1YmNsYXNzYWJsZV9jb3JyZWN0X3Byb3RvdHlwZV9jaGFpbi5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0LlIpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMv
ZXM2L1JlZ0V4cF9zeW50YXhfZXh0ZW5zaW9uc19oeXBoZW5zX2luX2NoYXJhY3Rlcl9zZXRzLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9SZWdFeHBfc3lu
dGF4X2V4dGVuc2lvbnNfaW5jb21wbGV0ZV9wYXR0ZXJuc19hbmRfcXVhbnRpZmllcnMuanM6IEFk
ZGVkLgorICAgICAgICAqIHRlc3RzL2VzNi9SZWdFeHBfc3ludGF4X2V4dGVuc2lvbnNfaW52YWxp
ZF9Vbmljb2RlX2VzY2FwZXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICog
dGVzdHMvZXM2L1JlZ0V4cF9zeW50YXhfZXh0ZW5zaW9uc19pbnZhbGlkX2JhY2tyZWZlcmVuY2Vz
X2JlY29tZV9vY3RhbF9lc2NhcGVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAg
ICAqIHRlc3RzL2VzNi9SZWdFeHBfc3ludGF4X2V4dGVuc2lvbnNfaW52YWxpZF9jaGFyYWN0ZXJf
ZXNjYXBlcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYv
UmVnRXhwX3N5bnRheF9leHRlbnNpb25zX2ludmFsaWRfY29udHJvbC1jaGFyYWN0ZXJfZXNjYXBl
cy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUmVnRXhw
X3N5bnRheF9leHRlbnNpb25zX2ludmFsaWRfaGV4YWRlY2ltYWxfZXNjYXBlcy5qczogQWRkZWQu
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUmVnRXhwX3N5bnRheF9leHRl
bnNpb25zX29jdGFsX2VzY2FwZV9zZXF1ZW5jZXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvZXM2L1JlZ0V4cF95X2FuZF91X2ZsYWdzX3VfZmxhZy5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvUmVnRXhwX3lfYW5kX3Vf
ZmxhZ3NfdV9mbGFnX1VuaWNvZGVfY29kZV9wb2ludF9lc2NhcGVzLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9SZWdFeHBfeV9hbmRfdV9mbGFnc195X2Zs
YWcuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1JlZ0V4
cF95X2FuZF91X2ZsYWdzX3lfZmxhZ19sYXN0SW5kZXguanM6IEFkZGVkLgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogdGVzdHMvZXM2L1NldF8tMF9rZXlfY29udmVydHNfdG9fKzAuanM6IEFk
ZGVkLgorICAgICAgICAodGVzdC5zZXQgZm9yRWFjaCk6CisgICAgICAgICogdGVzdHMvZXM2L1Nl
dF9TZXQucHJvdG90eXBlLmFkZF9yZXR1cm5zX3RoaXMuanM6IEFkZGVkLgorICAgICAgICAqIHRl
c3RzL2VzNi9TZXRfU2V0LnByb3RvdHlwZS5jbGVhci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiB0ZXN0cy9lczYvU2V0X1NldC5wcm90b3R5cGUuZGVsZXRlLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9TZXRfU2V0LnByb3RvdHlw
ZS5lbnRyaWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2Vz
Ni9TZXRfU2V0LnByb3RvdHlwZS5mb3JFYWNoLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgor
ICAgICAgICAqIHRlc3RzL2VzNi9TZXRfU2V0LnByb3RvdHlwZS5rZXlzLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9TZXRfU2V0LnByb3RvdHlwZS5zaXpl
LmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9lczYvU2V0X1NldC5wcm90b3R5cGUudmFsdWVz
LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9TZXRfU2V0
LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgor
ICAgICAgICAqIHRlc3RzL2VzNi9TZXRfU2V0W1N5bWJvbC5zcGVjaWVzXS5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvU2V0X1NldF9pdGVyYXRvcl9wcm90
b3R5cGVfY2hhaW4uanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMv
ZXM2L1NldF9iYXNpY19mdW5jdGlvbmFsaXR5LmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9l
czYvU2V0X2NvbnN0cnVjdG9yX2FjY2VwdHNfbnVsbC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiB0ZXN0cy9lczYvU2V0X2NvbnN0cnVjdG9yX2FyZ3VtZW50cy5qczogQWRk
ZWQuCisgICAgICAgICogdGVzdHMvZXM2L1NldF9jb25zdHJ1Y3Rvcl9pbnZva2VzX2FkZC5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0LlNldC5wcm90b3R5cGUuYWRkKToKKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAqIHRlc3RzL2VzNi9TZXRfY29uc3RydWN0b3JfcmVxdWlyZXNfbmV3LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9TZXRfaXRlcmF0b3Jf
Y2xvc2luZy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICh0ZXN0LlNldC5w
cm90b3R5cGUuYWRkKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9TdHJp
bmcucHJvdG90eXBlX0hUTUxfbWV0aG9kc19leGlzdGVuY2UuanM6IEFkZGVkLgorICAgICAgICAo
dGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfSFRNTF9tZXRob2Rz
X3F1b3Rlc19pbl9hcmd1bWVudHNfYXJlX2VzY2FwZWQuanM6IEFkZGVkLgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfSFRNTF9tZXRob2RzX3Rh
Z3NfbmFtZXNfYXJlX2xvd2VyY2FzZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAg
ICAgKiB0ZXN0cy9lczYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2RzX1N0cmluZy5wcm90b3R5cGUu
Y29kZVBvaW50QXQuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMv
ZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90eXBlLmVuZHNXaXRoLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9TdHJpbmcucHJv
dG90eXBlX21ldGhvZHNfU3RyaW5nLnByb3RvdHlwZS5pbmNsdWRlcy5qczogQWRkZWQuCisgICAg
ICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2Rz
X1N0cmluZy5wcm90b3R5cGUubm9ybWFsaXplLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgor
ICAgICAgICAqIHRlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBlX21ldGhvZHNfU3RyaW5nLnByb3Rv
dHlwZS5yZXBlYXQuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMv
ZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGgu
anM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1N0cmluZy5w
cm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0uanM6IEFk
ZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5
cGVfbWV0aG9kc19TdHJpbmdfaXRlcmF0b3JfcHJvdG90eXBlX2NoYWluLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9TdHJpbmdfc3RhdGljX21ldGhvZHNf
U3RyaW5nLmZyb21Db2RlUG9pbnQuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogdGVzdHMvZXM2L1N0cmluZ19zdGF0aWNfbWV0aG9kc19TdHJpbmcucmF3LmpzOiBBZGRlZC4K
KyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9TeW1ib2xfSlNPTi5zdHJpbmdp
ZnlfaWdub3Jlc19zeW1ib2xzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi9TeW1ib2xfT2JqZWN0LmRlZmluZVByb3BlcnR5X3N1cHBvcnQuanM6IEFkZGVk
LgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1N5bWJvbF9PYmplY3RzeW1i
b2wuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1N5bWJv
bF9iYXNpY19mdW5jdGlvbmFsaXR5LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAg
ICAqIHRlc3RzL2VzNi9TeW1ib2xfY2FuX2NvbnZlcnRfd2l0aF9TdHJpbmcuanM6IEFkZGVkLgor
ICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1N5bWJvbF9jYW5ub3RfY29lcmNl
X3RvX3N0cmluZ19vcl9udW1iZXIuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogdGVzdHMvZXM2L1N5bWJvbF9nbG9iYWxfc3ltYm9sX3JlZ2lzdHJ5LmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9TeW1ib2xfbmV3X1N5bWJvbF90aHJv
d3MuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1N5bWJv
bF9zeW1ib2xfa2V5c19hcmVfaGlkZGVuX3RvX3ByZS1FUzZfY29kZS5qczogQWRkZWQuCisgICAg
ICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvU3ltYm9sX3R5cGVvZl9zdXBwb3J0Lmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9Vbmljb2RlX2Nv
ZGVfcG9pbnRfZXNjYXBlc19pbl9pZGVudGlmaWVycy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiB0ZXN0cy9lczYvVW5pY29kZV9jb2RlX3BvaW50X2VzY2FwZXNfaW5fc3Ry
aW5ncy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvV2Vh
a01hcF9XZWFrTWFwLnByb3RvdHlwZS5kZWxldGUuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvZXM2L1dlYWtNYXBfV2Vha01hcC5wcm90b3R5cGUuc2V0X3JldHVy
bnNfdGhpcy5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvZXM2L1dlYWtNYXBfYmFzaWNfZnVu
Y3Rpb25hbGl0eS5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvZXM2L1dlYWtNYXBfY29uc3Ry
dWN0b3JfYWNjZXB0c19udWxsLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi9XZWFrTWFwX2NvbnN0cnVjdG9yX2FyZ3VtZW50cy5qczogQWRkZWQuCisgICAg
ICAgICogdGVzdHMvZXM2L1dlYWtNYXBfY29uc3RydWN0b3JfaW52b2tlc19zZXQuanM6IEFkZGVk
LgorICAgICAgICAqIHRlc3RzL2VzNi9XZWFrTWFwX2NvbnN0cnVjdG9yX3JlcXVpcmVzX25ldy5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvV2Vha01hcF9m
cm96ZW5fb2JqZWN0c19hc19rZXlzLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9lczYvV2Vh
a01hcF9pdGVyYXRvcl9jbG9zaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuKToKKyAgICAg
ICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9XZWFrTWFwX25vX1dlYWtNYXAucHJvdG90
eXBlLmNsZWFyX21ldGhvZC5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvZXM2L1dlYWtTZXRf
V2Vha1NldC5wcm90b3R5cGUuYWRkX3JldHVybnNfdGhpcy5qczogQWRkZWQuCisgICAgICAgICh0
ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvV2Vha1NldF9XZWFrU2V0LnByb3RvdHlwZS5kZWxl
dGUuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1dlYWtT
ZXRfYmFzaWNfZnVuY3Rpb25hbGl0eS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAg
ICAgKiB0ZXN0cy9lczYvV2Vha1NldF9jb25zdHJ1Y3Rvcl9hY2NlcHRzX251bGwuanM6IEFkZGVk
LgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L1dlYWtTZXRfY29uc3RydWN0
b3JfYXJndW1lbnRzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3Rz
L2VzNi9XZWFrU2V0X2NvbnN0cnVjdG9yX2ludm9rZXNfYWRkLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QuV2Vha1NldC5wcm90b3R5cGUuYWRkKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi9XZWFrU2V0X2NvbnN0cnVjdG9yX3JlcXVpcmVzX25ldy5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvV2Vha1NldF9pdGVyYXRvcl9jbG9z
aW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3QpOgorICAgICAg
ICAqIHRlc3RzL2VzNi9XZWFrU2V0X25vX1dlYWtTZXQucHJvdG90eXBlLmNsZWFyX21ldGhvZC5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvX19wcm90b19f
X2luX29iamVjdF9saXRlcmFsc19iYXNpY19zdXBwb3J0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9fX3Byb3RvX19faW5fb2JqZWN0X2xpdGVyYWxzX211
bHRpcGxlX19fcHJvdG9fX19pc19hbl9lcnJvci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiB0ZXN0cy9lczYvX19wcm90b19fX2luX29iamVjdF9saXRlcmFsc19ub3RfYV9j
b21wdXRlZF9wcm9wZXJ0eS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0
ZXN0cy9lczYvX19wcm90b19fX2luX29iamVjdF9saXRlcmFsc19ub3RfYV9zaG9ydGhhbmRfbWV0
aG9kLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9fX3By
b3RvX19faW5fb2JqZWN0X2xpdGVyYWxzX25vdF9hX3Nob3J0aGFuZF9wcm9wZXJ0eS5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvYXJyb3dfZnVuY3Rpb25z
XzBfcGFyYW1ldGVycy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0
cy9lczYvYXJyb3dfZnVuY3Rpb25zXzFfcGFyYW1ldGVyX25vX2JyYWNrZXRzLmpzOiBBZGRlZC4K
KyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9hcnJvd19mdW5jdGlvbnNfY2Fu
dF9iZV9ib3VuZF9jYW5fYmVfY3VycmllZC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LmQueSk6
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvYXJyb3dfZnVuY3Rpb25zX2Nv
cnJlY3RfcHJlY2VkZW5jZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0
ZXN0cy9lczYvYXJyb3dfZnVuY3Rpb25zX2xleGljYWxfYXJndW1lbnRzX2JpbmRpbmcuanM6IEFk
ZGVkLgorICAgICAgICAodGVzdC5mKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3Rz
L2VzNi9hcnJvd19mdW5jdGlvbnNfbGV4aWNhbF9uZXcudGFyZ2V0X2JpbmRpbmcuanM6IEFkZGVk
LgorICAgICAgICAodGVzdC5DKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2Vz
Ni9hcnJvd19mdW5jdGlvbnNfbGV4aWNhbF9zdXBlcl9iaW5kaW5nLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHRlc3QuQi5wcm90b3R5cGUucXV4KToKKyAgICAgICAgKHRlc3QuQik6CisgICAgICAgICh0
ZXN0LkMucHJvdG90eXBlLmJheik6CisgICAgICAgICh0ZXN0LkMpOgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvZXM2L2Fycm93X2Z1bmN0aW9uc19sZXhpY2FsX3RoaXNfYmluZGlu
Zy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LmQueSk6CisgICAgICAgICh0ZXN0KToKKyAgICAg
ICAgKiB0ZXN0cy9lczYvYXJyb3dfZnVuY3Rpb25zX211bHRpcGxlX3BhcmFtZXRlcnMuanM6IEFk
ZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2Fycm93X2Z1bmN0aW9u
c19ub19saW5lX2JyZWFrX2JldHdlZW5fcGFyYW1zX2FuZF9jb2RlXz1fY29kZS5qczogQWRkZWQu
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvYXJyb3dfZnVuY3Rpb25zX25v
X3Byb3RvdHlwZV9wcm9wZXJ0eS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KiB0ZXN0cy9lczYvYXJyb3dfZnVuY3Rpb25zX3RoaXNfdW5jaGFuZ2VkX2J5X2NhbGxfb3JfYXBw
bHkuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5kLnkpOgorICAgICAgICAodGVzdCk6CisgICAg
ICAgICogdGVzdHMvZXM2L2Jsb2NrLWxldmVsX2Z1bmN0aW9uX2RlY2xhcmF0aW9uLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHRlc3QuZik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9l
czYvY2xhc3NfYWNjZXNzb3JfcHJvcGVydGllcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkMu
cHJvdG90eXBlLmdldCBmb28pOgorICAgICAgICAodGVzdC5DLnByb3RvdHlwZS5zZXQgYmFyKToK
KyAgICAgICAgKHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYv
Y2xhc3NfYW5vbnltb3VzX2NsYXNzLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9lczYvY2xh
c3NfY2xhc3NfZXhwcmVzc2lvbi5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LnJldHVybi50eXBl
b2YuQyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvY2xhc3NfY2xhc3Nf
bmFtZV9pc19sZXhpY2FsbHlfc2NvcGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuQy5wcm90
b3R5cGUubWV0aG9kKToKKyAgICAgICAgKHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAgICAg
ICAgKiB0ZXN0cy9lczYvY2xhc3NfY2xhc3Nfc3RhdGVtZW50LmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvY2xhc3NfY29t
cHV0ZWRfYWNjZXNzb3JfcHJvcGVydGllcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkMucHJv
dG90eXBlLmdldCBnYXJwbHkpOgorICAgICAgICAodGVzdC5DLnByb3RvdHlwZS5zZXQgZ3JhdWx0
KToKKyAgICAgICAgKHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9l
czYvY2xhc3NfY29tcHV0ZWRfbmFtZXNfdGVtcG9yYWxfZGVhZF96b25lLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QudHJ5LkIucHJvdG90eXBlLkMpOgorICAgICAgICAodGVzdC50cnkuQik6Cisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvY2xhc3NfY29tcHV0ZWRfcHJvdG90
eXBlX21ldGhvZHMuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5DLnByb3RvdHlwZS5mb28pOgor
ICAgICAgICAodGVzdC5DKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9j
bGFzc19jb21wdXRlZF9zdGF0aWNfYWNjZXNzb3JfcHJvcGVydGllcy5qczogQWRkZWQuCisgICAg
ICAgICh0ZXN0LkMucHJvdG90eXBlLmdldCBnYXJwbHkpOgorICAgICAgICAodGVzdC5DLnByb3Rv
dHlwZS5zZXQgZ3JhdWx0KToKKyAgICAgICAgKHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgKiB0ZXN0cy9lczYvY2xhc3NfY29tcHV0ZWRfc3RhdGljX21ldGhvZHMuanM6IEFkZGVk
LgorICAgICAgICAodGVzdC5DLmZvbyk6CisgICAgICAgICh0ZXN0LkMpOgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogdGVzdHMvZXM2L2NsYXNzX2NvbnN0cnVjdG9yLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvY2xh
c3NfY29uc3RydWN0b3JfcmVxdWlyZXNfbmV3LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuQyk6
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvY2xhc3NfZXh0ZW5kcy5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0LkIpOgorICAgICAgICAodGVzdC5DKToKKyAgICAgICAgKHRl
c3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9jbGFzc19leHRlbmRzX2V4cHJlc3Npb25zLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0
cy9lczYvY2xhc3NfZXh0ZW5kc19udWxsLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuQyk6Cisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvY2xhc3NfaW1wbGljaXRfc3RyaWN0
X21vZGUuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5DLm1ldGhvZCk6CisgICAgICAgICh0ZXN0
LkMpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2NsYXNzX2lzX2Jsb2Nr
LXNjb3BlZC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkMpOgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogdGVzdHMvZXM2L2NsYXNzX21ldGhvZHNfYXJlbnRfZW51bWVyYWJsZS5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0LkMucHJvdG90eXBlLmZvbyk6CisgICAgICAgICh0ZXN0LkMuYmFy
KToKKyAgICAgICAgKHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9l
czYvY2xhc3NfbmV3LnRhcmdldC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Lm5ldy5mKToKKyAg
ICAgICAgKHRlc3QuQSk6CisgICAgICAgICh0ZXN0LkIpOgorICAgICAgICAodGVzdCk6CisgICAg
ICAgICogdGVzdHMvZXM2L2NsYXNzX3Byb3RvdHlwZV9tZXRob2RzLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHRlc3QuQy5wcm90b3R5cGUubWV0aG9kKToKKyAgICAgICAgKHRlc3QuQyk6CisgICAgICAg
ICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvY2xhc3Nfc3RhdGljX2FjY2Vzc29yX3Byb3Bl
cnRpZXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5DLnByb3RvdHlwZS5nZXQgZm9vKToKKyAg
ICAgICAgKHRlc3QuQy5wcm90b3R5cGUuc2V0IGJhcik6CisgICAgICAgICh0ZXN0LkMpOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2NsYXNzX3N0YXRpY19tZXRob2RzLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QuQy5tZXRob2QpOgorICAgICAgICAodGVzdC5DKToKKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9jbGFzc19zdHJpbmcta2V5ZWRfbWV0
aG9kcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkMucHJvdG90eXBlLnN0cmluZ19hcHBlYXJl
ZF9oZXJlKToKKyAgICAgICAgKHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0
ZXN0cy9lczYvY29uc3RfYmFzaWNfc3VwcG9ydC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiB0ZXN0cy9lczYvY29uc3RfYmFzaWNfc3VwcG9ydF9zdHJpY3RfbW9kZS5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvY29uc3RfaXNfYmxv
Y2stc2NvcGVkLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2Vz
Ni9jb25zdF9pc19ibG9jay1zY29wZWRfc3RyaWN0X21vZGUuanM6IEFkZGVkLgorICAgICAgICAo
dGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2NvbnN0X3JlZGVmaW5pbmdfYV9jb25zdF9pc19h
bl9lcnJvci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYv
Y29uc3RfcmVkZWZpbmluZ19hX2NvbnN0X3N0cmljdF9tb2RlLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9jb25zdF90ZW1wb3JhbF9kZWFkX3pvbmUuanM6
IEFkZGVkLgorICAgICAgICAodGVzdC5wYXNzZWQpOgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogdGVzdHMvZXM2L2NvbnN0X3RlbXBvcmFsX2RlYWRfem9uZV9zdHJpY3RfbW9kZS5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0LnBhc3NlZCk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0
ZXN0cy9lczYvZGVmYXVsdF9mdW5jdGlvbl9wYXJhbWV0ZXJzX2FyZ3VtZW50c19vYmplY3RfaW50
ZXJhY3Rpb24uanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2
L2RlZmF1bHRfZnVuY3Rpb25fcGFyYW1ldGVyc19iYXNpY19mdW5jdGlvbmFsaXR5LmpzOiBBZGRl
ZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9kZWZhdWx0X2Z1bmN0aW9u
X3BhcmFtZXRlcnNfZGVmYXVsdHNfY2FuX3JlZmVyX3RvX3ByZXZpb3VzX3BhcmFtcy5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZGVmYXVsdF9mdW5jdGlv
bl9wYXJhbWV0ZXJzX2V4cGxpY2l0X3VuZGVmaW5lZF9kZWZlcnNfdG9fdGhlX2RlZmF1bHQuanM6
IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2RlZmF1bHRfZnVu
Y3Rpb25fcGFyYW1ldGVyc19uZXdfRnVuY3Rpb25fc3VwcG9ydC5qczogQWRkZWQuCisgICAgICAg
ICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZGVmYXVsdF9mdW5jdGlvbl9wYXJhbWV0ZXJz
X3NlcGFyYXRlX3Njb3BlLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QucmV0dXJuKToKKyAgICAg
ICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9kZWZhdWx0X2Z1bmN0aW9uX3BhcmFtZXRl
cnNfdGVtcG9yYWxfZGVhZF96b25lLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAg
ICAqIHRlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2NoYWluZWRfaXRlcmFibGVfZGVzdHJ1Y3R1cmlu
Zy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZGVzdHJ1
Y3R1cmluZ19jaGFpbmVkX29iamVjdF9kZXN0cnVjdHVyaW5nLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2NvbXB1dGVkX3Byb3Bl
cnRpZXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2Rl
c3RydWN0dXJpbmdfZGVmYXVsdHMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfZGVmYXVsdHNfaW5fcGFyYW1ldGVycy5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19k
ZWZhdWx0c19pbl9wYXJhbWV0ZXJzX25ld19GdW5jdGlvbl9zdXBwb3J0LmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2RlZmF1bHRz
X2luX3BhcmFtZXRlcnNfc2VwYXJhdGVfc2NvcGUuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5y
ZXR1cm4pOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2Rlc3RydWN0dXJp
bmdfZGVmYXVsdHNfbGV0X3RlbXBvcmFsX2RlYWRfem9uZS5qczogQWRkZWQuCisgICAgICAgICh0
ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19lbXB0eV9wYXR0ZXJucy5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZGVzdHJ1Y3R1
cmluZ19lbXB0eV9wYXR0ZXJuc19pbl9wYXJhbWV0ZXJzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2luX2Zvci1pbl9sb29wX2hl
YWRzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9kZXN0
cnVjdHVyaW5nX2luX2Zvci1vZl9sb29wX2hlYWRzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAqIHRlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2luX3BhcmFtZXRlcnMuanM6IEFk
ZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdf
aW5fcGFyYW1ldGVyc19hcmd1bWVudHNfaW50ZXJhY3Rpb24uanM6IEFkZGVkLgorICAgICAgICAo
dGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfaW5fcGFyYW1ldGVyc19m
dW5jdGlvbl9sZW5ndGhfcHJvcGVydHkuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAg
ICAgICogdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfaW5fcGFyYW1ldGVyc19uZXdfRnVuY3Rpb25f
c3VwcG9ydC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYv
ZGVzdHJ1Y3R1cmluZ19pdGVyYWJsZV9kZXN0cnVjdHVyaW5nX2V4cHJlc3Npb24uanM6IEFkZGVk
LgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfaXRl
cmF0b3JfY2xvc2luZy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19tdWx0aXBsZXNfaW5fYV9zaW5n
bGVfdmFyX3N0YXRlbWVudC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0
ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19uZXN0ZWQuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfbmVzdGVkX3Jlc3QuanM6IEFkZGVk
LgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfb2Jq
ZWN0X2Rlc3RydWN0dXJpbmdfZXhwcmVzc2lvbi5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiB0ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19vYmplY3RfZGVzdHJ1Y3R1cmluZ193
aXRoX3ByaW1pdGl2ZXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVz
dHMvZXM2L2Rlc3RydWN0dXJpbmdfcGFyZW50aGVzaXNlZF9sZWZ0LWhhbmQtc2lkZV9pc19hX3N5
bnRheF9lcnJvci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9l
czYvZGVzdHJ1Y3R1cmluZ19yZXN0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAg
ICAqIHRlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX3Rocm93c19vbl9udWxsX2FuZF91bmRlZmluZWQu
anM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2Rlc3RydWN0
dXJpbmdfdHJhaWxpbmdfY29tbWFzX2luX2l0ZXJhYmxlX3BhdHRlcm5zLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX3RyYWlsaW5n
X2NvbW1hc19pbl9vYmplY3RfcGF0dGVybnMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfd2l0aF9hcnJheXMuanM6IEFkZGVkLgor
ICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfd2l0aF9h
c3RyYWxfcGxhbmVfc3RyaW5ncy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KiB0ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ193aXRoX2dlbmVyYXRvcl9pbnN0YW5jZXMuanM6IEFk
ZGVkLgorICAgICAgICAodGVzdC5jKToKKyAgICAgICAgKHRlc3QuZSk6CisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ193aXRoX2dlbmVyaWNfaXRlcmFi
bGVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9kZXN0
cnVjdHVyaW5nX3dpdGhfaW5zdGFuY2VzX29mX2dlbmVyaWNfaXRlcmFibGVzLmpzOiBBZGRlZC4K
KyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX3dpdGhf
b2JqZWN0cy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYv
ZGVzdHJ1Y3R1cmluZ193aXRoX3NwYXJzZV9hcnJheXMuanM6IEFkZGVkLgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfd2l0aF9zdHJpbmdzLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9mb3IuLm9mX2xvb3Bz
X2l0ZXJhdG9yX2Nsb3NpbmdfYnJlYWsuanM6IEFkZGVkLgorICAgICAgICAodGVzdC4pOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2Zvci4ub2ZfbG9vcHNfaXRlcmF0b3Jf
Y2xvc2luZ190aHJvdy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Lik6CisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZm9yLi5vZl9sb29wc193aXRoX2FycmF5cy5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZm9yLi5vZl9sb29wc193
aXRoX2FzdHJhbF9wbGFuZV9zdHJpbmdzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAqIHRlc3RzL2VzNi9mb3IuLm9mX2xvb3BzX3dpdGhfZ2VuZXJhdG9yX2luc3RhbmNlcy5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0Lml0ZXJhYmxlKToKKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAqIHRlc3RzL2VzNi9mb3IuLm9mX2xvb3BzX3dpdGhfZ2VuZXJpY19pdGVyYWJsZXMuanM6
IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2Zvci4ub2ZfbG9v
cHNfd2l0aF9pbnN0YW5jZXNfb2ZfZ2VuZXJpY19pdGVyYWJsZXMuanM6IEFkZGVkLgorICAgICAg
ICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2Zvci4ub2ZfbG9vcHNfd2l0aF9zcGFyc2Vf
YXJyYXlzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9m
b3IuLm9mX2xvb3BzX3dpdGhfc3RyaW5ncy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgKiB0ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9hY2Nlc3Nvcl9wcm9wZXJ0
aWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3Quby5nZXQgZm9vKToKKyAgICAgICAgKHRlc3Qu
by5zZXQgZm9vKToKKyAgICAgICAgKiB0ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9i
b3VuZF9mdW5jdGlvbnMuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5mb28pOgorICAgICAgICAo
dGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlfY2xhc3Nf
ZXhwcmVzc2lvbnMuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5yZXR1cm4uZm9vKToKKyAgICAg
ICAgKHRlc3QubmFtZS5zdHJpbmdfYXBwZWFyZWRfaGVyZS50eXBlb2YuYmFyLm5hbWUpOgorICAg
ICAgICAodGVzdC5uYW1lLnN0cmluZ19hcHBlYXJlZF9oZXJlLnR5cGVvZi5iYXIpOgorICAgICAg
ICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlfY2xh
c3NfcHJvdG90eXBlX21ldGhvZHMuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5DLnByb3RvdHlw
ZS5mb28pOgorICAgICAgICAodGVzdC5DKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRl
c3RzL2VzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X2NsYXNzX3N0YXRlbWVudHMuanM6IEFkZGVk
LgorICAgICAgICAodGVzdC5mb28pOgorICAgICAgICAodGVzdC5iYXIubmFtZSk6CisgICAgICAg
ICh0ZXN0LmJhcik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZnVuY3Rp
b25fbmFtZV9wcm9wZXJ0eV9jbGFzc19zdGF0aWNfbWV0aG9kcy5qczogQWRkZWQuCisgICAgICAg
ICh0ZXN0LkMuZm9vKToKKyAgICAgICAgKHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAgICAg
ICAgKiB0ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9mdW5jdGlvbl9leHByZXNzaW9u
cy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZnVuY3Rp
b25fbmFtZV9wcm9wZXJ0eV9mdW5jdGlvbl9zdGF0ZW1lbnRzLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QuZm9vKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9mdW5jdGlv
bl9uYW1lX3Byb3BlcnR5X2lzbnRfd3JpdGFibGVfaXNfY29uZmlndXJhYmxlLmpzOiBBZGRlZC4K
KyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9mdW5jdGlvbl9uYW1lX3Byb3Bl
cnR5X25ld19GdW5jdGlvbi5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0
ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9vYmplY3RfbWV0aG9kc19jbGFzcy5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0Lm8pOgorICAgICAgICAqIHRlc3RzL2VzNi9mdW5jdGlvbl9u
YW1lX3Byb3BlcnR5X29iamVjdF9tZXRob2RzX2Z1bmN0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3Quby5mb28pOgorICAgICAgICAodGVzdC5vLmJhcik6CisgICAgICAgICh0ZXN0Lm8ucXV4
KToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9mdW5jdGlvbl9uYW1lX3By
b3BlcnR5X3Nob3J0aGFuZF9tZXRob2RzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAqIHRlc3RzL2VzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X3Nob3J0aGFuZF9tZXRob2Rz
X25vX2xleGljYWxfYmluZGluZy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KiB0ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9zeW1ib2wta2V5ZWRfbWV0aG9kcy5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0Lm8uc3ltMSk6CisgICAgICAgICh0ZXN0Lm8uc3ltMik6
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9w
ZXJ0eV92YXJpYWJsZXNfY2xhc3MuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5iYXIpOgorICAg
ICAgICAodGVzdC5xdXgpOgorICAgICAgICAqIHRlc3RzL2VzNi9mdW5jdGlvbl9uYW1lX3Byb3Bl
cnR5X3ZhcmlhYmxlc19mdW5jdGlvbi5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LmZvbyk6Cisg
ICAgICAgICh0ZXN0LmJhcik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYv
Z2VuZXJhdG9yc18lR2VuZXJhdG9yUHJvdG90eXBlJS5jb25zdHJ1Y3Rvci5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0LmcpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2dl
bmVyYXRvcnNfJUdlbmVyYXRvclByb3RvdHlwZSUuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5n
ZW5lcmF0b3JGbik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZ2VuZXJh
dG9yc18lR2VuZXJhdG9yUHJvdG90eXBlJS5yZXR1cm4uanM6IEFkZGVkLgorICAgICAgICAodGVz
dC5nZW5lcmF0b3IpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2dlbmVy
YXRvcnNfJUdlbmVyYXRvclByb3RvdHlwZSUudGhyb3cuanM6IEFkZGVkLgorICAgICAgICAodGVz
dC5nZW5lcmF0b3IpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2dlbmVy
YXRvcnNfYmFzaWNfZnVuY3Rpb25hbGl0eS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LmdlbmVy
YXRvcik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZ2VuZXJhdG9yc19j
YW50X3VzZV90aGlzX3dpdGhfbmV3LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuZ2VuZXJhdG9y
KToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9nZW5lcmF0b3JzX2NvbXB1
dGVkX3Nob3J0aGFuZF9nZW5lcmF0b3JzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAqIHRlc3RzL2VzNi9nZW5lcmF0b3JzX2NvbXB1dGVkX3Nob3J0aGFuZF9nZW5lcmF0b3Jz
X2NsYXNzZXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5DLnByb3RvdHlwZS5nYXJwbHkpOgor
ICAgICAgICAodGVzdC5DKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9n
ZW5lcmF0b3JzX2NvcnJlY3RfdGhpc19iaW5kaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3Qu
Z2VuZXJhdG9yKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9nZW5lcmF0
b3JzX2dlbmVyYXRvcl9mdW5jdGlvbl9leHByZXNzaW9ucy5qczogQWRkZWQuCisgICAgICAgICh0
ZXN0LmdlbmVyYXRvcik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZ2Vu
ZXJhdG9yc19zZW5kaW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuZ2VuZXJhdG9yKToKKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9nZW5lcmF0b3JzX3Nob3J0aGFuZF9n
ZW5lcmF0b3JfbWV0aG9kcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0
ZXN0cy9lczYvZ2VuZXJhdG9yc19zaG9ydGhhbmRfZ2VuZXJhdG9yX21ldGhvZHNfY2xhc3Nlcy5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0LkMucHJvdG90eXBlLmdlbmVyYXRvcik6CisgICAgICAg
ICh0ZXN0LkMpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2dlbmVyYXRv
cnNfc3RyaW5nLWtleWVkX3Nob3J0aGFuZF9nZW5lcmF0b3JfbWV0aG9kcy5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZ2VuZXJhdG9yc195aWVsZF8qX2Fy
cmF5cy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Lml0ZXJhdG9yKToKKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAqIHRlc3RzL2VzNi9nZW5lcmF0b3JzX3lpZWxkXypfYXN0cmFsX3BsYW5lX3N0
cmluZ3MuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5pdGVyYXRvcik6CisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZ2VuZXJhdG9yc195aWVsZF8qX2dlbmVyYXRvcl9pbnN0
YW5jZXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5pdGVyYXRvcik6CisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiB0ZXN0cy9lczYvZ2VuZXJhdG9yc195aWVsZF8qX2dlbmVyaWNfaXRlcmFi
bGVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuaXRlcmF0b3IpOgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWllbGRfKl9pbnN0YW5jZXNfb2ZfaXRl
cmFibGVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuaXRlcmF0b3IpOgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWllbGRfKl9pdGVyYXRvcl9jbG9z
aW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuKToKKyAgICAgICAgKHRlc3QuZ2VuKToKKyAg
ICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9nZW5lcmF0b3JzX3lpZWxkXypfaXRl
cmF0b3JfY2xvc2luZ192aWFfdGhyb3cuanM6IEFkZGVkLgorICAgICAgICAodGVzdC4pOgorICAg
ICAgICAodGVzdC5nZW4pOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2dl
bmVyYXRvcnNfeWllbGRfKl9vbl9ub24taXRlcmFibGVzX2lzX2FfcnVudGltZV9lcnJvci5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0Lml0ZXJhdG9yKToKKyAgICAgICAgKHRlc3QpOgorICAgICAg
ICAqIHRlc3RzL2VzNi9nZW5lcmF0b3JzX3lpZWxkXypfc3BhcnNlX2FycmF5cy5qczogQWRkZWQu
CisgICAgICAgICh0ZXN0Lml0ZXJhdG9yKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRl
c3RzL2VzNi9nZW5lcmF0b3JzX3lpZWxkXypfc3RyaW5ncy5qczogQWRkZWQuCisgICAgICAgICh0
ZXN0Lml0ZXJhdG9yKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9nZW5l
cmF0b3JzX3lpZWxkX29wZXJhdG9yX3ByZWNlZGVuY2UuanM6IEFkZGVkLgorICAgICAgICAodGVz
dC5nZW5lcmF0b3IpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L2xldF9i
YXNpY19zdXBwb3J0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3Rz
L2VzNi9sZXRfYmFzaWNfc3VwcG9ydF9zdHJpY3RfbW9kZS5qczogQWRkZWQuCisgICAgICAgICh0
ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvbGV0X2Zvci1sb29wX2l0ZXJhdGlvbl9zY29wZS5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvbGV0X2Zvci1s
b29wX2l0ZXJhdGlvbl9zY29wZV9zdHJpY3RfbW9kZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiB0ZXN0cy9lczYvbGV0X2Zvci1sb29wX3N0YXRlbWVudF9zY29wZS5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvbGV0X2Zvci1sb29w
X3N0YXRlbWVudF9zY29wZV9zdHJpY3RfbW9kZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiB0ZXN0cy9lczYvbGV0X2lzX2Jsb2NrLXNjb3BlZC5qczogQWRkZWQuCisgICAg
ICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvbGV0X2lzX2Jsb2NrLXNjb3BlZF9zdHJp
Y3RfbW9kZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYv
bGV0X3RlbXBvcmFsX2RlYWRfem9uZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LnBhc3NlZCk6
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvbGV0X3RlbXBvcmFsX2RlYWRf
em9uZV9zdHJpY3RfbW9kZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LnBhc3NlZCk6CisgICAg
ICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvbWlzY2VsbGFuZW91c19JbnZhbGlkX0Rh
dGUuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L21pc2Nl
bGxhbmVvdXNfUmVnRXhwX2NvbnN0cnVjdG9yX2Nhbl9hbHRlcl9mbGFncy5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvbWlzY2VsbGFuZW91c19TdHJpbmcu
cHJvdG90eXBlX2Nhc2VfbWV0aG9kc19Vbmljb2RlX3N1cHBvcnQuanM6IEFkZGVkLgorICAgICAg
ICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L21pc2NlbGxhbmVvdXNfYWNjZXNzb3JzX2Fy
ZW50X2NvbnN0cnVjdG9ycy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LmdldCBjYXRjaCk6Cisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvbWlzY2VsbGFuZW91c19idWlsdC1p
bl9wcm90b3R5cGVzX2FyZV9ub3RfaW5zdGFuY2VzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3Qp
OgorICAgICAgICAqIHRlc3RzL2VzNi9taXNjZWxsYW5lb3VzX2R1cGxpY2F0ZV9wcm9wZXJ0eV9u
YW1lc19pbl9zdHJpY3RfbW9kZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KiB0ZXN0cy9lczYvbWlzY2VsbGFuZW91c19mdW5jdGlvbl9sZW5ndGhfaXNfY29uZmlndXJhYmxl
LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuZm4pOgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogdGVzdHMvZXM2L21pc2NlbGxhbmVvdXNfbm9fYXNzaWdubWVudHNfYWxsb3dlZF9pbl9mb3It
aW5faGVhZC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYv
bWlzY2VsbGFuZW91c19ub19lc2NhcGVkX3Jlc2VydmVkX3dvcmRzX2FzX2lkZW50aWZpZXJzLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9taXNjZWxsYW5l
b3VzX25vX3NlbWljb2xvbl9uZWVkZWRfYWZ0ZXJfZG8td2hpbGUuanM6IEFkZGVkLgorICAgICAg
ICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L21pc2NlbGxhbmVvdXNfc3ViY2xhc3NhYmxl
c19Cb29sZWFuX2lzX3N1YmNsYXNzYWJsZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkMpOgor
ICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L21pc2NlbGxhbmVvdXNfc3ViY2xh
c3NhYmxlc19NYXBfaXNfc3ViY2xhc3NhYmxlLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgor
ICAgICAgICAqIHRlc3RzL2VzNi9taXNjZWxsYW5lb3VzX3N1YmNsYXNzYWJsZXNfTnVtYmVyX2lz
X3N1YmNsYXNzYWJsZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkMpOgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogdGVzdHMvZXM2L21pc2NlbGxhbmVvdXNfc3ViY2xhc3NhYmxlc19TZXRf
aXNfc3ViY2xhc3NhYmxlLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRl
c3RzL2VzNi9taXNjZWxsYW5lb3VzX3N1YmNsYXNzYWJsZXNfU3RyaW5nX2lzX3N1YmNsYXNzYWJs
ZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkMpOgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogdGVzdHMvZXM2L25ldy50YXJnZXRfYXNzaWdubWVudF9pc19hbl9lYXJseV9lcnJvci5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0Lm5ldy5mKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi9uZXcudGFyZ2V0X2luX2NvbnN0cnVjdG9ycy5qczogQWRkZWQuCisgICAgICAg
ICh0ZXN0Lm5ldy5mKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9ub24t
c3RyaWN0X2Z1bmN0aW9uX3NlbWFudGljc19mdW5jdGlvbl9zdGF0ZW1lbnRzX2luX2lmLXN0YXRl
bWVudF9jbGF1c2VzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuZm9vKToKKyAgICAgICAgKHRl
c3QuZWxzZS5iYXIpOgorICAgICAgICAodGVzdC5iYXopOgorICAgICAgICAodGVzdC5xdXgpOgor
ICAgICAgICAodGVzdC5lbHNlLnF1eCk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0
cy9lczYvbm9uLXN0cmljdF9mdW5jdGlvbl9zZW1hbnRpY3NfaG9pc3RlZF9ibG9jay1sZXZlbF9m
dW5jdGlvbl9kZWNsYXJhdGlvbi5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LmYpOgorICAgICAg
ICAodGVzdC5nKToKKyAgICAgICAgKHRlc3QuaCk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KiB0ZXN0cy9lczYvbm9uLXN0cmljdF9mdW5jdGlvbl9zZW1hbnRpY3NfbGFiZWxlZF9mdW5jdGlv
bl9zdGF0ZW1lbnRzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QubGFiZWwpOgorICAgICAgICAo
dGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L29iamVjdF9saXRlcmFsX2V4dGVuc2lvbnNfY29t
cHV0ZWRfYWNjZXNzb3JzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3Qub2JqLmdldCB4KToKKyAg
ICAgICAgKHRlc3Qub2JqLnNldCB4KToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3Rz
L2VzNi9vYmplY3RfbGl0ZXJhbF9leHRlbnNpb25zX2NvbXB1dGVkX3Byb3BlcnRpZXMuanM6IEFk
ZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L29iamVjdF9saXRlcmFs
X2V4dGVuc2lvbnNfY29tcHV0ZWRfc2hvcnRoYW5kX21ldGhvZHMuanM6IEFkZGVkLgorICAgICAg
ICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L29iamVjdF9saXRlcmFsX2V4dGVuc2lvbnNf
c2hvcnRoYW5kX21ldGhvZHMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICog
dGVzdHMvZXM2L29iamVjdF9saXRlcmFsX2V4dGVuc2lvbnNfc2hvcnRoYW5kX3Byb3BlcnRpZXMu
anM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L29iamVjdF9s
aXRlcmFsX2V4dGVuc2lvbnNfc3RyaW5nLWtleWVkX3Nob3J0aGFuZF9tZXRob2RzLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9vY3RhbF9hbmRfYmluYXJ5
X2xpdGVyYWxzX2JpbmFyeV9saXRlcmFscy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgKiB0ZXN0cy9lczYvb2N0YWxfYW5kX2JpbmFyeV9saXRlcmFsc19iaW5hcnlfc3VwcG9y
dGVkX2J5X051bWJlci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0
cy9lczYvb2N0YWxfYW5kX2JpbmFyeV9saXRlcmFsc19vY3RhbF9saXRlcmFscy5qczogQWRkZWQu
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvb2N0YWxfYW5kX2JpbmFyeV9s
aXRlcmFsc19vY3RhbF9zdXBwb3J0ZWRfYnlfTnVtYmVyLmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9vd25fcHJvcGVydHlfb3JkZXJfSlNPTi5wYXJzZS5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvb3duX3Byb3Bl
cnR5X29yZGVyX0pTT04uc3RyaW5naWZ5LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAqIHRlc3RzL2VzNi9vd25fcHJvcGVydHlfb3JkZXJfT2JqZWN0LmFzc2lnbi5qczogQWRk
ZWQuCisgICAgICAgICogdGVzdHMvZXM2L293bl9wcm9wZXJ0eV9vcmRlcl9PYmplY3QuZ2V0T3du
UHJvcGVydHlOYW1lcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0
cy9lczYvb3duX3Byb3BlcnR5X29yZGVyX09iamVjdC5rZXlzLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9vd25fcHJvcGVydHlfb3JkZXJfUmVmbGVjdC5v
d25LZXlzX3N0cmluZ19rZXlfb3JkZXIuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAg
ICAgICogdGVzdHMvZXM2L293bl9wcm9wZXJ0eV9vcmRlcl9SZWZsZWN0Lm93bktleXNfc3ltYm9s
X2tleV9vcmRlci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9l
czYvb3duX3Byb3BlcnR5X29yZGVyX2Zvci4uaW4uanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvZXM2L3Byb3Blcl90YWlsX2NhbGxzX3RhaWxfY2FsbF9vcHRpbWlz
YXRpb25fZGlyZWN0X3JlY3Vyc2lvbi5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAg
ICAgKiB0ZXN0cy9lczYvcHJvcGVyX3RhaWxfY2FsbHNfdGFpbF9jYWxsX29wdGltaXNhdGlvbl9t
dXR1YWxfcmVjdXJzaW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuZik6CisgICAgICAgICh0
ZXN0LmcpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3Byb3RvdHlwZV9v
Zl9ib3VuZF9mdW5jdGlvbnNfYXJyb3dfZnVuY3Rpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3QuY29ycmVjdFByb3RvQm91bmQpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMv
ZXM2L3Byb3RvdHlwZV9vZl9ib3VuZF9mdW5jdGlvbnNfYmFzaWNfZnVuY3Rpb25zLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHRlc3QuY29ycmVjdFByb3RvQm91bmQuZik6CisgICAgICAgICh0ZXN0LmNv
cnJlY3RQcm90b0JvdW5kKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9w
cm90b3R5cGVfb2ZfYm91bmRfZnVuY3Rpb25zX2NsYXNzZXMuanM6IEFkZGVkLgorICAgICAgICAo
dGVzdC5jb3JyZWN0UHJvdG9Cb3VuZC5DKToKKyAgICAgICAgKHRlc3QuY29ycmVjdFByb3RvQm91
bmQpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3Byb3RvdHlwZV9vZl9i
b3VuZF9mdW5jdGlvbnNfZ2VuZXJhdG9yX2Z1bmN0aW9ucy5qczogQWRkZWQuCisgICAgICAgICh0
ZXN0LmNvcnJlY3RQcm90b0JvdW5kLmYpOgorICAgICAgICAodGVzdC5jb3JyZWN0UHJvdG9Cb3Vu
ZCk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvcHJvdG90eXBlX29mX2Jv
dW5kX2Z1bmN0aW9uc19zdWJjbGFzc2VzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuY29ycmVj
dFByb3RvQm91bmQuQyk6CisgICAgICAgICh0ZXN0LmNvcnJlY3RQcm90b0JvdW5kKToKKyAgICAg
ICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9yZXN0X3BhcmFtZXRlcnNfYXJndW1lbnRz
X29iamVjdF9pbnRlcmFjdGlvbi5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAg
KiB0ZXN0cy9lczYvcmVzdF9wYXJhbWV0ZXJzX2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanM6IEFkZGVk
LgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3Jlc3RfcGFyYW1ldGVyc19j
YW50X2JlX3VzZWRfaW5fc2V0dGVycy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAg
ICAgKiB0ZXN0cy9lczYvcmVzdF9wYXJhbWV0ZXJzX2Z1bmN0aW9uX2xlbmd0aF9wcm9wZXJ0eS5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvcmVzdF9wYXJh
bWV0ZXJzX25ld19GdW5jdGlvbl9zdXBwb3J0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgor
ICAgICAgICAqIHRlc3RzL2VzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3NwcmVhZGluZ19ub24taXRl
cmFibGVzX2lzX2FfcnVudGltZV9lcnJvci5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgKiB0ZXN0cy9lczYvc3ByZWFkXy4uLl9vcGVyYXRvcl93aXRoX2FycmF5c19pbl9hcnJh
eV9saXRlcmFscy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9l
czYvc3ByZWFkXy4uLl9vcGVyYXRvcl93aXRoX2FycmF5c19pbl9mdW5jdGlvbl9jYWxscy5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvc3ByZWFkXy4uLl9v
cGVyYXRvcl93aXRoX2FzdHJhbF9wbGFuZV9zdHJpbmdzX2luX2FycmF5X2xpdGVyYWxzLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9zcHJlYWRfLi4uX29w
ZXJhdG9yX3dpdGhfYXN0cmFsX3BsYW5lX3N0cmluZ3NfaW5fZnVuY3Rpb25fY2FsbHMuanM6IEFk
ZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3NwcmVhZF8uLi5fb3Bl
cmF0b3Jfd2l0aF9nZW5lcmF0b3JfaW5zdGFuY2VzX2luX2FycmF5cy5qczogQWRkZWQuCisgICAg
ICAgICh0ZXN0Lml0ZXJhYmxlKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2Vz
Ni9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfZ2VuZXJhdG9yX2luc3RhbmNlc19pbl9jYWxscy5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0Lml0ZXJhYmxlKToKKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAqIHRlc3RzL2VzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfZ2VuZXJpY19pdGVyYWJs
ZXNfaW5fYXJyYXlzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3Rz
L2VzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfZ2VuZXJpY19pdGVyYWJsZXNfaW5fY2FsbHMu
anM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3NwcmVhZF8u
Li5fb3BlcmF0b3Jfd2l0aF9pbnN0YW5jZXNfb2ZfaXRlcmFibGVzX2luX2FycmF5cy5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvc3ByZWFkXy4uLl9vcGVy
YXRvcl93aXRoX2luc3RhbmNlc19vZl9pdGVyYWJsZXNfaW5fY2FsbHMuanM6IEFkZGVkLgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3NwcmVhZF8uLi5fb3BlcmF0b3Jfd2l0
aF9zcGFyc2VfYXJyYXlzX2luX2FycmF5X2xpdGVyYWxzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfc3BhcnNl
X2FycmF5c19pbl9mdW5jdGlvbl9jYWxscy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgKiB0ZXN0cy9lczYvc3ByZWFkXy4uLl9vcGVyYXRvcl93aXRoX3N0cmluZ3NfaW5fYXJy
YXlfbGl0ZXJhbHMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMv
ZXM2L3NwcmVhZF8uLi5fb3BlcmF0b3Jfd2l0aF9zdHJpbmdzX2luX2Z1bmN0aW9uX2NhbGxzLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9zdXBlcl9jb25z
dHJ1Y3Rvcl9jYWxsc191c2VfY29ycmVjdF9uZXcudGFyZ2V0X2JpbmRpbmcuanM6IEFkZGVkLgor
ICAgICAgICAodGVzdC5CKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi9z
dXBlcl9leHByZXNzaW9uX2luX2NvbnN0cnVjdG9ycy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0
LkIpOgorICAgICAgICAodGVzdC5DKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3Rz
L2VzNi9zdXBlcl9pbl9tZXRob2RzX21ldGhvZF9jYWxscy5qczogQWRkZWQuCisgICAgICAgICh0
ZXN0LkIucHJvdG90eXBlLnF1eCk6CisgICAgICAgICh0ZXN0LkIpOgorICAgICAgICAodGVzdC5D
LnByb3RvdHlwZS5xdXgpOgorICAgICAgICAodGVzdC5DKToKKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAqIHRlc3RzL2VzNi9zdXBlcl9pbl9tZXRob2RzX3Byb3BlcnR5X2FjY2Vzcy5qczogQWRk
ZWQuCisgICAgICAgICh0ZXN0LkIpOgorICAgICAgICAodGVzdC5DLnByb3RvdHlwZS5xdXV4KToK
KyAgICAgICAgKHRlc3QuQyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYv
c3VwZXJfaXNfc3RhdGljYWxseV9ib3VuZC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkIucHJv
dG90eXBlLnF1eCk6CisgICAgICAgICh0ZXN0LkIpOgorICAgICAgICAodGVzdC5DLnByb3RvdHlw
ZS5xdXgpOgorICAgICAgICAodGVzdC5DKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRl
c3RzL2VzNi9zdXBlcl9tZXRob2RfY2FsbHNfdXNlX2NvcnJlY3RfdGhpc19iaW5kaW5nLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHRlc3QuQi5wcm90b3R5cGUucXV4KToKKyAgICAgICAgKHRlc3QuQik6
CisgICAgICAgICh0ZXN0LkMucHJvdG90eXBlLnF1eCk6CisgICAgICAgICh0ZXN0LkMpOgorICAg
ICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3N1cGVyX3N0YXRlbWVudF9pbl9jb25z
dHJ1Y3RvcnMuanM6IEFkZGVkLgorICAgICAgICAodGVzdC5CKToKKyAgICAgICAgKHRlc3QpOgor
ICAgICAgICAqIHRlc3RzL2VzNi90ZW1wbGF0ZV9zdHJpbmdzX2Jhc2ljX2Z1bmN0aW9uYWxpdHku
anM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3RlbXBsYXRl
X3N0cmluZ3NfbGluZV9icmVha19ub3JtYWxpc2F0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3QpOgorICAgICAgICAqIHRlc3RzL2VzNi90ZW1wbGF0ZV9zdHJpbmdzX3Bhc3NlZF9hcnJheV9p
c19mcm96ZW4uanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2
L3RlbXBsYXRlX3N0cmluZ3NfdGFnZ2VkX3RlbXBsYXRlX3N0cmluZ3MuanM6IEFkZGVkLgorICAg
ICAgICAodGVzdC5mbik6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvdGVt
cGxhdGVfc3RyaW5nc190b1N0cmluZ19jb252ZXJzaW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3QuYS50b1N0cmluZyk6CisgICAgICAgICh0ZXN0LmEudmFsdWVPZik6CisgICAgICAgICh0ZXN0
KToKKyAgICAgICAgKiB0ZXN0cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5mcm9tLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi90eXBlZF9hcnJh
eXNfJVR5cGVkQXJyYXklLm9mLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5jb3B5V2l0aGlu
LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi90eXBlZF9h
cnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5lbnRyaWVzLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnBy
b3RvdHlwZS5ldmVyeS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0
cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUuZmlsbC5qczogQWRkZWQu
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBl
ZEFycmF5JS5wcm90b3R5cGUuZmlsdGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAqIHRlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maW5k
LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi90eXBlZF9h
cnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maW5kSW5kZXguanM6IEFkZGVkLgorICAgICAg
ICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUu
cHJvdG90eXBlLmZvckVhY2guanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICog
dGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmluZGV4T2YuanM6
IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3R5cGVkX2FycmF5
c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmpvaW4uanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBl
LmtleXMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3R5
cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmxhc3RJbmRleE9mLmpzOiBBZGRlZC4K
KyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVk
QXJyYXklLnByb3RvdHlwZS5tYXAuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAg
ICogdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLnJlZHVjZS5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvdHlwZWRfYXJy
YXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUucmVkdWNlUmlnaHQuanM6IEFkZGVkLgorICAgICAg
ICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUu
cHJvdG90eXBlLnJldmVyc2UuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICog
dGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLnNsaWNlLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi90eXBlZF9hcnJheXNf
JVR5cGVkQXJyYXklLnByb3RvdHlwZS5zb21lLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgor
ICAgICAgICAqIHRlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5z
b3J0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi90eXBl
ZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5zdWJhcnJheS5qczogQWRkZWQuCisgICAg
ICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5
JS5wcm90b3R5cGUudmFsdWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAq
IHRlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZVtTeW1ib2wuaXRl
cmF0b3JdLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi90
eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklW1N5bWJvbC5zcGVjaWVzXS5qczogQWRkZWQuCisgICAg
ICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvdHlwZWRfYXJyYXlzX0FycmF5QnVmZmVy
W1N5bWJvbC5zcGVjaWVzXS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0
ZXN0cy9lczYvdHlwZWRfYXJyYXlzX0RhdGFWaWV3X0Zsb2F0MzIuanM6IEFkZGVkLgorICAgICAg
ICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3R5cGVkX2FycmF5c19EYXRhVmlld19GbG9h
dDY0LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi90eXBl
ZF9hcnJheXNfRGF0YVZpZXdfSW50MTYuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAg
ICAgICogdGVzdHMvZXM2L3R5cGVkX2FycmF5c19EYXRhVmlld19JbnQzMi5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvdHlwZWRfYXJyYXlzX0RhdGFWaWV3
X0ludDguanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3R5
cGVkX2FycmF5c19EYXRhVmlld19VaW50MTYuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6Cisg
ICAgICAgICogdGVzdHMvZXM2L3R5cGVkX2FycmF5c19EYXRhVmlld19VaW50MzIuanM6IEFkZGVk
LgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3R5cGVkX2FycmF5c19EYXRh
Vmlld19VaW50OC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9l
czYvdHlwZWRfYXJyYXlzX0Zsb2F0MzJBcnJheS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToK
KyAgICAgICAgKiB0ZXN0cy9lczYvdHlwZWRfYXJyYXlzX0Zsb2F0NjRBcnJheS5qczogQWRkZWQu
CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvdHlwZWRfYXJyYXlzX0ludDE2
QXJyYXkuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3R5
cGVkX2FycmF5c19JbnQzMkFycmF5LmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAg
ICAqIHRlc3RzL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi90eXBlZF9hcnJheXNfVWludDE2QXJyYXkuanM6
IEFkZGVkLgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2L3R5cGVkX2FycmF5
c19VaW50MzJBcnJheS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0
cy9lczYvdHlwZWRfYXJyYXlzX1VpbnQ4QXJyYXkuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6
CisgICAgICAgICogdGVzdHMvZXM2L3R5cGVkX2FycmF5c19VaW50OENsYW1wZWRBcnJheS5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvdHlwZWRfYXJyYXlz
X2NvbnN0cnVjdG9yc19yZXF1aXJlX25ldy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAg
ICAgICAgKiB0ZXN0cy9lczYvdHlwZWRfYXJyYXlzX2NvcnJlY3RfcHJvdG90eXBlX2NoYWlucy5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvd2VsbC1rbm93
bl9zeW1ib2xzX1N5bWJvbC5oYXNJbnN0YW5jZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0LkMp
OgorICAgICAgICAodGVzdC4pOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMvZXM2
L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wuaXNDb25jYXRTcHJlYWRhYmxlLmpzOiBBZGRlZC4K
KyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNf
U3ltYm9sLml0ZXJhdG9yX2FyZ3VtZW50c19vYmplY3QuanM6IEFkZGVkLgorICAgICAgICAodGVz
dCk6CisgICAgICAgICogdGVzdHMvZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wuaXRlcmF0
b3JfZXhpc3RlbmNlLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3Rz
L2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLm1hdGNoLmpzOiBBZGRlZC4KKyAgICAgICAg
KHRlc3QuTy5TeW1ib2wubWF0Y2gpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVzdHMv
ZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wucmVwbGFjZS5qczogQWRkZWQuCisgICAgICAg
ICh0ZXN0Lk8uU3ltYm9sLnJlcGxhY2UpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVz
dHMvZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wuc2VhcmNoLmpzOiBBZGRlZC4KKyAgICAg
ICAgKHRlc3QuTy5TeW1ib2wuc2VhcmNoKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRl
c3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLnNwZWNpZXNfQXJyYXkucHJvdG90eXBl
LmNvbmNhdC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Lm9iai5TeW1ib2wuc3BlY2llcyk6Cisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5
bWJvbC5zcGVjaWVzX0FycmF5LnByb3RvdHlwZS5maWx0ZXIuanM6IEFkZGVkLgorICAgICAgICAo
dGVzdC5vYmouU3ltYm9sLnNwZWNpZXMpOgorICAgICAgICAodGVzdCk6CisgICAgICAgICogdGVz
dHMvZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wuc3BlY2llc19BcnJheS5wcm90b3R5cGUu
bWFwLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3Qub2JqLlN5bWJvbC5zcGVjaWVzKToKKyAgICAg
ICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9s
LnNwZWNpZXNfQXJyYXkucHJvdG90eXBlLnNsaWNlLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3Qu
b2JqLlN5bWJvbC5zcGVjaWVzKToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2Vz
Ni93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLnNwZWNpZXNfQXJyYXkucHJvdG90eXBlLnNwbGlj
ZS5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Lm9iai5TeW1ib2wuc3BlY2llcyk6CisgICAgICAg
ICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5z
cGVjaWVzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNwbGl0XS5qczogQWRkZWQuCisgICAgICAg
ICh0ZXN0Lm9iai5TeW1ib2wuc3BlY2llcyk6CisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0
ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5zcGVjaWVzX2V4aXN0ZW5jZS5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvd2VsbC1rbm93bl9z
eW1ib2xzX1N5bWJvbC5zcGxpdC5qczogQWRkZWQuCisgICAgICAgICh0ZXN0Lk8uU3ltYm9sLnNw
bGl0KToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi93ZWxsLWtub3duX3N5
bWJvbHNfU3ltYm9sLnRvUHJpbWl0aXZlLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QuYS5TeW1i
b2wudG9QcmltaXRpdmUpOgorICAgICAgICAodGVzdC5iLlN5bWJvbC50b1ByaW1pdGl2ZSk6Cisg
ICAgICAgICh0ZXN0LmMuU3ltYm9sLnRvUHJpbWl0aXZlKToKKyAgICAgICAgKHRlc3QpOgorICAg
ICAgICAqIHRlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLnRvU3RyaW5nVGFnLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3QpOgorICAgICAgICAqIHRlc3RzL2VzNi93ZWxsLWtub3du
X3N5bWJvbHNfU3ltYm9sLnRvU3RyaW5nVGFnX21pc2MuX2J1aWx0LWlucy5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0KToKKyAgICAgICAgKiB0ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5
bWJvbC51bnNjb3BhYmxlcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKwogMjAxNS0wOS0w
MyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFdhdGNocG9pbnRz
T25TdHJ1Y3R1cmVTdHViSW5mbyBkb2Vzbid0IG5lZWQgdG8gYmUgcmVmZXJlbmNlIGNvdW50ZWQK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYueWFtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2LnlhbWwJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2LnlhbWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMjA0IEBACisjIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMKKyMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuIAorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uIAorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorIyBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworLS0tCistIHBh
dGg6IGVzNi9fX3Byb3RvX19faW5fb2JqZWN0X2xpdGVyYWxzX2Jhc2ljX3N1cHBvcnQuanMKKyAg
Y21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvX19wcm90b19fX2luX29iamVjdF9saXRl
cmFsc19tdWx0aXBsZV9fX3Byb3RvX19faXNfYW5fZXJyb3IuanMKKyAgY21kOiBydW5FUzYgOm5v
cm1hbAorLSBwYXRoOiBlczYvX19wcm90b19fX2luX29iamVjdF9saXRlcmFsc19ub3RfYV9jb21w
dXRlZF9wcm9wZXJ0eS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9fX3By
b3RvX19faW5fb2JqZWN0X2xpdGVyYWxzX25vdF9hX3Nob3J0aGFuZF9tZXRob2QuanMKKyAgY21k
OiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvX19wcm90b19fX2luX29iamVjdF9saXRlcmFs
c19ub3RfYV9zaG9ydGhhbmRfcHJvcGVydHkuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBw
YXRoOiBlczYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNfQXJyYXkucHJvdG90eXBlLmNvcHlXaXRo
aW4uanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvQXJyYXkucHJvdG90eXBl
X21ldGhvZHNfQXJyYXkucHJvdG90eXBlLmVudHJpZXMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1h
bAorLSBwYXRoOiBlczYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNfQXJyYXkucHJvdG90eXBlLmZp
bGwuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvQXJyYXkucHJvdG90eXBl
X21ldGhvZHNfQXJyYXkucHJvdG90eXBlLmZpbmQuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAor
LSBwYXRoOiBlczYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNfQXJyYXkucHJvdG90eXBlLmZpbmRJ
bmRleC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9BcnJheS5wcm90b3R5
cGVfbWV0aG9kc19BcnJheS5wcm90b3R5cGUua2V5cy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFs
CistIHBhdGg6IGVzNi9BcnJheS5wcm90b3R5cGVfbWV0aG9kc19BcnJheS5wcm90b3R5cGUudmFs
dWVzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L0FycmF5LnByb3RvdHlw
ZV9tZXRob2RzX0FycmF5LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdLmpzCisgIGNtZDogcnVu
RVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0FycmF5LnBy
b3RvdHlwZVtTeW1ib2wudW5zY29wYWJsZXNdLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0g
cGF0aDogZXM2L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0FycmF5X2l0ZXJhdG9yX3Byb3RvdHlw
ZV9jaGFpbi5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9BcnJheV9pc19z
dWJjbGFzc2FibGVfQXJyYXkuaXNBcnJheV9zdXBwb3J0LmpzCisgIGNtZDogcnVuRVM2IDpub3Jt
YWwKKy0gcGF0aDogZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9sZW5ndGhfcHJvcGVydHlfYWNj
ZXNzaW5nLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L0FycmF5X2lzX3N1
YmNsYXNzYWJsZV9sZW5ndGhfcHJvcGVydHlfc2V0dGluZy5qcworICBjbWQ6IHJ1bkVTNiA6bm9y
bWFsCistIHBhdGg6IGVzNi9BcnJheV9zdGF0aWNfbWV0aG9kc19BcnJheS5mcm9tX2FycmF5LWxp
a2Vfb2JqZWN0cy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9BcnJheV9z
dGF0aWNfbWV0aG9kc19BcnJheS5mcm9tX21hcF9mdW5jdGlvbl9hcnJheS1saWtlX29iamVjdHMu
anMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvQXJyYXlfc3RhdGljX21ldGhv
ZHNfQXJyYXkub2YuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvYXJyb3df
ZnVuY3Rpb25zXzBfcGFyYW1ldGVycy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6
IGVzNi9hcnJvd19mdW5jdGlvbnNfMV9wYXJhbWV0ZXJfbm9fYnJhY2tldHMuanMKKyAgY21kOiBy
dW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvYXJyb3dfZnVuY3Rpb25zX2NhbnRfYmVfYm91bmRf
Y2FuX2JlX2N1cnJpZWQuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvYXJy
b3dfZnVuY3Rpb25zX2NvcnJlY3RfcHJlY2VkZW5jZS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFs
CistIHBhdGg6IGVzNi9hcnJvd19mdW5jdGlvbnNfbGV4aWNhbF90aGlzX2JpbmRpbmcuanMKKyAg
Y21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvYXJyb3dfZnVuY3Rpb25zX211bHRpcGxl
X3BhcmFtZXRlcnMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvYXJyb3df
ZnVuY3Rpb25zX25vX2xpbmVfYnJlYWtfYmV0d2Vlbl9wYXJhbXNfYW5kX2NvZGVfPV9jb2RlLmpz
CisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2Fycm93X2Z1bmN0aW9uc190aGlz
X3VuY2hhbmdlZF9ieV9jYWxsX29yX2FwcGx5LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0g
cGF0aDogZXM2L2NsYXNzX2FjY2Vzc29yX3Byb3BlcnRpZXMuanMKKyAgY21kOiBydW5FUzYgOm5v
cm1hbAorLSBwYXRoOiBlczYvY2xhc3NfYW5vbnltb3VzX2NsYXNzLmpzCisgIGNtZDogcnVuRVM2
IDpub3JtYWwKKy0gcGF0aDogZXM2L2NsYXNzX2NsYXNzX2V4cHJlc3Npb24uanMKKyAgY21kOiBy
dW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvY2xhc3NfY2xhc3Nfc3RhdGVtZW50LmpzCisgIGNt
ZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2NsYXNzX2NvbXB1dGVkX25hbWVzX3RlbXBv
cmFsX2RlYWRfem9uZS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9jbGFz
c19jb21wdXRlZF9wcm90b3R5cGVfbWV0aG9kcy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCist
IHBhdGg6IGVzNi9jbGFzc19jb21wdXRlZF9zdGF0aWNfbWV0aG9kcy5qcworICBjbWQ6IHJ1bkVT
NiA6bm9ybWFsCistIHBhdGg6IGVzNi9jbGFzc19jb25zdHJ1Y3Rvci5qcworICBjbWQ6IHJ1bkVT
NiA6bm9ybWFsCistIHBhdGg6IGVzNi9jbGFzc19jb25zdHJ1Y3Rvcl9yZXF1aXJlc19uZXcuanMK
KyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvY2xhc3NfZXh0ZW5kcy5qcworICBj
bWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9jbGFzc19leHRlbmRzX2V4cHJlc3Npb25z
LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2NsYXNzX2V4dGVuZHNfbnVs
bC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9jbGFzc19pbXBsaWNpdF9z
dHJpY3RfbW9kZS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9jbGFzc19p
c19ibG9jay1zY29wZWQuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvY2xh
c3NfbWV0aG9kc19hcmVudF9lbnVtZXJhYmxlLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0g
cGF0aDogZXM2L2NsYXNzX25ldy50YXJnZXQuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBw
YXRoOiBlczYvY2xhc3NfcHJvdG90eXBlX21ldGhvZHMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1h
bAorLSBwYXRoOiBlczYvY2xhc3Nfc3RhdGljX2FjY2Vzc29yX3Byb3BlcnRpZXMuanMKKyAgY21k
OiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvY2xhc3Nfc3RhdGljX21ldGhvZHMuanMKKyAg
Y21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvY2xhc3Nfc3RyaW5nLWtleWVkX21ldGhv
ZHMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvY29uc3RfYmFzaWNfc3Vw
cG9ydC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9jb25zdF9iYXNpY19z
dXBwb3J0X3N0cmljdF9tb2RlLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2
L2NvbnN0X2lzX2Jsb2NrLXNjb3BlZC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6
IGVzNi9jb25zdF9pc19ibG9jay1zY29wZWRfc3RyaWN0X21vZGUuanMKKyAgY21kOiBydW5FUzYg
Om5vcm1hbAorLSBwYXRoOiBlczYvY29uc3RfcmVkZWZpbmluZ19hX2NvbnN0X2lzX2FuX2Vycm9y
LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2NvbnN0X3JlZGVmaW5pbmdf
YV9jb25zdF9zdHJpY3RfbW9kZS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVz
Ni9jb25zdF90ZW1wb3JhbF9kZWFkX3pvbmUuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBw
YXRoOiBlczYvY29uc3RfdGVtcG9yYWxfZGVhZF96b25lX3N0cmljdF9tb2RlLmpzCisgIGNtZDog
cnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2RlZmF1bHRfZnVuY3Rpb25fcGFyYW1ldGVyc19h
cmd1bWVudHNfb2JqZWN0X2ludGVyYWN0aW9uLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0g
cGF0aDogZXM2L2RlZmF1bHRfZnVuY3Rpb25fcGFyYW1ldGVyc19iYXNpY19mdW5jdGlvbmFsaXR5
LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2RlZmF1bHRfZnVuY3Rpb25f
cGFyYW1ldGVyc19kZWZhdWx0c19jYW5fcmVmZXJfdG9fcHJldmlvdXNfcGFyYW1zLmpzCisgIGNt
ZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2RlZmF1bHRfZnVuY3Rpb25fcGFyYW1ldGVy
c19leHBsaWNpdF91bmRlZmluZWRfZGVmZXJzX3RvX3RoZV9kZWZhdWx0LmpzCisgIGNtZDogcnVu
RVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2RlZmF1bHRfZnVuY3Rpb25fcGFyYW1ldGVyc19uZXdf
RnVuY3Rpb25fc3VwcG9ydC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9k
ZWZhdWx0X2Z1bmN0aW9uX3BhcmFtZXRlcnNfc2VwYXJhdGVfc2NvcGUuanMKKyAgY21kOiBydW5F
UzYgOm5vcm1hbAorLSBwYXRoOiBlczYvZGVmYXVsdF9mdW5jdGlvbl9wYXJhbWV0ZXJzX3RlbXBv
cmFsX2RlYWRfem9uZS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9kZXN0
cnVjdHVyaW5nX2NoYWluZWRfaXRlcmFibGVfZGVzdHJ1Y3R1cmluZy5qcworICBjbWQ6IHJ1bkVT
NiA6bm9ybWFsCistIHBhdGg6IGVzNi9kZXN0cnVjdHVyaW5nX2NoYWluZWRfb2JqZWN0X2Rlc3Ry
dWN0dXJpbmcuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvZGVzdHJ1Y3R1
cmluZ19kZWZhdWx0cy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9kZXN0
cnVjdHVyaW5nX2RlZmF1bHRzX2luX3BhcmFtZXRlcnMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1h
bAorLSBwYXRoOiBlczYvZGVzdHJ1Y3R1cmluZ19kZWZhdWx0c19pbl9wYXJhbWV0ZXJzX25ld19G
dW5jdGlvbl9zdXBwb3J0LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2Rl
c3RydWN0dXJpbmdfZGVmYXVsdHNfbGV0X3RlbXBvcmFsX2RlYWRfem9uZS5qcworICBjbWQ6IHJ1
bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9kZXN0cnVjdHVyaW5nX2VtcHR5X3BhdHRlcm5zLmpz
CisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2Rlc3RydWN0dXJpbmdfZW1wdHlf
cGF0dGVybnNfaW5fcGFyYW1ldGVycy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6
IGVzNi9kZXN0cnVjdHVyaW5nX2luX2Zvci1pbl9sb29wX2hlYWRzLmpzCisgIGNtZDogcnVuRVM2
IDpub3JtYWwKKy0gcGF0aDogZXM2L2Rlc3RydWN0dXJpbmdfaW5fZm9yLW9mX2xvb3BfaGVhZHMu
anMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvZGVzdHJ1Y3R1cmluZ19pbl9w
YXJhbWV0ZXJzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2Rlc3RydWN0
dXJpbmdfaW5fcGFyYW1ldGVyc19hcmd1bWVudHNfaW50ZXJhY3Rpb24uanMKKyAgY21kOiBydW5F
UzYgOm5vcm1hbAorLSBwYXRoOiBlczYvZGVzdHJ1Y3R1cmluZ19pbl9wYXJhbWV0ZXJzX2Z1bmN0
aW9uX2xlbmd0aF9wcm9wZXJ0eS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVz
Ni9kZXN0cnVjdHVyaW5nX2luX3BhcmFtZXRlcnNfbmV3X0Z1bmN0aW9uX3N1cHBvcnQuanMKKyAg
Y21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvZGVzdHJ1Y3R1cmluZ19pdGVyYWJsZV9k
ZXN0cnVjdHVyaW5nX2V4cHJlc3Npb24uanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRo
OiBlczYvZGVzdHJ1Y3R1cmluZ19tdWx0aXBsZXNfaW5fYV9zaW5nbGVfdmFyX3N0YXRlbWVudC5q
cworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9kZXN0cnVjdHVyaW5nX25lc3Rl
ZC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9kZXN0cnVjdHVyaW5nX29i
amVjdF9kZXN0cnVjdHVyaW5nX2V4cHJlc3Npb24uanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAor
LSBwYXRoOiBlczYvZGVzdHJ1Y3R1cmluZ19vYmplY3RfZGVzdHJ1Y3R1cmluZ193aXRoX3ByaW1p
dGl2ZXMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvZGVzdHJ1Y3R1cmlu
Z19wYXJlbnRoZXNpc2VkX2xlZnQtaGFuZC1zaWRlX2lzX2Ffc3ludGF4X2Vycm9yLmpzCisgIGNt
ZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2Rlc3RydWN0dXJpbmdfcmVzdC5qcworICBj
bWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9kZXN0cnVjdHVyaW5nX3Rocm93c19vbl9u
dWxsX2FuZF91bmRlZmluZWQuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYv
ZGVzdHJ1Y3R1cmluZ190cmFpbGluZ19jb21tYXNfaW5faXRlcmFibGVfcGF0dGVybnMuanMKKyAg
Y21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvZGVzdHJ1Y3R1cmluZ190cmFpbGluZ19j
b21tYXNfaW5fb2JqZWN0X3BhdHRlcm5zLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0
aDogZXM2L2Rlc3RydWN0dXJpbmdfd2l0aF9hcnJheXMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1h
bAorLSBwYXRoOiBlczYvZGVzdHJ1Y3R1cmluZ193aXRoX2FzdHJhbF9wbGFuZV9zdHJpbmdzLmpz
CisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2Rlc3RydWN0dXJpbmdfd2l0aF9v
YmplY3RzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2Rlc3RydWN0dXJp
bmdfd2l0aF9zcGFyc2VfYXJyYXlzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDog
ZXM2L2Rlc3RydWN0dXJpbmdfd2l0aF9zdHJpbmdzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwK
Ky0gcGF0aDogZXM2L2Zvci4ub2ZfbG9vcHNfd2l0aF9hcnJheXMuanMKKyAgY21kOiBydW5FUzYg
Om5vcm1hbAorLSBwYXRoOiBlczYvZm9yLi5vZl9sb29wc193aXRoX2FzdHJhbF9wbGFuZV9zdHJp
bmdzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2Zvci4ub2ZfbG9vcHNf
d2l0aF9zcGFyc2VfYXJyYXlzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2
L2Zvci4ub2ZfbG9vcHNfd2l0aF9zdHJpbmdzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0g
cGF0aDogZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlfY2xhc3NfcHJvdG90eXBlX21ldGhvZHMu
anMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvZnVuY3Rpb25fbmFtZV9wcm9w
ZXJ0eV9jbGFzc19zdGF0aWNfbWV0aG9kcy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBh
dGg6IGVzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X2Z1bmN0aW9uX2V4cHJlc3Npb25zLmpzCisg
IGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlf
ZnVuY3Rpb25fc3RhdGVtZW50cy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVz
Ni9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X25ld19GdW5jdGlvbi5qcworICBjbWQ6IHJ1bkVTNiA6
bm9ybWFsCistIHBhdGg6IGVzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X3Nob3J0aGFuZF9tZXRo
b2RzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L0hUTUwtc3R5bGVfY29t
bWVudHMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvbGV0X2Jhc2ljX3N1
cHBvcnQuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvbGV0X2Jhc2ljX3N1
cHBvcnRfc3RyaWN0X21vZGUuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYv
bGV0X2Zvci1sb29wX2l0ZXJhdGlvbl9zY29wZS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCist
IHBhdGg6IGVzNi9sZXRfZm9yLWxvb3BfaXRlcmF0aW9uX3Njb3BlX3N0cmljdF9tb2RlLmpzCisg
IGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L2xldF9mb3ItbG9vcF9zdGF0ZW1lbnRf
c2NvcGUuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvbGV0X2Zvci1sb29w
X3N0YXRlbWVudF9zY29wZV9zdHJpY3RfbW9kZS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCist
IHBhdGg6IGVzNi9sZXRfaXNfYmxvY2stc2NvcGVkLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwK
Ky0gcGF0aDogZXM2L2xldF9pc19ibG9jay1zY29wZWRfc3RyaWN0X21vZGUuanMKKyAgY21kOiBy
dW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvbGV0X3RlbXBvcmFsX2RlYWRfem9uZS5qcworICBj
bWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9sZXRfdGVtcG9yYWxfZGVhZF96b25lX3N0
cmljdF9tb2RlLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L01hcF8tMF9r
ZXlfY29udmVydHNfdG9fKzAuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYv
TWFwX2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRo
OiBlczYvTWFwX2NvbnN0cnVjdG9yX2FjY2VwdHNfbnVsbC5qcworICBjbWQ6IHJ1bkVTNiA6bm9y
bWFsCistIHBhdGg6IGVzNi9NYXBfY29uc3RydWN0b3JfYXJndW1lbnRzLmpzCisgIGNtZDogcnVu
RVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L01hcF9jb25zdHJ1Y3Rvcl9pbnZva2VzX3NldC5qcwor
ICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9NYXBfY29uc3RydWN0b3JfcmVxdWly
ZXNfbmV3LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L01hcF9NYXAucHJv
dG90eXBlLmNsZWFyLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L01hcF9N
YXAucHJvdG90eXBlLmRlbGV0ZS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVz
Ni9NYXBfTWFwLnByb3RvdHlwZS5lbnRyaWVzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0g
cGF0aDogZXM2L01hcF9NYXAucHJvdG90eXBlLmZvckVhY2guanMKKyAgY21kOiBydW5FUzYgOm5v
cm1hbAorLSBwYXRoOiBlczYvTWFwX01hcC5wcm90b3R5cGUua2V5cy5qcworICBjbWQ6IHJ1bkVT
NiA6bm9ybWFsCistIHBhdGg6IGVzNi9NYXBfTWFwLnByb3RvdHlwZS5zZXRfcmV0dXJuc190aGlz
LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L01hcF9NYXAucHJvdG90eXBl
LnNpemUuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvTWFwX01hcC5wcm90
b3R5cGUudmFsdWVzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L01hcF9N
YXAucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0uanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAor
LSBwYXRoOiBlczYvTWFwX01hcF9pdGVyYXRvcl9wcm90b3R5cGVfY2hhaW4uanMKKyAgY21kOiBy
dW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvTWF0aF9tZXRob2RzX01hdGguYWNvc2guanMKKyAg
Y21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvTWF0aF9tZXRob2RzX01hdGguYXNpbmgu
anMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvTWF0aF9tZXRob2RzX01hdGgu
YXRhbmguanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvTWF0aF9tZXRob2Rz
X01hdGguY2JydC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9NYXRoX21l
dGhvZHNfTWF0aC5jbHozMi5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9N
YXRoX21ldGhvZHNfTWF0aC5jb3NoLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDog
ZXM2L01hdGhfbWV0aG9kc19NYXRoLmV4cG0xLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0g
cGF0aDogZXM2L01hdGhfbWV0aG9kc19NYXRoLmZyb3VuZC5qcworICBjbWQ6IHJ1bkVTNiA6bm9y
bWFsCistIHBhdGg6IGVzNi9NYXRoX21ldGhvZHNfTWF0aC5oeXBvdC5qcworICBjbWQ6IHJ1bkVT
NiA6bm9ybWFsCistIHBhdGg6IGVzNi9NYXRoX21ldGhvZHNfTWF0aC5pbXVsLmpzCisgIGNtZDog
cnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L01hdGhfbWV0aG9kc19NYXRoLmxvZzEwLmpzCisg
IGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L01hdGhfbWV0aG9kc19NYXRoLmxvZzFw
LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L01hdGhfbWV0aG9kc19NYXRo
LmxvZzIuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvTWF0aF9tZXRob2Rz
X01hdGguc2lnbi5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9NYXRoX21l
dGhvZHNfTWF0aC5zaW5oLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L01h
dGhfbWV0aG9kc19NYXRoLnRhbmguanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBl
czYvTWF0aF9tZXRob2RzX01hdGgudHJ1bmMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBw
YXRoOiBlczYvbWlzY2VsbGFuZW91c19hY2Nlc3NvcnNfYXJlbnRfY29uc3RydWN0b3JzLmpzCisg
IGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L21pc2NlbGxhbmVvdXNfZHVwbGljYXRl
X3Byb3BlcnR5X25hbWVzX2luX3N0cmljdF9tb2RlLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwK
Ky0gcGF0aDogZXM2L21pc2NlbGxhbmVvdXNfSW52YWxpZF9EYXRlLmpzCisgIGNtZDogcnVuRVM2
IDpub3JtYWwKKy0gcGF0aDogZXM2L21pc2NlbGxhbmVvdXNfbm9fZXNjYXBlZF9yZXNlcnZlZF93
b3Jkc19hc19pZGVudGlmaWVycy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVz
Ni9taXNjZWxsYW5lb3VzX25vX3NlbWljb2xvbl9uZWVkZWRfYWZ0ZXJfZG8td2hpbGUuanMKKyAg
Y21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvbWlzY2VsbGFuZW91c19TdHJpbmcucHJv
dG90eXBlX2Nhc2VfbWV0aG9kc19Vbmljb2RlX3N1cHBvcnQuanMKKyAgY21kOiBydW5FUzYgOm5v
cm1hbAorLSBwYXRoOiBlczYvbWlzY2VsbGFuZW91c19zdWJjbGFzc2FibGVzX0Jvb2xlYW5faXNf
c3ViY2xhc3NhYmxlLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L21pc2Nl
bGxhbmVvdXNfc3ViY2xhc3NhYmxlc19NYXBfaXNfc3ViY2xhc3NhYmxlLmpzCisgIGNtZDogcnVu
RVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L21pc2NlbGxhbmVvdXNfc3ViY2xhc3NhYmxlc19OdW1i
ZXJfaXNfc3ViY2xhc3NhYmxlLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2
L21pc2NlbGxhbmVvdXNfc3ViY2xhc3NhYmxlc19TZXRfaXNfc3ViY2xhc3NhYmxlLmpzCisgIGNt
ZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L21pc2NlbGxhbmVvdXNfc3ViY2xhc3NhYmxl
c19TdHJpbmdfaXNfc3ViY2xhc3NhYmxlLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0
aDogZXM2L25ldy50YXJnZXRfaW5fY29uc3RydWN0b3JzLmpzCisgIGNtZDogcnVuRVM2IDpub3Jt
YWwKKy0gcGF0aDogZXM2L25vbi1zdHJpY3RfZnVuY3Rpb25fc2VtYW50aWNzX2Z1bmN0aW9uX3N0
YXRlbWVudHNfaW5faWYtc3RhdGVtZW50X2NsYXVzZXMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1h
bAorLSBwYXRoOiBlczYvbm9uLXN0cmljdF9mdW5jdGlvbl9zZW1hbnRpY3NfbGFiZWxlZF9mdW5j
dGlvbl9zdGF0ZW1lbnRzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L051
bWJlcl9wcm9wZXJ0aWVzX051bWJlci5FUFNJTE9OLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwK
Ky0gcGF0aDogZXM2L051bWJlcl9wcm9wZXJ0aWVzX051bWJlci5pc0Zpbml0ZS5qcworICBjbWQ6
IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9OdW1iZXJfcHJvcGVydGllc19OdW1iZXIuaXNJ
bnRlZ2VyLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L051bWJlcl9wcm9w
ZXJ0aWVzX051bWJlci5pc05hTi5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVz
Ni9OdW1iZXJfcHJvcGVydGllc19OdW1iZXIuaXNTYWZlSW50ZWdlci5qcworICBjbWQ6IHJ1bkVT
NiA6bm9ybWFsCistIHBhdGg6IGVzNi9OdW1iZXJfcHJvcGVydGllc19OdW1iZXIuTUFYX1NBRkVf
SU5URUdFUi5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9OdW1iZXJfcHJv
cGVydGllc19OdW1iZXIuTUlOX1NBRkVfSU5URUdFUi5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFs
CistIHBhdGg6IGVzNi9PYmplY3QucHJvdG90eXBlLl9fcHJvdG9fX19hYnNlbnRfZnJvbV9PYmpl
Y3QuY3JlYXRlbnVsbC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9PYmpl
Y3QucHJvdG90eXBlLl9fcHJvdG9fX19jb3JyZWN0X3Byb3BlcnR5X2Rlc2NyaXB0b3IuanMKKyAg
Y21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvT2JqZWN0LnByb3RvdHlwZS5fX3Byb3Rv
X19fZ2V0X3Byb3RvdHlwZS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9P
YmplY3QucHJvdG90eXBlLl9fcHJvdG9fX19wcmVzZW50X2luX2hhc093blByb3BlcnR5LmpzCisg
IGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L09iamVjdC5wcm90b3R5cGUuX19wcm90
b19fX3ByZXNlbnRfaW5fT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMuanMKKyAgY21kOiBydW5F
UzYgOm5vcm1hbAorLSBwYXRoOiBlczYvT2JqZWN0LnByb3RvdHlwZS5fX3Byb3RvX19fc2V0X3By
b3RvdHlwZS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9vYmplY3RfbGl0
ZXJhbF9leHRlbnNpb25zX2NvbXB1dGVkX3Byb3BlcnRpZXMuanMKKyAgY21kOiBydW5FUzYgOm5v
cm1hbAorLSBwYXRoOiBlczYvb2JqZWN0X2xpdGVyYWxfZXh0ZW5zaW9uc19jb21wdXRlZF9zaG9y
dGhhbmRfbWV0aG9kcy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9vYmpl
Y3RfbGl0ZXJhbF9leHRlbnNpb25zX3Nob3J0aGFuZF9tZXRob2RzLmpzCisgIGNtZDogcnVuRVM2
IDpub3JtYWwKKy0gcGF0aDogZXM2L29iamVjdF9saXRlcmFsX2V4dGVuc2lvbnNfc2hvcnRoYW5k
X3Byb3BlcnRpZXMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvb2JqZWN0
X2xpdGVyYWxfZXh0ZW5zaW9uc19zdHJpbmcta2V5ZWRfc2hvcnRoYW5kX21ldGhvZHMuanMKKyAg
Y21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX2Fj
Y2VwdF9wcmltaXRpdmVzX09iamVjdC5mcmVlemUuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAor
LSBwYXRoOiBlczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX2FjY2VwdF9wcmltaXRpdmVzX09iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBw
YXRoOiBlczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX2FjY2VwdF9wcmltaXRpdmVzX09iamVjdC5n
ZXRPd25Qcm9wZXJ0eU5hbWVzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2
L09iamVjdF9zdGF0aWNfbWV0aG9kc19hY2NlcHRfcHJpbWl0aXZlc19PYmplY3QuZ2V0UHJvdG90
eXBlT2YuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvT2JqZWN0X3N0YXRp
Y19tZXRob2RzX2FjY2VwdF9wcmltaXRpdmVzX09iamVjdC5pc0V4dGVuc2libGUuanMKKyAgY21k
OiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX2FjY2Vw
dF9wcmltaXRpdmVzX09iamVjdC5pc0Zyb3plbi5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCist
IHBhdGg6IGVzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfYWNjZXB0X3ByaW1pdGl2ZXNfT2JqZWN0
LmlzU2VhbGVkLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L09iamVjdF9z
dGF0aWNfbWV0aG9kc19hY2NlcHRfcHJpbWl0aXZlc19PYmplY3Qua2V5cy5qcworICBjbWQ6IHJ1
bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfYWNjZXB0X3By
aW1pdGl2ZXNfT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zLmpzCisgIGNtZDogcnVuRVM2IDpub3Jt
YWwKKy0gcGF0aDogZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19hY2NlcHRfcHJpbWl0aXZlc19P
YmplY3Quc2VhbC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9PYmplY3Rf
c3RhdGljX21ldGhvZHNfT2JqZWN0LmFzc2lnbi5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCist
IHBhdGg6IGVzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfT2JqZWN0LmdldE93blByb3BlcnR5U3lt
Ym9scy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9PYmplY3Rfc3RhdGlj
X21ldGhvZHNfT2JqZWN0LmlzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2
L09iamVjdF9zdGF0aWNfbWV0aG9kc19PYmplY3Quc2V0UHJvdG90eXBlT2YuanMKKyAgY21kOiBy
dW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvb2N0YWxfYW5kX2JpbmFyeV9saXRlcmFsc19iaW5h
cnlfbGl0ZXJhbHMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvb2N0YWxf
YW5kX2JpbmFyeV9saXRlcmFsc19iaW5hcnlfc3VwcG9ydGVkX2J5X051bWJlci5qcworICBjbWQ6
IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9vY3RhbF9hbmRfYmluYXJ5X2xpdGVyYWxzX29j
dGFsX2xpdGVyYWxzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L29jdGFs
X2FuZF9iaW5hcnlfbGl0ZXJhbHNfb2N0YWxfc3VwcG9ydGVkX2J5X051bWJlci5qcworICBjbWQ6
IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9vd25fcHJvcGVydHlfb3JkZXJfZm9yLi5pbi5q
cworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9vd25fcHJvcGVydHlfb3JkZXJf
SlNPTi5wYXJzZS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9vd25fcHJv
cGVydHlfb3JkZXJfSlNPTi5zdHJpbmdpZnkuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBw
YXRoOiBlczYvb3duX3Byb3BlcnR5X29yZGVyX09iamVjdC5hc3NpZ24uanMKKyAgY21kOiBydW5F
UzYgOm5vcm1hbAorLSBwYXRoOiBlczYvb3duX3Byb3BlcnR5X29yZGVyX09iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L293bl9w
cm9wZXJ0eV9vcmRlcl9PYmplY3Qua2V5cy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBh
dGg6IGVzNi9vd25fcHJvcGVydHlfb3JkZXJfUmVmbGVjdC5vd25LZXlzX3N0cmluZ19rZXlfb3Jk
ZXIuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvb3duX3Byb3BlcnR5X29y
ZGVyX1JlZmxlY3Qub3duS2V5c19zeW1ib2xfa2V5X29yZGVyLmpzCisgIGNtZDogcnVuRVM2IDpu
b3JtYWwKKy0gcGF0aDogZXM2L1JlZmxlY3RfUmVmbGVjdC5hcHBseS5qcworICBjbWQ6IHJ1bkVT
NiA6bm9ybWFsCistIHBhdGg6IGVzNi9SZWZsZWN0X1JlZmxlY3QuZGVmaW5lUHJvcGVydHkuanMK
KyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvUmVmbGVjdF9SZWZsZWN0LmRlbGV0
ZVByb3BlcnR5LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1JlZmxlY3Rf
UmVmbGVjdC5lbnVtZXJhdGUuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYv
UmVmbGVjdF9SZWZsZWN0LmdldC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVz
Ni9SZWZsZWN0X1JlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmpzCisgIGNtZDogcnVu
RVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1JlZmxlY3RfUmVmbGVjdC5nZXRQcm90b3R5cGVPZi5q
cworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9SZWZsZWN0X1JlZmxlY3QuaGFz
LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1JlZmxlY3RfUmVmbGVjdC5p
c0V4dGVuc2libGUuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvUmVmbGVj
dF9SZWZsZWN0Lm93bktleXNfc3RyaW5nX2tleXMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAor
LSBwYXRoOiBlczYvUmVmbGVjdF9SZWZsZWN0Lm93bktleXNfc3ltYm9sX2tleXMuanMKKyAgY21k
OiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvUmVmbGVjdF9SZWZsZWN0LnByZXZlbnRFeHRl
bnNpb25zLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1JlZmxlY3RfUmVm
bGVjdC5zZXRQcm90b3R5cGVPZi5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVz
Ni9SZWdFeHAucHJvdG90eXBlLmNvbXBpbGUuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBw
YXRoOiBlczYvUmVnRXhwLnByb3RvdHlwZV9wcm9wZXJ0aWVzX1JlZ0V4cC5wcm90b3R5cGUuZmxh
Z3MuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvUmVnRXhwX2lzX3N1YmNs
YXNzYWJsZV9iYXNpY19mdW5jdGlvbmFsaXR5LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0g
cGF0aDogZXM2L1JlZ0V4cF9pc19zdWJjbGFzc2FibGVfUmVnRXhwLnByb3RvdHlwZS5leGVjLmpz
CisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1JlZ0V4cF9pc19zdWJjbGFzc2Fi
bGVfUmVnRXhwLnByb3RvdHlwZS50ZXN0LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0
aDogZXM2L1JlZ0V4cF9zeW50YXhfZXh0ZW5zaW9uc19oeXBoZW5zX2luX2NoYXJhY3Rlcl9zZXRz
LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1JlZ0V4cF9zeW50YXhfZXh0
ZW5zaW9uc19pbmNvbXBsZXRlX3BhdHRlcm5zX2FuZF9xdWFudGlmaWVycy5qcworICBjbWQ6IHJ1
bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9SZWdFeHBfc3ludGF4X2V4dGVuc2lvbnNfaW52YWxp
ZF9iYWNrcmVmZXJlbmNlc19iZWNvbWVfb2N0YWxfZXNjYXBlcy5qcworICBjbWQ6IHJ1bkVTNiA6
bm9ybWFsCistIHBhdGg6IGVzNi9SZWdFeHBfc3ludGF4X2V4dGVuc2lvbnNfaW52YWxpZF9jaGFy
YWN0ZXJfZXNjYXBlcy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9SZWdF
eHBfc3ludGF4X2V4dGVuc2lvbnNfaW52YWxpZF9jb250cm9sLWNoYXJhY3Rlcl9lc2NhcGVzLmpz
CisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1JlZ0V4cF9zeW50YXhfZXh0ZW5z
aW9uc19pbnZhbGlkX2hleGFkZWNpbWFsX2VzY2FwZXMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1h
bAorLSBwYXRoOiBlczYvUmVnRXhwX3N5bnRheF9leHRlbnNpb25zX2ludmFsaWRfVW5pY29kZV9l
c2NhcGVzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1JlZ0V4cF9zeW50
YXhfZXh0ZW5zaW9uc19vY3RhbF9lc2NhcGVfc2VxdWVuY2VzLmpzCisgIGNtZDogcnVuRVM2IDpu
b3JtYWwKKy0gcGF0aDogZXM2L1NldF8tMF9rZXlfY29udmVydHNfdG9fKzAuanMKKyAgY21kOiBy
dW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvU2V0X2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanMKKyAg
Y21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvU2V0X2NvbnN0cnVjdG9yX2FjY2VwdHNf
bnVsbC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9TZXRfY29uc3RydWN0
b3JfYXJndW1lbnRzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1NldF9j
b25zdHJ1Y3Rvcl9pbnZva2VzX2FkZC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6
IGVzNi9TZXRfY29uc3RydWN0b3JfcmVxdWlyZXNfbmV3LmpzCisgIGNtZDogcnVuRVM2IDpub3Jt
YWwKKy0gcGF0aDogZXM2L1NldF9TZXQucHJvdG90eXBlLmFkZF9yZXR1cm5zX3RoaXMuanMKKyAg
Y21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvU2V0X1NldC5wcm90b3R5cGUuY2xlYXIu
anMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvU2V0X1NldC5wcm90b3R5cGUu
ZGVsZXRlLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1NldF9TZXQucHJv
dG90eXBlLmVudHJpZXMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvU2V0
X1NldC5wcm90b3R5cGUuZm9yRWFjaC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6
IGVzNi9TZXRfU2V0LnByb3RvdHlwZS5rZXlzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0g
cGF0aDogZXM2L1NldF9TZXQucHJvdG90eXBlLnNpemUuanMKKyAgY21kOiBydW5FUzYgOm5vcm1h
bAorLSBwYXRoOiBlczYvU2V0X1NldC5wcm90b3R5cGUudmFsdWVzLmpzCisgIGNtZDogcnVuRVM2
IDpub3JtYWwKKy0gcGF0aDogZXM2L1NldF9TZXQucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0u
anMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvU2V0X1NldF9pdGVyYXRvcl9w
cm90b3R5cGVfY2hhaW4uanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvc3By
ZWFkXy4uLl9vcGVyYXRvcl9zcHJlYWRpbmdfbm9uLWl0ZXJhYmxlc19pc19hX3J1bnRpbWVfZXJy
b3IuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvc3ByZWFkXy4uLl9vcGVy
YXRvcl93aXRoX2FycmF5c19pbl9hcnJheV9saXRlcmFscy5qcworICBjbWQ6IHJ1bkVTNiA6bm9y
bWFsCistIHBhdGg6IGVzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfYXJyYXlzX2luX2Z1bmN0
aW9uX2NhbGxzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L3NwcmVhZF8u
Li5fb3BlcmF0b3Jfd2l0aF9hc3RyYWxfcGxhbmVfc3RyaW5nc19pbl9hcnJheV9saXRlcmFscy5q
cworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9zcHJlYWRfLi4uX29wZXJhdG9y
X3dpdGhfc3BhcnNlX2FycmF5c19pbl9hcnJheV9saXRlcmFscy5qcworICBjbWQ6IHJ1bkVTNiA6
bm9ybWFsCistIHBhdGg6IGVzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfc3BhcnNlX2FycmF5
c19pbl9mdW5jdGlvbl9jYWxscy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVz
Ni9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfc3RyaW5nc19pbl9hcnJheV9saXRlcmFscy5qcwor
ICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9TdHJpbmcucHJvdG90eXBlX0hUTUxf
bWV0aG9kc19leGlzdGVuY2UuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYv
U3RyaW5nLnByb3RvdHlwZV9IVE1MX21ldGhvZHNfcXVvdGVzX2luX2FyZ3VtZW50c19hcmVfZXNj
YXBlZC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9TdHJpbmcucHJvdG90
eXBlX0hUTUxfbWV0aG9kc190YWdzX25hbWVzX2FyZV9sb3dlcmNhc2UuanMKKyAgY21kOiBydW5F
UzYgOm5vcm1hbAorLSBwYXRoOiBlczYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2RzX1N0cmluZy5w
cm90b3R5cGUuY29kZVBvaW50QXQuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBl
czYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2RzX1N0cmluZy5wcm90b3R5cGUuZW5kc1dpdGguanMK
KyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvU3RyaW5nLnByb3RvdHlwZV9tZXRo
b2RzX1N0cmluZy5wcm90b3R5cGUuaW5jbHVkZXMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAor
LSBwYXRoOiBlczYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2RzX1N0cmluZy5wcm90b3R5cGUucmVw
ZWF0LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1N0cmluZy5wcm90b3R5
cGVfbWV0aG9kc19TdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGguanMKKyAgY21kOiBydW5FUzYg
Om5vcm1hbAorLSBwYXRoOiBlczYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2RzX1N0cmluZy5wcm90
b3R5cGVbU3ltYm9sLml0ZXJhdG9yXS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6
IGVzNi9TdHJpbmcucHJvdG90eXBlX21ldGhvZHNfU3RyaW5nX2l0ZXJhdG9yX3Byb3RvdHlwZV9j
aGFpbi5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9TdHJpbmdfc3RhdGlj
X21ldGhvZHNfU3RyaW5nLmZyb21Db2RlUG9pbnQuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAor
LSBwYXRoOiBlczYvU3RyaW5nX3N0YXRpY19tZXRob2RzX1N0cmluZy5yYXcuanMKKyAgY21kOiBy
dW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvc3VwZXJfY29uc3RydWN0b3JfY2FsbHNfdXNlX2Nv
cnJlY3RfbmV3LnRhcmdldF9iaW5kaW5nLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0
aDogZXM2L3N1cGVyX2V4cHJlc3Npb25faW5fY29uc3RydWN0b3JzLmpzCisgIGNtZDogcnVuRVM2
IDpub3JtYWwKKy0gcGF0aDogZXM2L3N1cGVyX2luX21ldGhvZHNfbWV0aG9kX2NhbGxzLmpzCisg
IGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L3N1cGVyX2luX21ldGhvZHNfcHJvcGVy
dHlfYWNjZXNzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L3N1cGVyX2lz
X3N0YXRpY2FsbHlfYm91bmQuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYv
c3VwZXJfbWV0aG9kX2NhbGxzX3VzZV9jb3JyZWN0X3RoaXNfYmluZGluZy5qcworICBjbWQ6IHJ1
bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9zdXBlcl9zdGF0ZW1lbnRfaW5fY29uc3RydWN0b3Jz
LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1N5bWJvbF9iYXNpY19mdW5j
dGlvbmFsaXR5LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1N5bWJvbF9j
YW5fY29udmVydF93aXRoX1N0cmluZy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6
IGVzNi9TeW1ib2xfY2Fubm90X2NvZXJjZV90b19zdHJpbmdfb3JfbnVtYmVyLmpzCisgIGNtZDog
cnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1N5bWJvbF9nbG9iYWxfc3ltYm9sX3JlZ2lzdHJ5
LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1N5bWJvbF9KU09OLnN0cmlu
Z2lmeV9pZ25vcmVzX3N5bWJvbHMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBl
czYvU3ltYm9sX25ld19TeW1ib2xfdGhyb3dzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0g
cGF0aDogZXM2L1N5bWJvbF9PYmplY3QuZGVmaW5lUHJvcGVydHlfc3VwcG9ydC5qcworICBjbWQ6
IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9TeW1ib2xfT2JqZWN0c3ltYm9sLmpzCisgIGNt
ZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1N5bWJvbF9zeW1ib2xfa2V5c19hcmVfaGlk
ZGVuX3RvX3ByZS1FUzZfY29kZS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVz
Ni9TeW1ib2xfdHlwZW9mX3N1cHBvcnQuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRo
OiBlczYvdGVtcGxhdGVfc3RyaW5nc19iYXNpY19mdW5jdGlvbmFsaXR5LmpzCisgIGNtZDogcnVu
RVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L3RlbXBsYXRlX3N0cmluZ3NfbGluZV9icmVha19ub3Jt
YWxpc2F0aW9uLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L3RlbXBsYXRl
X3N0cmluZ3NfcGFzc2VkX2FycmF5X2lzX2Zyb3plbi5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFs
CistIHBhdGg6IGVzNi90ZW1wbGF0ZV9zdHJpbmdzX3RhZ2dlZF90ZW1wbGF0ZV9zdHJpbmdzLmpz
CisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L3RlbXBsYXRlX3N0cmluZ3NfdG9T
dHJpbmdfY29udmVyc2lvbi5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi90
eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5zdWJhcnJheS5qcworICBjbWQ6IHJ1
bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi90eXBlZF9hcnJheXNfY29uc3RydWN0b3JzX3JlcXVp
cmVfbmV3LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L3R5cGVkX2FycmF5
c19EYXRhVmlld19GbG9hdDMyLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2
L3R5cGVkX2FycmF5c19EYXRhVmlld19GbG9hdDY0LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwK
Ky0gcGF0aDogZXM2L3R5cGVkX2FycmF5c19EYXRhVmlld19JbnQxNi5qcworICBjbWQ6IHJ1bkVT
NiA6bm9ybWFsCistIHBhdGg6IGVzNi90eXBlZF9hcnJheXNfRGF0YVZpZXdfSW50MzIuanMKKyAg
Y21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzX0RhdGFWaWV3X0lu
dDguanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzX0Rh
dGFWaWV3X1VpbnQxNi5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi90eXBl
ZF9hcnJheXNfRGF0YVZpZXdfVWludDMyLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0
aDogZXM2L3R5cGVkX2FycmF5c19EYXRhVmlld19VaW50OC5qcworICBjbWQ6IHJ1bkVTNiA6bm9y
bWFsCistIHBhdGg6IGVzNi90eXBlZF9hcnJheXNfRmxvYXQzMkFycmF5LmpzCisgIGNtZDogcnVu
RVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L3R5cGVkX2FycmF5c19GbG9hdDY0QXJyYXkuanMKKyAg
Y21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzX0ludDE2QXJyYXku
anMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzX0ludDMy
QXJyYXkuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlz
X0ludDhBcnJheS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi90eXBlZF9h
cnJheXNfVWludDE2QXJyYXkuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYv
dHlwZWRfYXJyYXlzX1VpbnQzMkFycmF5LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0
aDogZXM2L3R5cGVkX2FycmF5c19VaW50OEFycmF5LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwK
Ky0gcGF0aDogZXM2L3R5cGVkX2FycmF5c19VaW50OENsYW1wZWRBcnJheS5qcworICBjbWQ6IHJ1
bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9Vbmljb2RlX2NvZGVfcG9pbnRfZXNjYXBlc19pbl9p
ZGVudGlmaWVycy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9Vbmljb2Rl
X2NvZGVfcG9pbnRfZXNjYXBlc19pbl9zdHJpbmdzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwK
Ky0gcGF0aDogZXM2L1dlYWtNYXBfYmFzaWNfZnVuY3Rpb25hbGl0eS5qcworICBjbWQ6IHJ1bkVT
NiA6bm9ybWFsCistIHBhdGg6IGVzNi9XZWFrTWFwX2NvbnN0cnVjdG9yX2FjY2VwdHNfbnVsbC5q
cworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9XZWFrTWFwX2NvbnN0cnVjdG9y
X2FyZ3VtZW50cy5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9XZWFrTWFw
X2NvbnN0cnVjdG9yX2ludm9rZXNfc2V0LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0
aDogZXM2L1dlYWtNYXBfY29uc3RydWN0b3JfcmVxdWlyZXNfbmV3LmpzCisgIGNtZDogcnVuRVM2
IDpub3JtYWwKKy0gcGF0aDogZXM2L1dlYWtNYXBfZnJvemVuX29iamVjdHNfYXNfa2V5cy5qcwor
ICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi9XZWFrTWFwX25vX1dlYWtNYXAucHJv
dG90eXBlLmNsZWFyX21ldGhvZC5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVz
Ni9XZWFrTWFwX1dlYWtNYXAucHJvdG90eXBlLmRlbGV0ZS5qcworICBjbWQ6IHJ1bkVTNiA6bm9y
bWFsCistIHBhdGg6IGVzNi9XZWFrTWFwX1dlYWtNYXAucHJvdG90eXBlLnNldF9yZXR1cm5zX3Ro
aXMuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvV2Vha1NldF9iYXNpY19m
dW5jdGlvbmFsaXR5LmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1dlYWtT
ZXRfY29uc3RydWN0b3JfYWNjZXB0c19udWxsLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0g
cGF0aDogZXM2L1dlYWtTZXRfY29uc3RydWN0b3JfYXJndW1lbnRzLmpzCisgIGNtZDogcnVuRVM2
IDpub3JtYWwKKy0gcGF0aDogZXM2L1dlYWtTZXRfY29uc3RydWN0b3JfaW52b2tlc19hZGQuanMK
KyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvV2Vha1NldF9jb25zdHJ1Y3Rvcl9y
ZXF1aXJlc19uZXcuanMKKyAgY21kOiBydW5FUzYgOm5vcm1hbAorLSBwYXRoOiBlczYvV2Vha1Nl
dF9ub19XZWFrU2V0LnByb3RvdHlwZS5jbGVhcl9tZXRob2QuanMKKyAgY21kOiBydW5FUzYgOm5v
cm1hbAorLSBwYXRoOiBlczYvV2Vha1NldF9XZWFrU2V0LnByb3RvdHlwZS5hZGRfcmV0dXJuc190
aGlzLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L1dlYWtTZXRfV2Vha1Nl
dC5wcm90b3R5cGUuZGVsZXRlLmpzCisgIGNtZDogcnVuRVM2IDpub3JtYWwKKy0gcGF0aDogZXM2
L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wuaXRlcmF0b3JfYXJndW1lbnRzX29iamVjdC5qcwor
ICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6IGVzNi93ZWxsLWtub3duX3N5bWJvbHNfU3lt
Ym9sLml0ZXJhdG9yX2V4aXN0ZW5jZS5qcworICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCistIHBhdGg6
IGVzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLnVuc2NvcGFibGVzLmpzCisgIGNtZDogcnVu
RVM2IDpub3JtYWwKKy0gcGF0aDogZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9BcnJheS5mcm9t
LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9BcnJheV9pc19zdWJjbGFzc2Fi
bGVfQXJyYXkub2YuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L0FycmF5X2lz
X3N1YmNsYXNzYWJsZV9BcnJheS5wcm90b3R5cGUuY29uY2F0LmpzCisgIGNtZDogcnVuRVM2IDpm
YWlsCistIHBhdGg6IGVzNi9BcnJheV9pc19zdWJjbGFzc2FibGVfQXJyYXkucHJvdG90eXBlLmZp
bHRlci5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvQXJyYXlfaXNfc3ViY2xh
c3NhYmxlX0FycmF5LnByb3RvdHlwZS5tYXAuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0
aDogZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9BcnJheS5wcm90b3R5cGUuc2xpY2UuanMKKyAg
Y21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9BcnJh
eS5wcm90b3R5cGUuc3BsaWNlLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9B
cnJheV9pc19zdWJjbGFzc2FibGVfY29ycmVjdF9wcm90b3R5cGVfY2hhaW4uanMKKyAgY21kOiBy
dW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L0FycmF5X3N0YXRpY19tZXRob2RzX0FycmF5LmZyb21f
Z2VuZXJhdG9yX2luc3RhbmNlcy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYv
QXJyYXlfc3RhdGljX21ldGhvZHNfQXJyYXkuZnJvbV9nZW5lcmljX2l0ZXJhYmxlcy5qcworICBj
bWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvQXJyYXlfc3RhdGljX21ldGhvZHNfQXJyYXku
ZnJvbV9pbnN0YW5jZXNfb2ZfZ2VuZXJpY19pdGVyYWJsZXMuanMKKyAgY21kOiBydW5FUzYgOmZh
aWwKKy0gcGF0aDogZXM2L0FycmF5X3N0YXRpY19tZXRob2RzX0FycmF5LmZyb21faXRlcmF0b3Jf
Y2xvc2luZy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvQXJyYXlfc3RhdGlj
X21ldGhvZHNfQXJyYXkuZnJvbV9tYXBfZnVuY3Rpb25fZ2VuZXJhdG9yX2luc3RhbmNlcy5qcwor
ICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvQXJyYXlfc3RhdGljX21ldGhvZHNfQXJy
YXkuZnJvbV9tYXBfZnVuY3Rpb25fZ2VuZXJpY19pdGVyYWJsZXMuanMKKyAgY21kOiBydW5FUzYg
OmZhaWwKKy0gcGF0aDogZXM2L0FycmF5X3N0YXRpY19tZXRob2RzX0FycmF5LmZyb21fbWFwX2Z1
bmN0aW9uX2luc3RhbmNlc19vZl9pdGVyYWJsZXMuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0g
cGF0aDogZXM2L0FycmF5X3N0YXRpY19tZXRob2RzX0FycmF5W1N5bWJvbC5zcGVjaWVzXS5qcwor
ICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvYXJyb3dfZnVuY3Rpb25zX2xleGljYWxf
YXJndW1lbnRzX2JpbmRpbmcuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L2Fy
cm93X2Z1bmN0aW9uc19sZXhpY2FsX25ldy50YXJnZXRfYmluZGluZy5qcworICBjbWQ6IHJ1bkVT
NiA6ZmFpbAorLSBwYXRoOiBlczYvYXJyb3dfZnVuY3Rpb25zX2xleGljYWxfc3VwZXJfYmluZGlu
Zy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvYXJyb3dfZnVuY3Rpb25zX25v
X3Byb3RvdHlwZV9wcm9wZXJ0eS5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYv
YmxvY2stbGV2ZWxfZnVuY3Rpb25fZGVjbGFyYXRpb24uanMKKyAgY21kOiBydW5FUzYgOmZhaWwK
Ky0gcGF0aDogZXM2L2NsYXNzX2NsYXNzX25hbWVfaXNfbGV4aWNhbGx5X3Njb3BlZC5qcworICBj
bWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvY2xhc3NfY29tcHV0ZWRfYWNjZXNzb3JfcHJv
cGVydGllcy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvY2xhc3NfY29tcHV0
ZWRfc3RhdGljX2FjY2Vzc29yX3Byb3BlcnRpZXMuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0g
cGF0aDogZXM2L2Rlc3RydWN0dXJpbmdfY29tcHV0ZWRfcHJvcGVydGllcy5qcworICBjbWQ6IHJ1
bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvZGVzdHJ1Y3R1cmluZ19kZWZhdWx0c19pbl9wYXJhbWV0
ZXJzX3NlcGFyYXRlX3Njb3BlLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9k
ZXN0cnVjdHVyaW5nX2l0ZXJhdG9yX2Nsb3NpbmcuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0g
cGF0aDogZXM2L2Rlc3RydWN0dXJpbmdfbmVzdGVkX3Jlc3QuanMKKyAgY21kOiBydW5FUzYgOmZh
aWwKKy0gcGF0aDogZXM2L2Rlc3RydWN0dXJpbmdfd2l0aF9nZW5lcmF0b3JfaW5zdGFuY2VzLmpz
CisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9kZXN0cnVjdHVyaW5nX3dpdGhfZ2Vu
ZXJpY19pdGVyYWJsZXMuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L2Rlc3Ry
dWN0dXJpbmdfd2l0aF9pbnN0YW5jZXNfb2ZfZ2VuZXJpY19pdGVyYWJsZXMuanMKKyAgY21kOiBy
dW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L2Zvci4ub2ZfbG9vcHNfaXRlcmF0b3JfY2xvc2luZ19i
cmVhay5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvZm9yLi5vZl9sb29wc19p
dGVyYXRvcl9jbG9zaW5nX3Rocm93LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVz
Ni9mb3IuLm9mX2xvb3BzX3dpdGhfZ2VuZXJhdG9yX2luc3RhbmNlcy5qcworICBjbWQ6IHJ1bkVT
NiA6ZmFpbAorLSBwYXRoOiBlczYvZm9yLi5vZl9sb29wc193aXRoX2dlbmVyaWNfaXRlcmFibGVz
LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9mb3IuLm9mX2xvb3BzX3dpdGhf
aW5zdGFuY2VzX29mX2dlbmVyaWNfaXRlcmFibGVzLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCist
IHBhdGg6IGVzNi9GdW5jdGlvbl9pc19zdWJjbGFzc2FibGVfY2FuX2JlX2NhbGxlZC5qcworICBj
bWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvRnVuY3Rpb25faXNfc3ViY2xhc3NhYmxlX2Nh
bl9iZV91c2VkX3dpdGhfbmV3LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9G
dW5jdGlvbl9pc19zdWJjbGFzc2FibGVfY29ycmVjdF9wcm90b3R5cGVfY2hhaW4uanMKKyAgY21k
OiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L0Z1bmN0aW9uX2lzX3N1YmNsYXNzYWJsZV9GdW5j
dGlvbi5wcm90b3R5cGUuYXBwbHkuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2
L0Z1bmN0aW9uX2lzX3N1YmNsYXNzYWJsZV9GdW5jdGlvbi5wcm90b3R5cGUuYmluZC5qcworICBj
bWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvRnVuY3Rpb25faXNfc3ViY2xhc3NhYmxlX0Z1
bmN0aW9uLnByb3RvdHlwZS5jYWxsLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVz
Ni9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X2FjY2Vzc29yX3Byb3BlcnRpZXMuanMKKyAgY21kOiBy
dW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlfYm91bmRfZnVu
Y3Rpb25zLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9mdW5jdGlvbl9uYW1l
X3Byb3BlcnR5X2NsYXNzX2V4cHJlc3Npb25zLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBh
dGg6IGVzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X2NsYXNzX3N0YXRlbWVudHMuanMKKyAgY21k
OiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlfaXNudF93
cml0YWJsZV9pc19jb25maWd1cmFibGUuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDog
ZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlfb2JqZWN0X21ldGhvZHNfY2xhc3MuanMKKyAgY21k
OiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlfb2JqZWN0
X21ldGhvZHNfZnVuY3Rpb24uanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L2Z1
bmN0aW9uX25hbWVfcHJvcGVydHlfc2hvcnRoYW5kX21ldGhvZHNfbm9fbGV4aWNhbF9iaW5kaW5n
LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9mdW5jdGlvbl9uYW1lX3Byb3Bl
cnR5X3N5bWJvbC1rZXllZF9tZXRob2RzLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6
IGVzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X3ZhcmlhYmxlc19jbGFzcy5qcworICBjbWQ6IHJ1
bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV92YXJpYWJsZXNf
ZnVuY3Rpb24uanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L2dlbmVyYXRvcnNf
JUdlbmVyYXRvclByb3RvdHlwZSUuY29uc3RydWN0b3IuanMKKyAgY21kOiBydW5FUzYgOmZhaWwK
Ky0gcGF0aDogZXM2L2dlbmVyYXRvcnNfJUdlbmVyYXRvclByb3RvdHlwZSUuanMKKyAgY21kOiBy
dW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L2dlbmVyYXRvcnNfJUdlbmVyYXRvclByb3RvdHlwZSUu
cmV0dXJuLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9nZW5lcmF0b3JzXyVH
ZW5lcmF0b3JQcm90b3R5cGUlLnRocm93LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6
IGVzNi9nZW5lcmF0b3JzX2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanMKKyAgY21kOiBydW5FUzYgOmZh
aWwKKy0gcGF0aDogZXM2L2dlbmVyYXRvcnNfY2FudF91c2VfdGhpc193aXRoX25ldy5qcworICBj
bWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvZ2VuZXJhdG9yc19jb21wdXRlZF9zaG9ydGhh
bmRfZ2VuZXJhdG9ycy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvZ2VuZXJh
dG9yc19jb21wdXRlZF9zaG9ydGhhbmRfZ2VuZXJhdG9yc19jbGFzc2VzLmpzCisgIGNtZDogcnVu
RVM2IDpmYWlsCistIHBhdGg6IGVzNi9nZW5lcmF0b3JzX2NvcnJlY3RfdGhpc19iaW5kaW5nLmpz
CisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9nZW5lcmF0b3JzX2dlbmVyYXRvcl9m
dW5jdGlvbl9leHByZXNzaW9ucy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYv
Z2VuZXJhdG9yc19zZW5kaW5nLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9n
ZW5lcmF0b3JzX3Nob3J0aGFuZF9nZW5lcmF0b3JfbWV0aG9kcy5qcworICBjbWQ6IHJ1bkVTNiA6
ZmFpbAorLSBwYXRoOiBlczYvZ2VuZXJhdG9yc19zaG9ydGhhbmRfZ2VuZXJhdG9yX21ldGhvZHNf
Y2xhc3Nlcy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvZ2VuZXJhdG9yc19z
dHJpbmcta2V5ZWRfc2hvcnRoYW5kX2dlbmVyYXRvcl9tZXRob2RzLmpzCisgIGNtZDogcnVuRVM2
IDpmYWlsCistIHBhdGg6IGVzNi9nZW5lcmF0b3JzX3lpZWxkXypfYXJyYXlzLmpzCisgIGNtZDog
cnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9nZW5lcmF0b3JzX3lpZWxkXypfYXN0cmFsX3BsYW5l
X3N0cmluZ3MuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L2dlbmVyYXRvcnNf
eWllbGRfKl9nZW5lcmF0b3JfaW5zdGFuY2VzLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBh
dGg6IGVzNi9nZW5lcmF0b3JzX3lpZWxkXypfZ2VuZXJpY19pdGVyYWJsZXMuanMKKyAgY21kOiBy
dW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L2dlbmVyYXRvcnNfeWllbGRfKl9pbnN0YW5jZXNfb2Zf
aXRlcmFibGVzLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9nZW5lcmF0b3Jz
X3lpZWxkXypfaXRlcmF0b3JfY2xvc2luZy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRo
OiBlczYvZ2VuZXJhdG9yc195aWVsZF8qX2l0ZXJhdG9yX2Nsb3NpbmdfdmlhX3Rocm93LmpzCisg
IGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9nZW5lcmF0b3JzX3lpZWxkXypfb25fbm9u
LWl0ZXJhYmxlc19pc19hX3J1bnRpbWVfZXJyb3IuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0g
cGF0aDogZXM2L2dlbmVyYXRvcnNfeWllbGRfKl9zcGFyc2VfYXJyYXlzLmpzCisgIGNtZDogcnVu
RVM2IDpmYWlsCistIHBhdGg6IGVzNi9nZW5lcmF0b3JzX3lpZWxkXypfc3RyaW5ncy5qcworICBj
bWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvZ2VuZXJhdG9yc195aWVsZF9vcGVyYXRvcl9w
cmVjZWRlbmNlLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9NYXBfaXRlcmF0
b3JfY2xvc2luZy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvTWFwX01hcFtT
eW1ib2wuc3BlY2llc10uanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L21pc2Nl
bGxhbmVvdXNfYnVpbHQtaW5fcHJvdG90eXBlc19hcmVfbm90X2luc3RhbmNlcy5qcworICBjbWQ6
IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvbWlzY2VsbGFuZW91c19mdW5jdGlvbl9sZW5ndGhf
aXNfY29uZmlndXJhYmxlLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9taXNj
ZWxsYW5lb3VzX25vX2Fzc2lnbm1lbnRzX2FsbG93ZWRfaW5fZm9yLWluX2hlYWQuanMKKyAgY21k
OiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L21pc2NlbGxhbmVvdXNfUmVnRXhwX2NvbnN0cnVj
dG9yX2Nhbl9hbHRlcl9mbGFncy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYv
bmV3LnRhcmdldF9hc3NpZ25tZW50X2lzX2FuX2Vhcmx5X2Vycm9yLmpzCisgIGNtZDogcnVuRVM2
IDpmYWlsCistIHBhdGg6IGVzNi9ub24tc3RyaWN0X2Z1bmN0aW9uX3NlbWFudGljc19ob2lzdGVk
X2Jsb2NrLWxldmVsX2Z1bmN0aW9uX2RlY2xhcmF0aW9uLmpzCisgIGNtZDogcnVuRVM2IDpmYWls
CistIHBhdGg6IGVzNi9vYmplY3RfbGl0ZXJhbF9leHRlbnNpb25zX2NvbXB1dGVkX2FjY2Vzc29y
cy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJvbWlzZV9iYXNpY19mdW5j
dGlvbmFsaXR5LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm9taXNlX2Nv
bnN0cnVjdG9yX3JlcXVpcmVzX25ldy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBl
czYvUHJvbWlzZV9pc19zdWJjbGFzc2FibGVfYmFzaWNfZnVuY3Rpb25hbGl0eS5qcworICBjbWQ6
IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJvbWlzZV9pc19zdWJjbGFzc2FibGVfY29ycmVj
dF9wcm90b3R5cGVfY2hhaW4uanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1By
b21pc2VfaXNfc3ViY2xhc3NhYmxlX1Byb21pc2UuYWxsLmpzCisgIGNtZDogcnVuRVM2IDpmYWls
CistIHBhdGg6IGVzNi9Qcm9taXNlX2lzX3N1YmNsYXNzYWJsZV9Qcm9taXNlLnJhY2UuanMKKyAg
Y21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb21pc2VfUHJvbWlzZS5hbGwuanMKKyAg
Y21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb21pc2VfUHJvbWlzZS5hbGxfZ2VuZXJp
Y19pdGVyYWJsZXMuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb21pc2Vf
UHJvbWlzZS5yYWNlLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm9taXNl
X1Byb21pc2UucmFjZV9nZW5lcmljX2l0ZXJhYmxlcy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAor
LSBwYXRoOiBlczYvUHJvbWlzZV9Qcm9taXNlW1N5bWJvbC5zcGVjaWVzXS5qcworICBjbWQ6IHJ1
bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvcHJvcGVyX3RhaWxfY2FsbHNfdGFpbF9jYWxsX29wdGlt
aXNhdGlvbl9kaXJlY3RfcmVjdXJzaW9uLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6
IGVzNi9wcm9wZXJfdGFpbF9jYWxsc190YWlsX2NhbGxfb3B0aW1pc2F0aW9uX211dHVhbF9yZWN1
cnNpb24uanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3Byb3RvdHlwZV9vZl9i
b3VuZF9mdW5jdGlvbnNfYXJyb3dfZnVuY3Rpb25zLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCist
IHBhdGg6IGVzNi9wcm90b3R5cGVfb2ZfYm91bmRfZnVuY3Rpb25zX2Jhc2ljX2Z1bmN0aW9ucy5q
cworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvcHJvdG90eXBlX29mX2JvdW5kX2Z1
bmN0aW9uc19jbGFzc2VzLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9wcm90
b3R5cGVfb2ZfYm91bmRfZnVuY3Rpb25zX2dlbmVyYXRvcl9mdW5jdGlvbnMuanMKKyAgY21kOiBy
dW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3Byb3RvdHlwZV9vZl9ib3VuZF9mdW5jdGlvbnNfc3Vi
Y2xhc3Nlcy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJveHlfYXBwbHlf
aGFuZGxlci5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJveHlfQXJyYXku
aXNBcnJheV9zdXBwb3J0LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94
eV9jb25zdHJ1Y3RfaGFuZGxlci5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYv
UHJveHlfY29uc3RydWN0b3JfcmVxdWlyZXNfbmV3LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCist
IHBhdGg6IGVzNi9Qcm94eV9kZWZpbmVQcm9wZXJ0eV9oYW5kbGVyLmpzCisgIGNtZDogcnVuRVM2
IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9kZWxldGVQcm9wZXJ0eV9oYW5kbGVyLmpzCisgIGNt
ZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9lbnVtZXJhdGVfaGFuZGxlci5qcwor
ICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJveHlfZ2V0X2hhbmRsZXIuanMKKyAg
Y21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2dldF9oYW5kbGVyX2luc3RhbmNl
c19vZl9wcm94aWVzLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JfaGFuZGxlci5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAor
LSBwYXRoOiBlczYvUHJveHlfZ2V0UHJvdG90eXBlT2ZfaGFuZGxlci5qcworICBjbWQ6IHJ1bkVT
NiA6ZmFpbAorLSBwYXRoOiBlczYvUHJveHlfaGFzX2hhbmRsZXIuanMKKyAgY21kOiBydW5FUzYg
OmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2hhc19oYW5kbGVyX2luc3RhbmNlc19vZl9wcm94aWVz
LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9kZWZp
bmVQcm9wZXJ0eV9jYWxsc19bW1NldF1dLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6
IGVzNi9Qcm94eV9pbnRlcm5hbF9kZWZpbmVQcm9wZXJ0eV9jYWxsc19TZXRJbnRlZ3JpdHlMZXZl
bC5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJveHlfaW50ZXJuYWxfZGVs
ZXRlUHJvcGVydHlfY2FsbHNfQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4uanMKKyAgY21kOiBy
dW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX2RlbGV0ZVByb3BlcnR5X2Nh
bGxzX0FycmF5LnByb3RvdHlwZS5wb3AuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDog
ZXM2L1Byb3h5X2ludGVybmFsX2RlbGV0ZVByb3BlcnR5X2NhbGxzX0FycmF5LnByb3RvdHlwZS5y
ZXZlcnNlLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5h
bF9kZWxldGVQcm9wZXJ0eV9jYWxsc19BcnJheS5wcm90b3R5cGUuc2hpZnQuanMKKyAgY21kOiBy
dW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX2RlbGV0ZVByb3BlcnR5X2Nh
bGxzX0FycmF5LnByb3RvdHlwZS5zcGxpY2UuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0
aDogZXM2L1Byb3h5X2ludGVybmFsX2RlbGV0ZVByb3BlcnR5X2NhbGxzX0FycmF5LnByb3RvdHlw
ZS51bnNoaWZ0LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRl
cm5hbF9nZXRfY2FsbHNfQXJyYXkuZnJvbS5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRo
OiBlczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX0FycmF5LnByb3RvdHlwZS5jb25jYXQuanMK
KyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxs
c19BcnJheS5wcm90b3R5cGUucG9wLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVz
Ni9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLnJldmVyc2UuanMKKyAg
Y21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19B
cnJheS5wcm90b3R5cGUuc2hpZnQuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2
L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19BcnJheS5wcm90b3R5cGUuc3BsaWNlLmpzCisgIGNt
ZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfQXJy
YXkucHJvdG90eXBlLnRvU3RyaW5nLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVz
Ni9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlX2l0ZXJhdGlvbl9tZXRo
b2RzLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9n
ZXRfY2FsbHNfQ2xhc3NEZWZpbml0aW9uRXZhbHVhdGlvbi5qcworICBjbWQ6IHJ1bkVTNiA6ZmFp
bAorLSBwYXRoOiBlczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX0NyZWF0ZUR5bmFtaWNGdW5j
dGlvbi5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJveHlfaW50ZXJuYWxf
Z2V0X2NhbGxzX0NyZWF0ZUxpc3RGcm9tQXJyYXlMaWtlLmpzCisgIGNtZDogcnVuRVM2IDpmYWls
CistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfRGF0ZS5wcm90b3R5cGUudG9K
U09OLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9n
ZXRfY2FsbHNfRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nLmpzCisgIGNtZDogcnVuRVM2IDpmYWls
CistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfRnVuY3Rpb24ucHJvdG90eXBl
LmJpbmQuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFs
X2dldF9jYWxsc19IYXNCaW5kaW5nLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVz
Ni9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfaW5zdGFuY2VvZl9vcGVyYXRvci5qcworICBjbWQ6
IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX0l0ZXJh
dG9yQ29tcGxldGVfSXRlcmF0b3JWYWx1ZS5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRo
OiBlczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX0pTT04uc3RyaW5naWZ5LmpzCisgIGNtZDog
cnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfT2JqZWN0
LmFzc2lnbi5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJveHlfaW50ZXJu
YWxfZ2V0X2NhbGxzX09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzLmpzCisgIGNtZDogcnVuRVM2IDpm
YWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfUHJvbWlzZV9yZXNvbHZl
X2Z1bmN0aW9ucy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJveHlfaW50
ZXJuYWxfZ2V0X2NhbGxzX1JlZ0V4cC5wcm90b3R5cGUuZmxhZ3MuanMKKyAgY21kOiBydW5FUzYg
OmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19SZWdFeHAucHJvdG90
eXBlLnRlc3QuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVy
bmFsX2dldF9jYWxsc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5tYXRjaF0uanMKKyAgY21kOiBy
dW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19SZWdFeHAu
cHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXS5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRo
OiBlczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNl
YXJjaF0uanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFs
X2dldF9jYWxsc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zcGxpdF0uanMKKyAgY21kOiBydW5F
UzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19SZWdFeHBfY29u
c3RydWN0b3IuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVy
bmFsX2dldF9jYWxsc19TdHJpbmcucHJvdG90eXBlLm1hdGNoLmpzCisgIGNtZDogcnVuRVM2IDpm
YWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfU3RyaW5nLnByb3RvdHlw
ZS5yZXBsYWNlLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRl
cm5hbF9nZXRfY2FsbHNfU3RyaW5nLnByb3RvdHlwZS5zZWFyY2guanMKKyAgY21kOiBydW5FUzYg
OmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19TdHJpbmcucHJvdG90
eXBlLnNwbGl0LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRl
cm5hbF9nZXRfY2FsbHNfU3RyaW5nLnJhdy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRo
OiBlczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX1RvUHJpbWl0aXZlLmpzCisgIGNtZDogcnVu
RVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfVG9Qcm9wZXJ0
eURlc2NyaXB0b3IuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2lu
dGVybmFsX2dldE93blByb3BlcnR5RGVzY3JpcHRvcl9jYWxsc19bW1NldF1dLmpzCisgIGNtZDog
cnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3JfY2FsbHNfRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuanMKKyAgY21kOiBydW5FUzYg
OmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX2dldE93blByb3BlcnR5RGVzY3JpcHRv
cl9jYWxsc19PYmplY3QuYXNzaWduLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVz
Ni9Qcm94eV9pbnRlcm5hbF9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JfY2FsbHNfT2JqZWN0LnBy
b3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBl
czYvUHJveHlfaW50ZXJuYWxfb3duS2V5c19jYWxsc19TZXJpYWxpemVKU09OT2JqZWN0LmpzCisg
IGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9vd25LZXlzX2Nh
bGxzX1NldEludGVncml0eUxldmVsLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVz
Ni9Qcm94eV9pbnRlcm5hbF9vd25LZXlzX2NhbGxzX1Rlc3RJbnRlZ3JpdHlMZXZlbC5qcworICBj
bWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJveHlfaW50ZXJuYWxfc2V0X2NhbGxzX0Fy
cmF5LmZyb20uanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVy
bmFsX3NldF9jYWxsc19BcnJheS5vZi5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBl
czYvUHJveHlfaW50ZXJuYWxfc2V0X2NhbGxzX0FycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluLmpz
CisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9zZXRfY2Fs
bHNfQXJyYXkucHJvdG90eXBlLmZpbGwuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDog
ZXM2L1Byb3h5X2ludGVybmFsX3NldF9jYWxsc19BcnJheS5wcm90b3R5cGUucG9wLmpzCisgIGNt
ZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9pbnRlcm5hbF9zZXRfY2FsbHNfQXJy
YXkucHJvdG90eXBlLnB1c2guanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1By
b3h5X2ludGVybmFsX3NldF9jYWxsc19BcnJheS5wcm90b3R5cGUucmV2ZXJzZS5qcworICBjbWQ6
IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJveHlfaW50ZXJuYWxfc2V0X2NhbGxzX0FycmF5
LnByb3RvdHlwZS5zaGlmdC5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJv
eHlfaW50ZXJuYWxfc2V0X2NhbGxzX0FycmF5LnByb3RvdHlwZS5zcGxpY2UuanMKKyAgY21kOiBy
dW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X2ludGVybmFsX3NldF9jYWxsc19BcnJheS5w
cm90b3R5cGUudW5zaGlmdC5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJv
eHlfaW50ZXJuYWxfc2V0X2NhbGxzX09iamVjdC5hc3NpZ24uanMKKyAgY21kOiBydW5FUzYgOmZh
aWwKKy0gcGF0aDogZXM2L1Byb3h5X2lzRXh0ZW5zaWJsZV9oYW5kbGVyLmpzCisgIGNtZDogcnVu
RVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9KU09OLnN0cmluZ2lmeV9zdXBwb3J0LmpzCisg
IGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9Qcm94eV9vd25LZXlzX2hhbmRsZXIuanMK
KyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X3ByZXZlbnRFeHRlbnNpb25z
X2hhbmRsZXIuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X1Byb3h5
LnJldm9jYWJsZS5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUHJveHlfc2V0
X2hhbmRsZXIuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Byb3h5X3NldF9o
YW5kbGVyX2luc3RhbmNlc19vZl9wcm94aWVzLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBh
dGg6IGVzNi9Qcm94eV9zZXRQcm90b3R5cGVPZl9oYW5kbGVyLmpzCisgIGNtZDogcnVuRVM2IDpm
YWlsCistIHBhdGg6IGVzNi9SZWZsZWN0X1JlZmxlY3QuY29uc3RydWN0LmpzCisgIGNtZDogcnVu
RVM2IDpmYWlsCistIHBhdGg6IGVzNi9SZWZsZWN0X1JlZmxlY3QuY29uc3RydWN0X2NyZWF0ZXNf
aW5zdGFuY2VfZnJvbV9uZXdUYXJnZXRfYXJndW1lbnQuanMKKyAgY21kOiBydW5FUzYgOmZhaWwK
Ky0gcGF0aDogZXM2L1JlZmxlY3RfUmVmbGVjdC5jb25zdHJ1Y3Rfc2V0c19uZXcudGFyZ2V0X21l
dGFfcHJvcGVydHkuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1JlZmxlY3Rf
UmVmbGVjdC5zZXQuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1JlZ0V4cC5w
cm90b3R5cGVfcHJvcGVydGllc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5tYXRjaF0uanMKKyAg
Y21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1JlZ0V4cC5wcm90b3R5cGVfcHJvcGVydGll
c19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXS5qcworICBjbWQ6IHJ1bkVTNiA6ZmFp
bAorLSBwYXRoOiBlczYvUmVnRXhwLnByb3RvdHlwZV9wcm9wZXJ0aWVzX1JlZ0V4cC5wcm90b3R5
cGVbU3ltYm9sLnNlYXJjaF0uanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1Jl
Z0V4cC5wcm90b3R5cGVfcHJvcGVydGllc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zcGxpdF0u
anMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1JlZ0V4cC5wcm90b3R5cGVfcHJv
cGVydGllc19SZWdFeHBbU3ltYm9sLnNwZWNpZXNdLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCist
IHBhdGg6IGVzNi9SZWdFeHBfaXNfc3ViY2xhc3NhYmxlX2NvcnJlY3RfcHJvdG90eXBlX2NoYWlu
LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9SZWdFeHBfeV9hbmRfdV9mbGFn
c191X2ZsYWcuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L1JlZ0V4cF95X2Fu
ZF91X2ZsYWdzX3VfZmxhZ19Vbmljb2RlX2NvZGVfcG9pbnRfZXNjYXBlcy5qcworICBjbWQ6IHJ1
bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvUmVnRXhwX3lfYW5kX3VfZmxhZ3NfeV9mbGFnLmpzCisg
IGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9SZWdFeHBfeV9hbmRfdV9mbGFnc195X2Zs
YWdfbGFzdEluZGV4LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9yZXN0X3Bh
cmFtZXRlcnNfYXJndW1lbnRzX29iamVjdF9pbnRlcmFjdGlvbi5qcworICBjbWQ6IHJ1bkVTNiA6
ZmFpbAorLSBwYXRoOiBlczYvcmVzdF9wYXJhbWV0ZXJzX2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanMK
KyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3Jlc3RfcGFyYW1ldGVyc19jYW50X2Jl
X3VzZWRfaW5fc2V0dGVycy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvcmVz
dF9wYXJhbWV0ZXJzX2Z1bmN0aW9uX2xlbmd0aF9wcm9wZXJ0eS5qcworICBjbWQ6IHJ1bkVTNiA6
ZmFpbAorLSBwYXRoOiBlczYvcmVzdF9wYXJhbWV0ZXJzX25ld19GdW5jdGlvbl9zdXBwb3J0Lmpz
CisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9TZXRfaXRlcmF0b3JfY2xvc2luZy5q
cworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvU2V0X1NldFtTeW1ib2wuc3BlY2ll
c10uanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3NwcmVhZF8uLi5fb3BlcmF0
b3Jfd2l0aF9hc3RyYWxfcGxhbmVfc3RyaW5nc19pbl9mdW5jdGlvbl9jYWxscy5qcworICBjbWQ6
IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvc3ByZWFkXy4uLl9vcGVyYXRvcl93aXRoX2dlbmVy
YXRvcl9pbnN0YW5jZXNfaW5fYXJyYXlzLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6
IGVzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfZ2VuZXJhdG9yX2luc3RhbmNlc19pbl9jYWxs
cy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvc3ByZWFkXy4uLl9vcGVyYXRv
cl93aXRoX2dlbmVyaWNfaXRlcmFibGVzX2luX2FycmF5cy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFp
bAorLSBwYXRoOiBlczYvc3ByZWFkXy4uLl9vcGVyYXRvcl93aXRoX2dlbmVyaWNfaXRlcmFibGVz
X2luX2NhbGxzLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi9zcHJlYWRfLi4u
X29wZXJhdG9yX3dpdGhfaW5zdGFuY2VzX29mX2l0ZXJhYmxlc19pbl9hcnJheXMuanMKKyAgY21k
OiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3NwcmVhZF8uLi5fb3BlcmF0b3Jfd2l0aF9pbnN0
YW5jZXNfb2ZfaXRlcmFibGVzX2luX2NhbGxzLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBh
dGg6IGVzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfc3RyaW5nc19pbl9mdW5jdGlvbl9jYWxs
cy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvU3RyaW5nLnByb3RvdHlwZV9t
ZXRob2RzX1N0cmluZy5wcm90b3R5cGUubm9ybWFsaXplLmpzCisgIGNtZDogcnVuRVM2IDpmYWls
CistIHBhdGg6IGVzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLmZyb20uanMKKyAgY21kOiBy
dW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUub2YuanMK
KyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJh
eSUucHJvdG90eXBlLmNvcHlXaXRoaW4uanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDog
ZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmVudHJpZXMuanMKKyAgY21k
OiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJv
dG90eXBlLmV2ZXJ5LmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi90eXBlZF9h
cnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maWxsLmpzCisgIGNtZDogcnVuRVM2IDpmYWls
CistIHBhdGg6IGVzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maWx0ZXIu
anMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3R5cGVkX2FycmF5c18lVHlwZWRB
cnJheSUucHJvdG90eXBlLmZpbmQuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2
L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmZpbmRJbmRleC5qcworICBjbWQ6
IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90
b3R5cGUuZm9yRWFjaC5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvdHlwZWRf
YXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUuaW5kZXhPZi5qcworICBjbWQ6IHJ1bkVTNiA6
ZmFpbAorLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUuam9p
bi5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzXyVUeXBl
ZEFycmF5JS5wcm90b3R5cGUua2V5cy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBl
czYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUubGFzdEluZGV4T2YuanMKKyAg
Y21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUu
cHJvdG90eXBlLm1hcC5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvdHlwZWRf
YXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUucmVkdWNlLmpzCisgIGNtZDogcnVuRVM2IDpm
YWlsCistIHBhdGg6IGVzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5yZWR1
Y2VSaWdodC5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlz
XyVUeXBlZEFycmF5JS5wcm90b3R5cGUucmV2ZXJzZS5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAor
LSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUuc2xpY2UuanMK
KyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJh
eSUucHJvdG90eXBlLnNvbWUuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3R5
cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLnNvcnQuanMKKyAgY21kOiBydW5FUzYg
OmZhaWwKKy0gcGF0aDogZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLnZh
bHVlcy5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzXyVU
eXBlZEFycmF5JS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXS5qcworICBjbWQ6IHJ1bkVTNiA6
ZmFpbAorLSBwYXRoOiBlczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JVtTeW1ib2wuc3BlY2ll
c10uanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3R5cGVkX2FycmF5c19BcnJh
eUJ1ZmZlcltTeW1ib2wuc3BlY2llc10uanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDog
ZXM2L3R5cGVkX2FycmF5c19jb3JyZWN0X3Byb3RvdHlwZV9jaGFpbnMuanMKKyAgY21kOiBydW5F
UzYgOmZhaWwKKy0gcGF0aDogZXM2L1dlYWtNYXBfaXRlcmF0b3JfY2xvc2luZy5qcworICBjbWQ6
IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvV2Vha1NldF9pdGVyYXRvcl9jbG9zaW5nLmpzCisg
IGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9s
Lmhhc0luc3RhbmNlLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi93ZWxsLWtu
b3duX3N5bWJvbHNfU3ltYm9sLmlzQ29uY2F0U3ByZWFkYWJsZS5qcworICBjbWQ6IHJ1bkVTNiA6
ZmFpbAorLSBwYXRoOiBlczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5tYXRjaC5qcworICBj
bWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5y
ZXBsYWNlLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCistIHBhdGg6IGVzNi93ZWxsLWtub3duX3N5
bWJvbHNfU3ltYm9sLnNlYXJjaC5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYv
d2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5zcGVjaWVzX0FycmF5LnByb3RvdHlwZS5jb25jYXQu
anMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3dlbGwta25vd25fc3ltYm9sc19T
eW1ib2wuc3BlY2llc19BcnJheS5wcm90b3R5cGUuZmlsdGVyLmpzCisgIGNtZDogcnVuRVM2IDpm
YWlsCistIHBhdGg6IGVzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLnNwZWNpZXNfQXJyYXku
cHJvdG90eXBlLm1hcC5qcworICBjbWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvd2VsbC1r
bm93bl9zeW1ib2xzX1N5bWJvbC5zcGVjaWVzX0FycmF5LnByb3RvdHlwZS5zbGljZS5qcworICBj
bWQ6IHJ1bkVTNiA6ZmFpbAorLSBwYXRoOiBlczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5z
cGVjaWVzX0FycmF5LnByb3RvdHlwZS5zcGxpY2UuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0g
cGF0aDogZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wuc3BlY2llc19leGlzdGVuY2UuanMK
KyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1i
b2wuc3BlY2llc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zcGxpdF0uanMKKyAgY21kOiBydW5F
UzYgOmZhaWwKKy0gcGF0aDogZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wuc3BsaXQuanMK
KyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1i
b2wudG9QcmltaXRpdmUuanMKKyAgY21kOiBydW5FUzYgOmZhaWwKKy0gcGF0aDogZXM2L3dlbGwt
a25vd25fc3ltYm9sc19TeW1ib2wudG9TdHJpbmdUYWcuanMKKyAgY21kOiBydW5FUzYgOmZhaWwK
Ky0gcGF0aDogZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wudG9TdHJpbmdUYWdfbWlzYy5f
YnVpbHQtaW5zLmpzCisgIGNtZDogcnVuRVM2IDpmYWlsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0FycmF5LnByb3RvdHlwZS5j
b3B5V2l0aGluLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNfQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4uanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5LnBy
b3RvdHlwZV9tZXRob2RzX0FycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBB
cnJheS5wcm90b3R5cGUuY29weVdpdGhpbiA9PT0gJ2Z1bmN0aW9uJzsKKyAgICAgIAorfQorCitp
ZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNf
QXJyYXkucHJvdG90eXBlLmVudHJpZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9BcnJheS5wcm90b3R5cGVfbWV0aG9kc19BcnJheS5wcm90b3R5cGUu
ZW50cmllcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNfQXJyYXkucHJvdG90eXBlLmVudHJpZXMuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4g
dHlwZW9mIEFycmF5LnByb3RvdHlwZS5lbnRyaWVzID09PSAnZnVuY3Rpb24nOworICAgICAgCit9
CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheS5wcm90b3R5cGVfbWV0
aG9kc19BcnJheS5wcm90b3R5cGUuZmlsbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0FycmF5LnByb3RvdHlw
ZS5maWxsLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9BcnJheS5wcm90b3R5cGVfbWV0aG9kc19BcnJheS5wcm90b3R5cGUuZmlsbC5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiB0eXBl
b2YgQXJyYXkucHJvdG90eXBlLmZpbGwgPT09ICdmdW5jdGlvbic7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0Fy
cmF5LnByb3RvdHlwZS5maW5kLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNfQXJyYXkucHJvdG90eXBlLmZpbmQu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5
LnByb3RvdHlwZV9tZXRob2RzX0FycmF5LnByb3RvdHlwZS5maW5kLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBBcnJh
eS5wcm90b3R5cGUuZmluZCA9PT0gJ2Z1bmN0aW9uJzsKKyAgICAgIAorfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNfQXJyYXkucHJv
dG90eXBlLmZpbmRJbmRleC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0FycmF5LnByb3RvdHlwZS5maW5kSW5k
ZXguanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0Fy
cmF5LnByb3RvdHlwZV9tZXRob2RzX0FycmF5LnByb3RvdHlwZS5maW5kSW5kZXguanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlw
ZW9mIEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXggPT09ICdmdW5jdGlvbic7CisgICAgICAKK30K
KworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5LnByb3RvdHlwZV9tZXRo
b2RzX0FycmF5LnByb3RvdHlwZS5rZXlzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNfQXJyYXkucHJvdG90eXBl
LmtleXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0FycmF5LnByb3RvdHlwZS5rZXlzLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVv
ZiBBcnJheS5wcm90b3R5cGUua2V5cyA9PT0gJ2Z1bmN0aW9uJzsKKyAgICAgIAorfQorCitpZiAo
IXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNfQXJy
YXkucHJvdG90eXBlLnZhbHVlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0FycmF5LnByb3RvdHlwZS52YWx1
ZXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0Fy
cmF5LnByb3RvdHlwZV9tZXRob2RzX0FycmF5LnByb3RvdHlwZS52YWx1ZXMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9m
IEFycmF5LnByb3RvdHlwZS52YWx1ZXMgPT09ICdmdW5jdGlvbic7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0Fy
cmF5LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNfQXJyYXkucHJv
dG90eXBlW1N5bWJvbC5pdGVyYXRvcl0uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0FycmF5LnByb3RvdHlw
ZVtTeW1ib2wuaXRlcmF0b3JdLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBBcnJheS5wcm90b3R5cGVbU3ltYm9sLml0
ZXJhdG9yXSA9PT0gJ2Z1bmN0aW9uJzsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0
aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNfQXJyYXkucHJvdG90eXBlW1N5
bWJvbC51bnNjb3BhYmxlc10uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9BcnJheS5wcm90b3R5cGVfbWV0aG9kc19BcnJheS5wcm90b3R5cGVbU3ltYm9s
LnVuc2NvcGFibGVzXS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvQXJyYXkucHJvdG90eXBlX21ldGhvZHNfQXJyYXkucHJvdG90eXBlW1N5bWJvbC51
bnNjb3BhYmxlc10uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24g
dGVzdCgpIHsKKwordmFyIHVuc2NvcGFibGVzID0gQXJyYXkucHJvdG90eXBlW1N5bWJvbC51bnNj
b3BhYmxlc107CitpZiAoIXVuc2NvcGFibGVzKSB7CisgIHJldHVybiBmYWxzZTsKK30KK3ZhciBu
cyA9ICJmaW5kLGZpbmRJbmRleCxmaWxsLGNvcHlXaXRoaW4sZW50cmllcyxrZXlzLHZhbHVlcyIu
c3BsaXQoIiwiKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgbnMubGVuZ3RoOyBpKyspIHsKKyAgaWYg
KEFycmF5LnByb3RvdHlwZVtuc1tpXV0gJiYgIXVuc2NvcGFibGVzW25zW2ldXSkgcmV0dXJuIGZh
bHNlOworfQorcmV0dXJuIHRydWU7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhy
b3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0FycmF5X2l0ZXJhdG9yX3Byb3Rv
dHlwZV9jaGFpbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L0FycmF5LnByb3RvdHlwZV9tZXRob2RzX0FycmF5X2l0ZXJhdG9yX3Byb3RvdHlwZV9jaGFp
bi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJy
YXkucHJvdG90eXBlX21ldGhvZHNfQXJyYXlfaXRlcmF0b3JfcHJvdG90eXBlX2NoYWluLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIEl0
ZXJhdG9yIGluc3RhbmNlCit2YXIgaXRlcmF0b3IgPSBbXVtTeW1ib2wuaXRlcmF0b3JdKCk7Cisv
LyAlQXJyYXlJdGVyYXRvclByb3RvdHlwZSUKK3ZhciBwcm90bzEgPSBPYmplY3QuZ2V0UHJvdG90
eXBlT2YoaXRlcmF0b3IpOworLy8gJUl0ZXJhdG9yUHJvdG90eXBlJQordmFyIHByb3RvMiA9IE9i
amVjdC5nZXRQcm90b3R5cGVPZihwcm90bzEpOworCityZXR1cm4gcHJvdG8yLmhhc093blByb3Bl
cnR5KFN5bWJvbC5pdGVyYXRvcikgJiYKKyAgIXByb3RvMSAgICAuaGFzT3duUHJvcGVydHkoU3lt
Ym9sLml0ZXJhdG9yKSAmJgorICAhaXRlcmF0b3IgIC5oYXNPd25Qcm9wZXJ0eShTeW1ib2wuaXRl
cmF0b3IpICYmCisgIGl0ZXJhdG9yW1N5bWJvbC5pdGVyYXRvcl0oKSA9PT0gaXRlcmF0b3I7Cisg
ICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxl
ZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5X2lzX3N1
YmNsYXNzYWJsZV9BcnJheS5mcm9tLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvQXJyYXlfaXNfc3ViY2xhc3NhYmxlX0FycmF5LmZyb20uanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5X2lzX3N1YmNs
YXNzYWJsZV9BcnJheS5mcm9tLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1
bmN0aW9uIHRlc3QoKSB7CisKK2NsYXNzIEMgZXh0ZW5kcyBBcnJheSB7fQorcmV0dXJuIEMuZnJv
bSh7IGxlbmd0aDogMCB9KSBpbnN0YW5jZW9mIEM7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkp
CisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9BcnJheS5pc0FycmF5
X3N1cHBvcnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9BcnJheV9pc19zdWJjbGFzc2FibGVfQXJyYXkuaXNBcnJheV9zdXBwb3J0LmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9pc19zdWJjbGFz
c2FibGVfQXJyYXkuaXNBcnJheV9zdXBwb3J0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTAgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK2NsYXNzIEMgZXh0ZW5kcyBBcnJheSB7fQorcmV0
dXJuIEFycmF5LmlzQXJyYXkobmV3IEMoKSk7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisg
ICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9BcnJheS5vZi5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5X2lzX3N1YmNs
YXNzYWJsZV9BcnJheS5vZi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvQXJyYXlfaXNfc3ViY2xhc3NhYmxlX0FycmF5Lm9mLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK2NsYXNzIEMgZXh0ZW5k
cyBBcnJheSB7fQorcmV0dXJuIEMub2YoMCkgaW5zdGFuY2VvZiBDOworICAgICAgCit9CisKK2lm
ICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9pc19zdWJjbGFzc2FibGVfQXJy
YXkucHJvdG90eXBlLmNvbmNhdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9BcnJheS5wcm90b3R5cGUuY29uY2F0
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJh
eV9pc19zdWJjbGFzc2FibGVfQXJyYXkucHJvdG90eXBlLmNvbmNhdC5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitjbGFzcyBDIGV4dGVuZHMg
QXJyYXkge30KK3ZhciBjID0gbmV3IEMoKTsKK3JldHVybiBjLmNvbmNhdCgxKSBpbnN0YW5jZW9m
IEM7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0
IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5
X2lzX3N1YmNsYXNzYWJsZV9BcnJheS5wcm90b3R5cGUuZmlsdGVyLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXlfaXNfc3ViY2xhc3NhYmxlX0Fy
cmF5LnByb3RvdHlwZS5maWx0ZXIuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9BcnJheS5wcm90b3R5cGUuZmls
dGVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7
CisKK2NsYXNzIEMgZXh0ZW5kcyBBcnJheSB7fQordmFyIGMgPSBuZXcgQygpOworcmV0dXJuIGMu
ZmlsdGVyKEJvb2xlYW4pIGluc3RhbmNlb2YgQzsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXlfaXNfc3ViY2xhc3NhYmxlX0FycmF5LnByb3RvdHlw
ZS5tYXAuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9B
cnJheV9pc19zdWJjbGFzc2FibGVfQXJyYXkucHJvdG90eXBlLm1hcC5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXlfaXNfc3ViY2xhc3NhYmxl
X0FycmF5LnByb3RvdHlwZS5tYXAuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAor
ZnVuY3Rpb24gdGVzdCgpIHsKKworY2xhc3MgQyBleHRlbmRzIEFycmF5IHt9Cit2YXIgYyA9IG5l
dyBDKCk7CityZXR1cm4gYy5tYXAoQm9vbGVhbikgaW5zdGFuY2VvZiBDOworICAgICAgCit9CisK
K2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9pc19zdWJjbGFzc2FibGVf
QXJyYXkucHJvdG90eXBlLnNsaWNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvQXJyYXlfaXNfc3ViY2xhc3NhYmxlX0FycmF5LnByb3RvdHlwZS5zbGlj
ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJy
YXlfaXNfc3ViY2xhc3NhYmxlX0FycmF5LnByb3RvdHlwZS5zbGljZS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitjbGFzcyBDIGV4dGVuZHMg
QXJyYXkge30KK3ZhciBjID0gbmV3IEMoKTsKK2MucHVzaCgyLDQsNik7CityZXR1cm4gYy5zbGlj
ZSgxLDIpIGluc3RhbmNlb2YgQzsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvQXJyYXlfaXNfc3ViY2xhc3NhYmxlX0FycmF5LnByb3RvdHlwZS5zcGxpY2Uu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9p
c19zdWJjbGFzc2FibGVfQXJyYXkucHJvdG90eXBlLnNwbGljZS5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXlfaXNfc3ViY2xhc3NhYmxlX0Fy
cmF5LnByb3RvdHlwZS5zcGxpY2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAor
ZnVuY3Rpb24gdGVzdCgpIHsKKworY2xhc3MgQyBleHRlbmRzIEFycmF5IHt9Cit2YXIgYyA9IG5l
dyBDKCk7CitjLnB1c2goMiw0LDYpOworcmV0dXJuIGMuc3BsaWNlKDEsMikgaW5zdGFuY2VvZiBD
OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBm
YWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9p
c19zdWJjbGFzc2FibGVfY29ycmVjdF9wcm90b3R5cGVfY2hhaW4uanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9pc19zdWJjbGFzc2FibGVfY29y
cmVjdF9wcm90b3R5cGVfY2hhaW4uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9jb3JyZWN0X3Byb3RvdHlwZV9j
aGFpbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkg
eworCitjbGFzcyBDIGV4dGVuZHMgQXJyYXkge30KK3ZhciBjID0gbmV3IEMoKTsKK3JldHVybiBj
IGluc3RhbmNlb2YgQyAmJiBjIGluc3RhbmNlb2YgQXJyYXkgJiYgT2JqZWN0LmdldFByb3RvdHlw
ZU9mKEMpID09PSBBcnJheTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBu
ZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvQXJyYXlfaXNfc3ViY2xhc3NhYmxlX2xlbmd0aF9wcm9wZXJ0eV9hY2Nlc3Npbmcu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9p
c19zdWJjbGFzc2FibGVfbGVuZ3RoX3Byb3BlcnR5X2FjY2Vzc2luZy5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXlfaXNfc3ViY2xhc3NhYmxl
X2xlbmd0aF9wcm9wZXJ0eV9hY2Nlc3NpbmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
NCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworY2xhc3MgQyBleHRlbmRzIEFycmF5IHt9Cit2YXIg
YyA9IG5ldyBDKCk7Cit2YXIgbGVuMSA9IGMubGVuZ3RoOworY1syXSA9ICdmb28nOwordmFyIGxl
bjIgPSBjLmxlbmd0aDsKK3JldHVybiBsZW4xID09PSAwICYmIGxlbjIgPT09IDM7CisgICAgICAK
K30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOwor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5X2lzX3N1YmNsYXNz
YWJsZV9sZW5ndGhfcHJvcGVydHlfc2V0dGluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5X2lzX3N1YmNsYXNzYWJsZV9sZW5ndGhfcHJvcGVy
dHlfc2V0dGluZy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvQXJyYXlfaXNfc3ViY2xhc3NhYmxlX2xlbmd0aF9wcm9wZXJ0eV9zZXR0aW5nLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK2NsYXNz
IEMgZXh0ZW5kcyBBcnJheSB7fQordmFyIGMgPSBuZXcgQygpOworY1syXSA9ICdmb28nOworYy5s
ZW5ndGggPSAxOworcmV0dXJuIGMubGVuZ3RoID09PSAxICYmICEoMiBpbiBjKTsKKyAgICAgIAor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXlfc3RhdGljX21ldGhv
ZHNfQXJyYXkuZnJvbV9hcnJheS1saWtlX29iamVjdHMuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9zdGF0aWNfbWV0aG9kc19BcnJheS5mcm9t
X2FycmF5LWxpa2Vfb2JqZWN0cy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvQXJyYXlfc3RhdGljX21ldGhvZHNfQXJyYXkuZnJvbV9hcnJheS1saWtl
X29iamVjdHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0ZXN0
KCkgeworCityZXR1cm4gQXJyYXkuZnJvbSh7IDA6ICJmb28iLCAxOiAiYmFyIiwgbGVuZ3RoOiAy
IH0pICsgJycgPT09ICJmb28sYmFyIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0
aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvQXJyYXlfc3RhdGljX21ldGhvZHNfQXJyYXkuZnJvbV9nZW5lcmF0b3Jf
aW5zdGFuY2VzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvQXJyYXlfc3RhdGljX21ldGhvZHNfQXJyYXkuZnJvbV9nZW5lcmF0b3JfaW5zdGFuY2VzLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9z
dGF0aWNfbWV0aG9kc19BcnJheS5mcm9tX2dlbmVyYXRvcl9pbnN0YW5jZXMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGl0ZXJhYmxl
ID0gKGZ1bmN0aW9uKigpeyB5aWVsZCAxOyB5aWVsZCAyOyB5aWVsZCAzOyB9KCkpOworcmV0dXJu
IEFycmF5LmZyb20oaXRlcmFibGUpICsgJycgPT09ICIxLDIsMyI7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5X3N0YXRpY19tZXRob2RzX0FycmF5
LmZyb21fZ2VuZXJpY19pdGVyYWJsZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9zdGF0aWNfbWV0aG9kc19BcnJheS5mcm9tX2dlbmVyaWNf
aXRlcmFibGVzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9BcnJheV9zdGF0aWNfbWV0aG9kc19BcnJheS5mcm9tX2dlbmVyaWNfaXRlcmFibGVzLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3Zh
ciBpdGVyYWJsZSA9IGdsb2JhbC5fX2NyZWF0ZUl0ZXJhYmxlT2JqZWN0KFsxLCAyLCAzXSk7City
ZXR1cm4gQXJyYXkuZnJvbShpdGVyYWJsZSkgKyAnJyA9PT0gIjEsMiwzIjsKKyAgICAgIAorfQor
CitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXlfc3RhdGljX21ldGhvZHNf
QXJyYXkuZnJvbV9pbnN0YW5jZXNfb2ZfZ2VuZXJpY19pdGVyYWJsZXMuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9zdGF0aWNfbWV0aG9kc19B
cnJheS5mcm9tX2luc3RhbmNlc19vZl9nZW5lcmljX2l0ZXJhYmxlcy5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXlfc3RhdGljX21ldGhvZHNf
QXJyYXkuZnJvbV9pbnN0YW5jZXNfb2ZfZ2VuZXJpY19pdGVyYWJsZXMuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGl0ZXJhYmxlID0g
Z2xvYmFsLl9fY3JlYXRlSXRlcmFibGVPYmplY3QoWzEsIDIsIDNdKTsKK3JldHVybiBBcnJheS5m
cm9tKE9iamVjdC5jcmVhdGUoaXRlcmFibGUpKSArICcnID09PSAiMSwyLDMiOworICAgICAgCit9
CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9zdGF0aWNfbWV0aG9k
c19BcnJheS5mcm9tX2l0ZXJhdG9yX2Nsb3NpbmcuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9zdGF0aWNfbWV0aG9kc19BcnJheS5mcm9tX2l0
ZXJhdG9yX2Nsb3NpbmcuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L0FycmF5X3N0YXRpY19tZXRob2RzX0FycmF5LmZyb21faXRlcmF0b3JfY2xvc2lu
Zy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlvbiB0ZXN0KCkgewor
Cit2YXIgY2xvc2VkID0gZmFsc2U7Cit2YXIgaXRlciA9IGdsb2JhbC5fX2NyZWF0ZUl0ZXJhYmxl
T2JqZWN0KFsxLCAyLCAzXSwgeworICAncmV0dXJuJzogZnVuY3Rpb24oKXsgY2xvc2VkID0gdHJ1
ZTsgcmV0dXJuIHt9OyB9Cit9KTsKK3RyeSB7CisgIEFycmF5LmZyb20oaXRlciwgZnVuY3Rpb24o
KSB7IHRocm93IDQyIH0pOworfSBjYXRjaChlKXt9CityZXR1cm4gY2xvc2VkOworICAgICAgCit9
CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9zdGF0aWNfbWV0aG9k
c19BcnJheS5mcm9tX21hcF9mdW5jdGlvbl9hcnJheS1saWtlX29iamVjdHMuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9zdGF0aWNfbWV0aG9k
c19BcnJheS5mcm9tX21hcF9mdW5jdGlvbl9hcnJheS1saWtlX29iamVjdHMuanMJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5X3N0YXRpY19tZXRo
b2RzX0FycmF5LmZyb21fbWFwX2Z1bmN0aW9uX2FycmF5LWxpa2Vfb2JqZWN0cy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gQXJy
YXkuZnJvbSh7IDA6ICJmb28iLCAxOiAiYmFyIiwgbGVuZ3RoOiAyIH0sIGZ1bmN0aW9uKGUsIGkp
IHsKKyAgcmV0dXJuIGUgKyB0aGlzLmJheiArIGk7Cit9LCB7IGJhejogImQiIH0pICsgJycgPT09
ICJmb29kMCxiYXJkMSI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3
IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L0FycmF5X3N0YXRpY19tZXRob2RzX0FycmF5LmZyb21fbWFwX2Z1bmN0aW9uX2dlbmVy
YXRvcl9pbnN0YW5jZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9BcnJheV9zdGF0aWNfbWV0aG9kc19BcnJheS5mcm9tX21hcF9mdW5jdGlvbl9nZW5l
cmF0b3JfaW5zdGFuY2VzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9BcnJheV9zdGF0aWNfbWV0aG9kc19BcnJheS5mcm9tX21hcF9mdW5jdGlvbl9n
ZW5lcmF0b3JfaW5zdGFuY2VzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1
bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBpdGVyYWJsZSA9IChmdW5jdGlvbiooKXsgeWllbGQgImZv
byI7IHlpZWxkICJiYXIiOyB5aWVsZCAiYmFsIjsgfSgpKTsKK3JldHVybiBBcnJheS5mcm9tKGl0
ZXJhYmxlLCBmdW5jdGlvbihlLCBpKSB7CisgIHJldHVybiBlICsgdGhpcy5iYXogKyBpOworfSwg
eyBiYXo6ICJkIiB9KSArICcnID09PSAiZm9vZDAsYmFyZDEsYmFsZDIiOworICAgICAgCit9CisK
K2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9zdGF0aWNfbWV0aG9kc19B
cnJheS5mcm9tX21hcF9mdW5jdGlvbl9nZW5lcmljX2l0ZXJhYmxlcy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5X3N0YXRpY19tZXRob2RzX0Fy
cmF5LmZyb21fbWFwX2Z1bmN0aW9uX2dlbmVyaWNfaXRlcmFibGVzLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9zdGF0aWNfbWV0aG9kc19B
cnJheS5mcm9tX21hcF9mdW5jdGlvbl9nZW5lcmljX2l0ZXJhYmxlcy5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgaXRlcmFibGUgPSBn
bG9iYWwuX19jcmVhdGVJdGVyYWJsZU9iamVjdChbImZvbyIsICJiYXIiLCAiYmFsIl0pOworcmV0
dXJuIEFycmF5LmZyb20oaXRlcmFibGUsIGZ1bmN0aW9uKGUsIGkpIHsKKyAgcmV0dXJuIGUgKyB0
aGlzLmJheiArIGk7Cit9LCB7IGJhejogImQiIH0pICsgJycgPT09ICJmb29kMCxiYXJkMSxiYWxk
MiI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0
IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0FycmF5
X3N0YXRpY19tZXRob2RzX0FycmF5LmZyb21fbWFwX2Z1bmN0aW9uX2luc3RhbmNlc19vZl9pdGVy
YWJsZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9B
cnJheV9zdGF0aWNfbWV0aG9kc19BcnJheS5mcm9tX21hcF9mdW5jdGlvbl9pbnN0YW5jZXNfb2Zf
aXRlcmFibGVzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9BcnJheV9zdGF0aWNfbWV0aG9kc19BcnJheS5mcm9tX21hcF9mdW5jdGlvbl9pbnN0YW5j
ZXNfb2ZfaXRlcmFibGVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0
aW9uIHRlc3QoKSB7CisKK3ZhciBpdGVyYWJsZSA9IGdsb2JhbC5fX2NyZWF0ZUl0ZXJhYmxlT2Jq
ZWN0KFsiZm9vIiwgImJhciIsICJiYWwiXSk7CityZXR1cm4gQXJyYXkuZnJvbShPYmplY3QuY3Jl
YXRlKGl0ZXJhYmxlKSwgZnVuY3Rpb24oZSwgaSkgeworICByZXR1cm4gZSArIHRoaXMuYmF6ICsg
aTsKK30sIHsgYmF6OiAiZCIgfSkgKyAnJyA9PT0gImZvb2QwLGJhcmQxLGJhbGQyIjsKKyAgICAg
IAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXlfc3RhdGljX21l
dGhvZHNfQXJyYXkub2YuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9BcnJheV9zdGF0aWNfbWV0aG9kc19BcnJheS5vZi5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXlfc3RhdGljX21ldGhvZHNfQXJy
YXkub2YuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgp
IHsKKworcmV0dXJuIHR5cGVvZiBBcnJheS5vZiA9PT0gJ2Z1bmN0aW9uJyAmJgorICBBcnJheS5v
ZigyKVswXSA9PT0gMjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcg
RXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvQXJyYXlfc3RhdGljX21ldGhvZHNfQXJyYXlbU3ltYm9sLnNwZWNpZXNdLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvQXJyYXlfc3RhdGljX21l
dGhvZHNfQXJyYXlbU3ltYm9sLnNwZWNpZXNdLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9BcnJheV9zdGF0aWNfbWV0aG9kc19BcnJheVtTeW1ib2wu
c3BlY2llc10uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24gdGVz
dCgpIHsKKwordmFyIHByb3AgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEFycmF5
LCBTeW1ib2wuc3BlY2llcyk7CityZXR1cm4gJ2dldCcgaW4gcHJvcCAmJiBBcnJheVtTeW1ib2wu
c3BlY2llc10gPT09IEFycmF5OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93
IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9GdW5jdGlvbl9pc19zdWJjbGFzc2FibGVfRnVuY3Rpb24ucHJvdG90eXBlLmFw
cGx5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvRnVu
Y3Rpb25faXNfc3ViY2xhc3NhYmxlX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvRnVuY3Rpb25faXNfc3Vi
Y2xhc3NhYmxlX0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitjbGFzcyBDIGV4dGVuZHMgRnVuY3Rp
b24ge30KK3ZhciBjID0gbmV3IEMoIngiLCAicmV0dXJuIHRoaXMuYmFyICsgeDsiKTsKK3JldHVy
biBjLmFwcGx5KHtiYXI6MX0sIFsyXSkgPT09IDM7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkp
CisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L0Z1bmN0aW9uX2lzX3N1YmNsYXNzYWJsZV9GdW5jdGlvbi5w
cm90b3R5cGUuYmluZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L0Z1bmN0aW9uX2lzX3N1YmNsYXNzYWJsZV9GdW5jdGlvbi5wcm90b3R5cGUuYmluZC5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvRnVuY3Rp
b25faXNfc3ViY2xhc3NhYmxlX0Z1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK2NsYXNzIEMgZXh0ZW5k
cyBGdW5jdGlvbiB7fQordmFyIGMgPSBuZXcgQygieCIsICJ5IiwgInJldHVybiB0aGlzLmJhciAr
IHggKyB5OyIpLmJpbmQoe2JhcjoxfSwgMik7CityZXR1cm4gYyg2KSA9PT0gOSAmJiBjIGluc3Rh
bmNlb2YgQzsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3Io
IlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
RnVuY3Rpb25faXNfc3ViY2xhc3NhYmxlX0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvRnVuY3Rpb25faXNfc3Vi
Y2xhc3NhYmxlX0Z1bmN0aW9uLnByb3RvdHlwZS5jYWxsLmpzCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9GdW5jdGlvbl9pc19zdWJjbGFzc2FibGVfRnVu
Y3Rpb24ucHJvdG90eXBlLmNhbGwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAor
ZnVuY3Rpb24gdGVzdCgpIHsKKworY2xhc3MgQyBleHRlbmRzIEZ1bmN0aW9uIHt9Cit2YXIgYyA9
IG5ldyBDKCJ4IiwgInJldHVybiB0aGlzLmJhciArIHg7Iik7CityZXR1cm4gYy5jYWxsKHtiYXI6
MX0sIDIpID09PSAzOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBF
cnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9GdW5jdGlvbl9pc19zdWJjbGFzc2FibGVfY2FuX2JlX2NhbGxlZC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0Z1bmN0aW9uX2lzX3N1YmNsYXNz
YWJsZV9jYW5fYmVfY2FsbGVkLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9GdW5jdGlvbl9pc19zdWJjbGFzc2FibGVfY2FuX2JlX2NhbGxlZC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitjbGFz
cyBDIGV4dGVuZHMgRnVuY3Rpb24ge30KK3ZhciBjID0gbmV3IEMoInJldHVybiAnZm9vJzsiKTsK
K3JldHVybiBjKCkgPT09ICdmb28nOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRo
cm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9GdW5jdGlvbl9pc19zdWJjbGFzc2FibGVfY2FuX2JlX3VzZWRfd2l0aF9u
ZXcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9GdW5j
dGlvbl9pc19zdWJjbGFzc2FibGVfY2FuX2JlX3VzZWRfd2l0aF9uZXcuanMJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0Z1bmN0aW9uX2lzX3N1YmNsYXNz
YWJsZV9jYW5fYmVfdXNlZF93aXRoX25ldy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEy
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitjbGFzcyBDIGV4dGVuZHMgRnVuY3Rpb24ge30KK3Zh
ciBjID0gbmV3IEMoInRoaXMuYmFyID0gMjsiKTsKK2MucHJvdG90eXBlLmJheiA9IDM7CityZXR1
cm4gbmV3IGMoKS5iYXIgPT09IDIgJiYgbmV3IGMoKS5iYXogPT09IDM7CisgICAgICAKK30KKwor
aWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L0Z1bmN0aW9uX2lzX3N1YmNsYXNzYWJs
ZV9jb3JyZWN0X3Byb3RvdHlwZV9jaGFpbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L0Z1bmN0aW9uX2lzX3N1YmNsYXNzYWJsZV9jb3JyZWN0X3Byb3Rv
dHlwZV9jaGFpbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvRnVuY3Rpb25faXNfc3ViY2xhc3NhYmxlX2NvcnJlY3RfcHJvdG90eXBlX2NoYWluLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK2Ns
YXNzIEMgZXh0ZW5kcyBGdW5jdGlvbiB7fQordmFyIGMgPSBuZXcgQygicmV0dXJuICdmb28nOyIp
OworcmV0dXJuIGMgaW5zdGFuY2VvZiBDICYmIGMgaW5zdGFuY2VvZiBGdW5jdGlvbiAmJiBPYmpl
Y3QuZ2V0UHJvdG90eXBlT2YoQykgPT09IEZ1bmN0aW9uOworICAgICAgCit9CisKK2lmICghdGVz
dCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9IVE1MLXN0eWxlX2NvbW1lbnRzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvSFRNTC1zdHlsZV9jb21tZW50
cy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvSFRN
TC1zdHlsZV9jb21tZW50cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5j
dGlvbiB0ZXN0KCkgeworCistLT4gQSBjb21tZW50Cis8IS0tIEFub3RoZXIgY29tbWVudAordmFy
IGEgPSAzOyA8IS0tIEFub3RoZXIgY29tbWVudAorcmV0dXJuIGEgPT09IDM7CisgIAorfQorCitp
ZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hcF8tMF9rZXlfY29udmVydHNfdG9fKzAu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBfLTBf
a2V5X2NvbnZlcnRzX3RvXyswLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9NYXBfLTBfa2V5X2NvbnZlcnRzX3RvXyswLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBtYXAgPSBuZXcgTWFw
KCk7CittYXAuc2V0KC0wLCAiZm9vIik7Cit2YXIgazsKK21hcC5mb3JFYWNoKGZ1bmN0aW9uICh2
YWx1ZSwga2V5KSB7CisgIGsgPSAxIC8ga2V5OworfSk7CityZXR1cm4gayA9PT0gSW5maW5pdHkg
JiYgbWFwLmdldCgrMCkgPT0gImZvbyI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L01hcF9NYXAucHJvdG90eXBlLmNsZWFyLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWFwX01hcC5wcm90b3R5cGUuY2xlYXIu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hcF9N
YXAucHJvdG90eXBlLmNsZWFyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBNYXAucHJvdG90eXBlLmNsZWFyID09PSAi
ZnVuY3Rpb24iOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJv
cigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9NYXBfTWFwLnByb3RvdHlwZS5kZWxldGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBfTWFwLnByb3RvdHlwZS5kZWxldGUuanMJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hcF9NYXAucHJvdG90eXBl
LmRlbGV0ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3Qo
KSB7CisKK3JldHVybiB0eXBlb2YgTWFwLnByb3RvdHlwZS5kZWxldGUgPT09ICJmdW5jdGlvbiI7
CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZh
aWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hcF9NYXAu
cHJvdG90eXBlLmVudHJpZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9NYXBfTWFwLnByb3RvdHlwZS5lbnRyaWVzLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBfTWFwLnByb3RvdHlwZS5lbnRyaWVz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwor
cmV0dXJuIHR5cGVvZiBNYXAucHJvdG90eXBlLmVudHJpZXMgPT09ICJmdW5jdGlvbiI7CisgICAg
ICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIp
OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hcF9NYXAucHJvdG90
eXBlLmZvckVhY2guanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9NYXBfTWFwLnByb3RvdHlwZS5mb3JFYWNoLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBfTWFwLnByb3RvdHlwZS5mb3JFYWNoLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJu
IHR5cGVvZiBNYXAucHJvdG90eXBlLmZvckVhY2ggPT09ICJmdW5jdGlvbiI7CisgICAgICAKK30K
KworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hcF9NYXAucHJvdG90eXBlLmtl
eXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBf
TWFwLnByb3RvdHlwZS5rZXlzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9NYXBfTWFwLnByb3RvdHlwZS5rZXlzLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBNYXAucHJv
dG90eXBlLmtleXMgPT09ICJmdW5jdGlvbiI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisg
ICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L01hcF9NYXAucHJvdG90eXBlLnNldF9yZXR1cm5zX3RoaXMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBfTWFwLnBy
b3RvdHlwZS5zZXRfcmV0dXJuc190aGlzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBfTWFwLnByb3RvdHlwZS5zZXRfcmV0dXJuc190aGlzLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3Zh
ciBtYXAgPSBuZXcgTWFwKCk7CityZXR1cm4gbWFwLnNldCgwLCAwKSA9PT0gbWFwOworICAgICAg
Cit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBfTWFwLnByb3RvdHlw
ZS5zaXplLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
TWFwX01hcC5wcm90b3R5cGUuc2l6ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvTWFwX01hcC5wcm90b3R5cGUuc2l6ZS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIga2V5ID0ge307Cit2
YXIgbWFwID0gbmV3IE1hcCgpOworCittYXAuc2V0KGtleSwgMTIzKTsKKworcmV0dXJuIG1hcC5z
aXplID09PSAxOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJv
cigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9NYXBfTWFwLnByb3RvdHlwZS52YWx1ZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBfTWFwLnByb3RvdHlwZS52YWx1ZXMuanMJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hcF9NYXAucHJvdG90eXBl
LnZhbHVlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3Qo
KSB7CisKK3JldHVybiB0eXBlb2YgTWFwLnByb3RvdHlwZS52YWx1ZXMgPT09ICJmdW5jdGlvbiI7
CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZh
aWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hcF9NYXAu
cHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBfTWFwLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBfTWFw
LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
OSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBNYXAucHJvdG90eXBlW1N5
bWJvbC5pdGVyYXRvcl0gPT09ICJmdW5jdGlvbiI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkp
CisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hcF9NYXBbU3ltYm9sLnNwZWNpZXNdLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWFwX01hcFtTeW1ib2wuc3Bl
Y2llc10uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L01hcF9NYXBbU3ltYm9sLnNwZWNpZXNdLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAg
QEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBwcm9wID0gT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihNYXAsIFN5bWJvbC5zcGVjaWVzKTsKK3JldHVybiAnZ2V0JyBpbiBwcm9wICYm
IE1hcFtTeW1ib2wuc3BlY2llc10gPT09IE1hcDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvTWFwX01hcF9pdGVyYXRvcl9wcm90b3R5cGVfY2hhaW4uanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBfTWFwX2l0
ZXJhdG9yX3Byb3RvdHlwZV9jaGFpbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvTWFwX01hcF9pdGVyYXRvcl9wcm90b3R5cGVfY2hhaW4uanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8gSXRl
cmF0b3IgaW5zdGFuY2UKK3ZhciBpdGVyYXRvciA9IG5ldyBNYXAoKVtTeW1ib2wuaXRlcmF0b3Jd
KCk7CisvLyAlTWFwSXRlcmF0b3JQcm90b3R5cGUlCit2YXIgcHJvdG8xID0gT2JqZWN0LmdldFBy
b3RvdHlwZU9mKGl0ZXJhdG9yKTsKKy8vICVJdGVyYXRvclByb3RvdHlwZSUKK3ZhciBwcm90bzIg
PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8xKTsKKworcmV0dXJuIHByb3RvMi5oYXNPd25Q
cm9wZXJ0eShTeW1ib2wuaXRlcmF0b3IpICYmCisgICFwcm90bzEgICAgLmhhc093blByb3BlcnR5
KFN5bWJvbC5pdGVyYXRvcikgJiYKKyAgIWl0ZXJhdG9yICAuaGFzT3duUHJvcGVydHkoU3ltYm9s
Lml0ZXJhdG9yKSAmJgorICBpdGVyYXRvcltTeW1ib2wuaXRlcmF0b3JdKCkgPT09IGl0ZXJhdG9y
OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBm
YWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBfYmFz
aWNfZnVuY3Rpb25hbGl0eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L01hcF9iYXNpY19mdW5jdGlvbmFsaXR5LmpzCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBfYmFzaWNfZnVuY3Rpb25hbGl0eS5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIg
a2V5ID0ge307Cit2YXIgbWFwID0gbmV3IE1hcCgpOworCittYXAuc2V0KGtleSwgMTIzKTsKKwor
cmV0dXJuIG1hcC5oYXMoa2V5KSAmJiBtYXAuZ2V0KGtleSkgPT09IDEyMzsKKyAgICAgIAorfQor
CitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWFwX2NvbnN0cnVjdG9yX2FjY2Vw
dHNfbnVsbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L01hcF9jb25zdHJ1Y3Rvcl9hY2NlcHRzX251bGwuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hcF9jb25zdHJ1Y3Rvcl9hY2NlcHRzX251bGwuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworbmV3
IE1hcChudWxsKTsKK3JldHVybiB0cnVlOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9NYXBfY29uc3RydWN0b3JfYXJndW1lbnRzLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWFwX2NvbnN0cnVjdG9yX2FyZ3Vt
ZW50cy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
TWFwX2NvbnN0cnVjdG9yX2FyZ3VtZW50cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIga2V5MSA9IHt9OwordmFyIGtleTIgPSB7fTsK
K3ZhciBtYXAgPSBuZXcgTWFwKFtba2V5MSwgMTIzXSwgW2tleTIsIDQ1Nl1dKTsKKworcmV0dXJu
IG1hcC5oYXMoa2V5MSkgJiYgbWFwLmdldChrZXkxKSA9PT0gMTIzICYmCisgICAgICAgbWFwLmhh
cyhrZXkyKSAmJiBtYXAuZ2V0KGtleTIpID09PSA0NTY7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hcF9jb25zdHJ1Y3Rvcl9pbnZva2VzX3NldC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hcF9jb25zdHJ1
Y3Rvcl9pbnZva2VzX3NldC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvTWFwX2NvbnN0cnVjdG9yX2ludm9rZXNfc2V0LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBwYXNzZWQgPSBmYWxz
ZTsKK3ZhciBfc2V0ID0gTWFwLnByb3RvdHlwZS5zZXQ7CisKK01hcC5wcm90b3R5cGUuc2V0ID0g
ZnVuY3Rpb24oaywgdikgeworICBwYXNzZWQgPSB0cnVlOworfTsKKworbmV3IE1hcChbIFsxLCAy
XSBdKTsKK01hcC5wcm90b3R5cGUuc2V0ID0gX3NldDsKKworcmV0dXJuIHBhc3NlZDsKKyAgICAg
IAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWFwX2NvbnN0cnVjdG9y
X3JlcXVpcmVzX25ldy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L01hcF9jb25zdHJ1Y3Rvcl9yZXF1aXJlc19uZXcuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hcF9jb25zdHJ1Y3Rvcl9yZXF1aXJlc19u
ZXcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gdGVzdCgpIHsK
KworbmV3IE1hcCgpOwordHJ5IHsKKyAgTWFwKCk7CisgIHJldHVybiBmYWxzZTsKK30gY2F0Y2go
ZSkgeworICByZXR1cm4gdHJ1ZTsKK30KKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0
aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvTWFwX2l0ZXJhdG9yX2Nsb3NpbmcuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXBfaXRlcmF0b3JfY2xvc2luZy5qcwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWFwX2l0ZXJhdG9y
X2Nsb3NpbmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gdGVz
dCgpIHsKKwordmFyIGNsb3NlZCA9IGZhbHNlOwordmFyIGl0ZXIgPSBnbG9iYWwuX19jcmVhdGVJ
dGVyYWJsZU9iamVjdChbMSwgMiwgM10sIHsKKyAgJ3JldHVybic6IGZ1bmN0aW9uKCl7IGNsb3Nl
ZCA9IHRydWU7IHJldHVybiB7fTsgfQorfSk7Cit0cnkgeworICBuZXcgTWFwKGl0ZXIpOworfSBj
YXRjaChlKXt9CityZXR1cm4gY2xvc2VkOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9NYXRoX21ldGhvZHNfTWF0aC5hY29zaC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRoLmFjb3No
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXRo
X21ldGhvZHNfTWF0aC5hY29zaC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1
bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiB0eXBlb2YgTWF0aC5hY29zaCA9PT0gImZ1bmN0aW9u
IjsKKworfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVk
Iik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWF0aF9tZXRob2Rz
X01hdGguYXNpbmguanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9NYXRoX21ldGhvZHNfTWF0aC5hc2luaC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWF0aF9tZXRob2RzX01hdGguYXNpbmguanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlw
ZW9mIE1hdGguYXNpbmggPT09ICJmdW5jdGlvbiI7CisKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRoLmF0YW5oLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWF0aF9tZXRob2RzX01hdGguYXRhbmgu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hdGhf
bWV0aG9kc19NYXRoLmF0YW5oLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBNYXRoLmF0YW5oID09PSAiZnVuY3Rpb24i
OworCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQi
KTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXRoX21ldGhvZHNf
TWF0aC5jYnJ0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvTWF0aF9tZXRob2RzX01hdGguY2JydC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvTWF0aF9tZXRob2RzX01hdGguY2JydC5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiB0eXBlb2Yg
TWF0aC5jYnJ0ID09PSAiZnVuY3Rpb24iOworCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93
IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9NYXRoX21ldGhvZHNfTWF0aC5jbHozMi5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRoLmNsejMyLmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXRoX21ldGhv
ZHNfTWF0aC5jbHozMi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9u
IHRlc3QoKSB7CisKK3JldHVybiB0eXBlb2YgTWF0aC5jbHozMiA9PT0gImZ1bmN0aW9uIjsKKwor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWF0aF9tZXRob2RzX01hdGgu
Y29zaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01h
dGhfbWV0aG9kc19NYXRoLmNvc2guanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRoLmNvc2guanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIE1hdGgu
Y29zaCA9PT0gImZ1bmN0aW9uIjsKKworfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcg
RXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvTWF0aF9tZXRob2RzX01hdGguZXhwbTEuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXRoX21ldGhvZHNfTWF0aC5leHBtMS5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWF0aF9tZXRob2RzX01h
dGguZXhwbTEuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0ZXN0
KCkgeworCityZXR1cm4gdHlwZW9mIE1hdGguZXhwbTEgPT09ICJmdW5jdGlvbiI7CisKK30KKwor
aWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRoLmZyb3Vu
ZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hdGhf
bWV0aG9kc19NYXRoLmZyb3VuZC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvTWF0aF9tZXRob2RzX01hdGguZnJvdW5kLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBNYXRo
LmZyb3VuZCA9PT0gImZ1bmN0aW9uIjsKKworfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBu
ZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvTWF0aF9tZXRob2RzX01hdGguaHlwb3QuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXRoX21ldGhvZHNfTWF0aC5oeXBvdC5qcwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWF0aF9tZXRob2Rz
X01hdGguaHlwb3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24g
dGVzdCgpIHsKKworcmV0dXJuIE1hdGguaHlwb3QoKSA9PT0gMCAmJgorICBNYXRoLmh5cG90KDEp
ID09PSAxICYmCisgIE1hdGguaHlwb3QoOSwgMTIsIDIwKSA9PT0gMjUgJiYKKyAgTWF0aC5oeXBv
dCgyNywgMzYsIDYwLCAxMDApID09PSAxMjU7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisg
ICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRoLmltdWwuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXRoX21ldGhvZHNfTWF0aC5pbXVs
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXRo
X21ldGhvZHNfTWF0aC5pbXVsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBNYXRoLmltdWwgPT09ICJmdW5jdGlvbiI7
CisKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIp
OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hdGhfbWV0aG9kc19N
YXRoLmxvZzFwLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvTWF0aF9tZXRob2RzX01hdGgubG9nMXAuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRoLmxvZzFwLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVv
ZiBNYXRoLmxvZzFwID09PSAiZnVuY3Rpb24iOworCit9CisKK2lmICghdGVzdCgpKQorICAgIHRo
cm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9NYXRoX21ldGhvZHNfTWF0aC5sb2cyLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWF0aF9tZXRob2RzX01hdGgubG9nMi5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWF0aF9tZXRo
b2RzX01hdGgubG9nMi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9u
IHRlc3QoKSB7CisKK3JldHVybiB0eXBlb2YgTWF0aC5sb2cyID09PSAiZnVuY3Rpb24iOworCit9
CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXRoX21ldGhvZHNfTWF0aC5s
b2cxMC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01h
dGhfbWV0aG9kc19NYXRoLmxvZzEwLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9NYXRoX21ldGhvZHNfTWF0aC5sb2cxMC5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiB0eXBlb2YgTWF0
aC5sb2cxMCA9PT0gImZ1bmN0aW9uIjsKKworfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBu
ZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvTWF0aF9tZXRob2RzX01hdGguc2lnbi5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRoLnNpZ24uanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hdGhfbWV0aG9kc19N
YXRoLnNpZ24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0ZXN0
KCkgeworCityZXR1cm4gdHlwZW9mIE1hdGguc2lnbiA9PT0gImZ1bmN0aW9uIjsKKworfQorCitp
ZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWF0aF9tZXRob2RzX01hdGguc2luaC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hdGhfbWV0
aG9kc19NYXRoLnNpbmguanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRoLnNpbmguanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw5IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIE1hdGguc2luaCA9
PT0gImZ1bmN0aW9uIjsKKworfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3Io
IlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
TWF0aF9tZXRob2RzX01hdGgudGFuaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRoLnRhbmguanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L01hdGhfbWV0aG9kc19NYXRoLnRhbmgu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCity
ZXR1cm4gdHlwZW9mIE1hdGgudGFuaCA9PT0gImZ1bmN0aW9uIjsKKworfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTWF0aF9tZXRob2RzX01hdGgudHJ1bmMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9NYXRoX21ldGhvZHNfTWF0
aC50cnVuYy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvTWF0aF9tZXRob2RzX01hdGgudHJ1bmMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIE1hdGgudHJ1bmMgPT09ICJm
dW5jdGlvbiI7CisKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0
IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L051bWJl
cl9wcm9wZXJ0aWVzX051bWJlci5FUFNJTE9OLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvTnVtYmVyX3Byb3BlcnRpZXNfTnVtYmVyLkVQU0lMT04uanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L051bWJlcl9w
cm9wZXJ0aWVzX051bWJlci5FUFNJTE9OLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBA
QAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBOdW1iZXIuRVBTSUxPTiA9PT0g
J251bWJlcic7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9y
KCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L051bWJlcl9wcm9wZXJ0aWVzX051bWJlci5NQVhfU0FGRV9JTlRFR0VSLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTnVtYmVyX3Byb3BlcnRpZXNfTnVt
YmVyLk1BWF9TQUZFX0lOVEVHRVIuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L051bWJlcl9wcm9wZXJ0aWVzX051bWJlci5NQVhfU0FGRV9JTlRFR0VS
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwor
cmV0dXJuIHR5cGVvZiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiA9PT0gJ251bWJlcic7CisgICAg
ICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIp
OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L051bWJlcl9wcm9wZXJ0
aWVzX051bWJlci5NSU5fU0FGRV9JTlRFR0VSLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvTnVtYmVyX3Byb3BlcnRpZXNfTnVtYmVyLk1JTl9TQUZFX0lO
VEVHRVIuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L051bWJlcl9wcm9wZXJ0aWVzX051bWJlci5NSU5fU0FGRV9JTlRFR0VSLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBO
dW1iZXIuTUlOX1NBRkVfSU5URUdFUiA9PT0gJ251bWJlcic7CisgICAgICAKK30KKworaWYgKCF0
ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L051bWJlcl9wcm9wZXJ0aWVzX051bWJlci5pc0Zp
bml0ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L051
bWJlcl9wcm9wZXJ0aWVzX051bWJlci5pc0Zpbml0ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvTnVtYmVyX3Byb3BlcnRpZXNfTnVtYmVyLmlzRmlu
aXRlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsK
KworcmV0dXJuIHR5cGVvZiBOdW1iZXIuaXNGaW5pdGUgPT09ICdmdW5jdGlvbic7CisgICAgICAK
K30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOwor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L051bWJlcl9wcm9wZXJ0aWVz
X051bWJlci5pc0ludGVnZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9OdW1iZXJfcHJvcGVydGllc19OdW1iZXIuaXNJbnRlZ2VyLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9OdW1iZXJfcHJvcGVydGll
c19OdW1iZXIuaXNJbnRlZ2VyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBOdW1iZXIuaXNJbnRlZ2VyID09PSAnZnVu
Y3Rpb24nOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigi
VGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9O
dW1iZXJfcHJvcGVydGllc19OdW1iZXIuaXNOYU4uanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9OdW1iZXJfcHJvcGVydGllc19OdW1iZXIuaXNOYU4uanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L051bWJlcl9w
cm9wZXJ0aWVzX051bWJlci5pc05hTi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAK
K2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiB0eXBlb2YgTnVtYmVyLmlzTmFOID09PSAnZnVu
Y3Rpb24nOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigi
VGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9O
dW1iZXJfcHJvcGVydGllc19OdW1iZXIuaXNTYWZlSW50ZWdlci5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L051bWJlcl9wcm9wZXJ0aWVzX051bWJlci5p
c1NhZmVJbnRlZ2VyLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9OdW1iZXJfcHJvcGVydGllc19OdW1iZXIuaXNTYWZlSW50ZWdlci5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiB0eXBl
b2YgTnVtYmVyLmlzU2FmZUludGVnZXIgPT09ICdmdW5jdGlvbic7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdC5wcm90b3R5cGUuX19wcm90b19f
X2Fic2VudF9mcm9tX09iamVjdC5jcmVhdGVudWxsLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0LnByb3RvdHlwZS5fX3Byb3RvX19fYWJzZW50
X2Zyb21fT2JqZWN0LmNyZWF0ZW51bGwuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L09iamVjdC5wcm90b3R5cGUuX19wcm90b19fX2Fic2VudF9mcm9t
X09iamVjdC5jcmVhdGVudWxsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1
bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBvID0gT2JqZWN0LmNyZWF0ZShudWxsKSwgcCA9IHt9Owor
by5fX3Byb3RvX18gPSBwOworcmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihvKSAhPT0gcDsK
KyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFp
bGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0LnBy
b3RvdHlwZS5fX3Byb3RvX19fY29ycmVjdF9wcm9wZXJ0eV9kZXNjcmlwdG9yLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0LnByb3RvdHlwZS5f
X3Byb3RvX19fY29ycmVjdF9wcm9wZXJ0eV9kZXNjcmlwdG9yLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3QucHJvdG90eXBlLl9fcHJvdG9f
X19jb3JyZWN0X3Byb3BlcnR5X2Rlc2NyaXB0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxNiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIpOwordmFyIEEgPSBm
dW5jdGlvbigpe307CisKK3JldHVybiAoZGVzYworICAmJiAiZ2V0IiBpbiBkZXNjCisgICYmICJz
ZXQiIGluIGRlc2MKKyAgJiYgZGVzYy5jb25maWd1cmFibGUKKyAgJiYgIWRlc2MuZW51bWVyYWJs
ZSk7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0
IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVj
dC5wcm90b3R5cGUuX19wcm90b19fX2dldF9wcm90b3R5cGUuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3QucHJvdG90eXBlLl9fcHJvdG9fX19n
ZXRfcHJvdG90eXBlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9PYmplY3QucHJvdG90eXBlLl9fcHJvdG9fX19nZXRfcHJvdG90eXBlLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBBID0g
ZnVuY3Rpb24oKXt9OworcmV0dXJuIChuZXcgQSgpKS5fX3Byb3RvX18gPT09IEEucHJvdG90eXBl
OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBm
YWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3Qu
cHJvdG90eXBlLl9fcHJvdG9fX19wcmVzZW50X2luX09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0
LnByb3RvdHlwZS5fX3Byb3RvX19fcHJlc2VudF9pbl9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1l
cy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2Jq
ZWN0LnByb3RvdHlwZS5fX3Byb3RvX19fcHJlc2VudF9pbl9PYmplY3QuZ2V0T3duUHJvcGVydHlO
YW1lcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7
CisKK3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPYmplY3QucHJvdG90eXBlKS5p
bmRleE9mKCdfX3Byb3RvX18nKSA+IC0xOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9PYmplY3QucHJvdG90eXBlLl9fcHJvdG9fX19wcmVzZW50X2luX2hh
c093blByb3BlcnR5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvT2JqZWN0LnByb3RvdHlwZS5fX3Byb3RvX19fcHJlc2VudF9pbl9oYXNPd25Qcm9wZXJ0
eS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2Jq
ZWN0LnByb3RvdHlwZS5fX3Byb3RvX19fcHJlc2VudF9pbl9oYXNPd25Qcm9wZXJ0eS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiBP
YmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KCdfX3Byb3RvX18nKTsKKyAgICAgIAorfQor
CitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0LnByb3RvdHlwZS5fX3By
b3RvX19fc2V0X3Byb3RvdHlwZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L09iamVjdC5wcm90b3R5cGUuX19wcm90b19fX3NldF9wcm90b3R5cGUuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdC5w
cm90b3R5cGUuX19wcm90b19fX3NldF9wcm90b3R5cGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIG8gPSB7fTsKK28uX19wcm90b19f
ID0gQXJyYXkucHJvdG90eXBlOworcmV0dXJuIG8gaW5zdGFuY2VvZiBBcnJheTsKKyAgICAgIAor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRo
b2RzX09iamVjdC5hc3NpZ24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfT2JqZWN0LmFzc2lnbi5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19t
ZXRob2RzX09iamVjdC5hc3NpZ24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAor
ZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIG8gPSBPYmplY3QuYXNzaWduKHthOnRydWV9LCB7Yjp0
cnVlfSwge2M6dHJ1ZX0pOworcmV0dXJuICJhIiBpbiBvICYmICJiIiBpbiBvICYmICJjIiBpbiBv
OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBm
YWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3Rf
c3RhdGljX21ldGhvZHNfT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9k
c19PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfT2JqZWN0Lmdl
dE93blByb3BlcnR5U3ltYm9scy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACitm
dW5jdGlvbiB0ZXN0KCkgeworCit2YXIgbyA9IHt9OwordmFyIHN5bSA9IFN5bWJvbCgpLCBzeW0y
ID0gU3ltYm9sKCksIHN5bTMgPSBTeW1ib2woKTsKK29bc3ltXSAgPSB0cnVlOworb1tzeW0yXSA9
IHRydWU7CitvW3N5bTNdID0gdHJ1ZTsKK3ZhciByZXN1bHQgPSBPYmplY3QuZ2V0T3duUHJvcGVy
dHlTeW1ib2xzKG8pOworcmV0dXJuIHJlc3VsdFswXSA9PT0gc3ltCisgICYmIHJlc3VsdFsxXSA9
PT0gc3ltMgorICAmJiByZXN1bHRbMl0gPT09IHN5bTM7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19PYmplY3QuaXMu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3Rf
c3RhdGljX21ldGhvZHNfT2JqZWN0LmlzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfT2JqZWN0LmlzLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVy
biB0eXBlb2YgT2JqZWN0LmlzID09PSAnZnVuY3Rpb24nICYmCisgIE9iamVjdC5pcyhOYU4sIE5h
TikgJiYKKyAhT2JqZWN0LmlzKC0wLCAwKTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX09iamVjdC5zZXRQcm90b3R5
cGVPZi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09i
amVjdF9zdGF0aWNfbWV0aG9kc19PYmplY3Quc2V0UHJvdG90eXBlT2YuanMJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9k
c19PYmplY3Quc2V0UHJvdG90eXBlT2YuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBA
CitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKHt9LCBB
cnJheS5wcm90b3R5cGUpIGluc3RhbmNlb2YgQXJyYXk7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19hY2NlcHRfcHJp
bWl0aXZlc19PYmplY3QuZnJlZXplLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX2FjY2VwdF9wcmltaXRpdmVzX09i
amVjdC5mcmVlemUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19hY2NlcHRfcHJpbWl0aXZlc19PYmplY3QuZnJl
ZXplLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsK
KworcmV0dXJuIE9iamVjdC5mcmVlemUoJ2EnKSA9PT0gJ2EnOworICAgICAgCit9CisKK2lmICgh
dGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfYWNjZXB0
X3ByaW1pdGl2ZXNfT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvci5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9k
c19hY2NlcHRfcHJpbWl0aXZlc19PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3Rfc3Rh
dGljX21ldGhvZHNfYWNjZXB0X3ByaW1pdGl2ZXNfT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7
CisKK3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKCdhJywgJ2ZvbycpID09
PSB1bmRlZmluZWQ7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVy
cm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19hY2NlcHRfcHJpbWl0aXZlc19PYmplY3QuZ2V0T3du
UHJvcGVydHlOYW1lcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19hY2NlcHRfcHJpbWl0aXZlc19PYmplY3QuZ2V0
T3duUHJvcGVydHlOYW1lcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX2FjY2VwdF9wcmltaXRpdmVzX09iamVj
dC5nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAK
K2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMo
J2EnKTsKK3JldHVybiBzLmxlbmd0aCA9PT0gMiAmJgorICAoKHNbMF0gPT09ICdsZW5ndGgnICYm
IHNbMV0gPT09ICcwJykgfHwgKHNbMF0gPT09ICcwJyAmJiBzWzFdID09PSAnbGVuZ3RoJykpOwor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3Rfc3Rh
dGljX21ldGhvZHNfYWNjZXB0X3ByaW1pdGl2ZXNfT2JqZWN0LmdldFByb3RvdHlwZU9mLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0X3N0YXRp
Y19tZXRob2RzX2FjY2VwdF9wcmltaXRpdmVzX09iamVjdC5nZXRQcm90b3R5cGVPZi5qcwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0X3N0YXRp
Y19tZXRob2RzX2FjY2VwdF9wcmltaXRpdmVzX09iamVjdC5nZXRQcm90b3R5cGVPZi5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiBP
YmplY3QuZ2V0UHJvdG90eXBlT2YoJ2EnKS5jb25zdHJ1Y3RvciA9PT0gU3RyaW5nOworICAgICAg
Cit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21l
dGhvZHNfYWNjZXB0X3ByaW1pdGl2ZXNfT2JqZWN0LmlzRXh0ZW5zaWJsZS5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9k
c19hY2NlcHRfcHJpbWl0aXZlc19PYmplY3QuaXNFeHRlbnNpYmxlLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNf
YWNjZXB0X3ByaW1pdGl2ZXNfT2JqZWN0LmlzRXh0ZW5zaWJsZS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiBPYmplY3QuaXNFeHRl
bnNpYmxlKCdhJykgPT09IGZhbHNlOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRo
cm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfYWNjZXB0X3ByaW1pdGl2ZXNfT2Jq
ZWN0LmlzRnJvemVuLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX2FjY2VwdF9wcmltaXRpdmVzX09iamVjdC5pc0Zy
b3plbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
T2JqZWN0X3N0YXRpY19tZXRob2RzX2FjY2VwdF9wcmltaXRpdmVzX09iamVjdC5pc0Zyb3plbi5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3Jl
dHVybiBPYmplY3QuaXNGcm96ZW4oJ2EnKSA9PT0gdHJ1ZTsKKyAgICAgIAorfQorCitpZiAoIXRl
c3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX2FjY2VwdF9w
cmltaXRpdmVzX09iamVjdC5pc1NlYWxlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19hY2NlcHRfcHJpbWl0aXZl
c19PYmplY3QuaXNTZWFsZWQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19hY2NlcHRfcHJpbWl0aXZlc19PYmpl
Y3QuaXNTZWFsZWQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCityZXR1cm4gT2JqZWN0LmlzU2VhbGVkKCdhJykgPT09IHRydWU7CisgICAgICAK
K30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOwor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0
aG9kc19hY2NlcHRfcHJpbWl0aXZlc19PYmplY3Qua2V5cy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19hY2NlcHRf
cHJpbWl0aXZlc19PYmplY3Qua2V5cy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX2FjY2VwdF9wcmltaXRpdmVz
X09iamVjdC5rZXlzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9u
IHRlc3QoKSB7CisKK3ZhciBzID0gT2JqZWN0LmtleXMoJ2EnKTsKK3JldHVybiBzLmxlbmd0aCA9
PT0gMSAmJiBzWzBdID09PSAnMCc7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhy
b3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19hY2NlcHRfcHJpbWl0aXZlc19PYmpl
Y3QucHJldmVudEV4dGVuc2lvbnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfYWNjZXB0X3ByaW1pdGl2ZXNfT2Jq
ZWN0LnByZXZlbnRFeHRlbnNpb25zLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfYWNjZXB0X3ByaW1pdGl2ZXNf
T2JqZWN0LnByZXZlbnRFeHRlbnNpb25zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBA
QAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucygn
YScpID09PSAnYSc7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVy
cm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19hY2NlcHRfcHJpbWl0aXZlc19PYmplY3Quc2VhbC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9z
dGF0aWNfbWV0aG9kc19hY2NlcHRfcHJpbWl0aXZlc19PYmplY3Quc2VhbC5qcwkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRo
b2RzX2FjY2VwdF9wcmltaXRpdmVzX09iamVjdC5zZWFsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIE9iamVjdC5zZWFsKCdhJykg
PT09ICdhJzsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3Io
IlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
UHJvbWlzZV9Qcm9taXNlLmFsbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L1Byb21pc2VfUHJvbWlzZS5hbGwuanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb21pc2VfUHJvbWlzZS5hbGwuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGZ1bGZp
bGxzID0gUHJvbWlzZS5hbGwoWworICBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSAgIHsg
c2V0VGltZW91dChyZXNvbHZlLDIwMCwiZm9vIik7IH0pLAorICBuZXcgUHJvbWlzZShmdW5jdGlv
bihyZXNvbHZlKSAgIHsgc2V0VGltZW91dChyZXNvbHZlLDEwMCwiYmFyIik7IH0pLAorXSk7Cit2
YXIgcmVqZWN0cyA9IFByb21pc2UuYWxsKFsKKyAgbmV3IFByb21pc2UoZnVuY3Rpb24oXywgcmVq
ZWN0KSB7IHNldFRpbWVvdXQocmVqZWN0LCAyMDAsImJheiIpOyB9KSwKKyAgbmV3IFByb21pc2Uo
ZnVuY3Rpb24oXywgcmVqZWN0KSB7IHNldFRpbWVvdXQocmVqZWN0LCAxMDAsInF1eCIpOyB9KSwK
K10pOwordmFyIHNjb3JlID0gMDsKK2Z1bGZpbGxzLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7IHNj
b3JlICs9IChyZXN1bHQgKyAiIiA9PT0gImZvbyxiYXIiKTsgY2hlY2soKTsgfSk7CityZWplY3Rz
LmNhdGNoKGZ1bmN0aW9uKHJlc3VsdCkgeyBzY29yZSArPSAocmVzdWx0ID09PSAicXV4Iik7IGNo
ZWNrKCk7IH0pOworCitmdW5jdGlvbiBjaGVjaygpIHsKKyAgaWYgKHNjb3JlID09PSAyKSBhc3lu
Y1Rlc3RQYXNzZWQoKTsKK30KKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBu
ZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvUHJvbWlzZV9Qcm9taXNlLmFsbF9nZW5lcmljX2l0ZXJhYmxlcy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb21pc2VfUHJvbWlzZS5h
bGxfZ2VuZXJpY19pdGVyYWJsZXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1Byb21pc2VfUHJvbWlzZS5hbGxfZ2VuZXJpY19pdGVyYWJsZXMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFy
IGZ1bGZpbGxzID0gUHJvbWlzZS5hbGwoZ2xvYmFsLl9fY3JlYXRlSXRlcmFibGVPYmplY3QoWwor
ICBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSAgIHsgc2V0VGltZW91dChyZXNvbHZlLDIw
MCwiZm9vIik7IH0pLAorICBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSAgIHsgc2V0VGlt
ZW91dChyZXNvbHZlLDEwMCwiYmFyIik7IH0pLAorXSkpOwordmFyIHJlamVjdHMgPSBQcm9taXNl
LmFsbChnbG9iYWwuX19jcmVhdGVJdGVyYWJsZU9iamVjdChbCisgIG5ldyBQcm9taXNlKGZ1bmN0
aW9uKF8sIHJlamVjdCkgeyBzZXRUaW1lb3V0KHJlamVjdCwgMjAwLCJiYXoiKTsgfSksCisgIG5l
dyBQcm9taXNlKGZ1bmN0aW9uKF8sIHJlamVjdCkgeyBzZXRUaW1lb3V0KHJlamVjdCwgMTAwLCJx
dXgiKTsgfSksCitdKSk7Cit2YXIgc2NvcmUgPSAwOworZnVsZmlsbHMudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsgc2NvcmUgKz0gKHJlc3VsdCArICIiID09PSAiZm9vLGJhciIpOyBjaGVjaygpOyB9
KTsKK3JlamVjdHMuY2F0Y2goZnVuY3Rpb24ocmVzdWx0KSB7IHNjb3JlICs9IChyZXN1bHQgPT09
ICJxdXgiKTsgY2hlY2soKTsgfSk7CisKK2Z1bmN0aW9uIGNoZWNrKCkgeworICBpZiAoc2NvcmUg
PT09IDIpIGFzeW5jVGVzdFBhc3NlZCgpOworfQorICAgICAgCit9CisKK2lmICghdGVzdCgpKQor
ICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm9taXNlX1Byb21pc2UucmFjZS5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb21pc2VfUHJvbWlzZS5yYWNlLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm9taXNl
X1Byb21pc2UucmFjZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIzIEBACitmdW5jdGlv
biB0ZXN0KCkgeworCit2YXIgZnVsZmlsbHMgPSBQcm9taXNlLnJhY2UoWworICBuZXcgUHJvbWlz
ZShmdW5jdGlvbihyZXNvbHZlKSAgIHsgc2V0VGltZW91dChyZXNvbHZlLDIwMCwiZm9vIik7IH0p
LAorICBuZXcgUHJvbWlzZShmdW5jdGlvbihfLCByZWplY3QpIHsgc2V0VGltZW91dChyZWplY3Qs
IDMwMCwiYmFyIik7IH0pLAorXSk7Cit2YXIgcmVqZWN0cyA9IFByb21pc2UucmFjZShbCisgIG5l
dyBQcm9taXNlKGZ1bmN0aW9uKF8sIHJlamVjdCkgeyBzZXRUaW1lb3V0KHJlamVjdCwgMjAwLCJi
YXoiKTsgfSksCisgIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpICAgeyBzZXRUaW1lb3V0
KHJlc29sdmUsMzAwLCJxdXgiKTsgfSksCitdKTsKK3ZhciBzY29yZSA9IDA7CitmdWxmaWxscy50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeyBzY29yZSArPSAocmVzdWx0ID09PSAiZm9vIik7IGNoZWNr
KCk7IH0pOworcmVqZWN0cy5jYXRjaChmdW5jdGlvbihyZXN1bHQpIHsgc2NvcmUgKz0gKHJlc3Vs
dCA9PT0gImJheiIpOyBjaGVjaygpOyB9KTsKKworZnVuY3Rpb24gY2hlY2soKSB7CisgIGlmIChz
Y29yZSA9PT0gMikgYXN5bmNUZXN0UGFzc2VkKCk7Cit9CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb21pc2VfUHJvbWlzZS5yYWNlX2dlbmVyaWNfaXRl
cmFibGVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
UHJvbWlzZV9Qcm9taXNlLnJhY2VfZ2VuZXJpY19pdGVyYWJsZXMuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb21pc2VfUHJvbWlzZS5yYWNlX2dl
bmVyaWNfaXRlcmFibGVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKK2Z1bmN0
aW9uIHRlc3QoKSB7CisKK3ZhciBmdWxmaWxscyA9IFByb21pc2UucmFjZShnbG9iYWwuX19jcmVh
dGVJdGVyYWJsZU9iamVjdChbCisgIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpICAgeyBz
ZXRUaW1lb3V0KHJlc29sdmUsMjAwLCJmb28iKTsgfSksCisgIG5ldyBQcm9taXNlKGZ1bmN0aW9u
KF8sIHJlamVjdCkgeyBzZXRUaW1lb3V0KHJlamVjdCwgMzAwLCJiYXIiKTsgfSksCitdKSk7Cit2
YXIgcmVqZWN0cyA9IFByb21pc2UucmFjZShnbG9iYWwuX19jcmVhdGVJdGVyYWJsZU9iamVjdChb
CisgIG5ldyBQcm9taXNlKGZ1bmN0aW9uKF8sIHJlamVjdCkgeyBzZXRUaW1lb3V0KHJlamVjdCwg
MjAwLCJiYXoiKTsgfSksCisgIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpICAgeyBzZXRU
aW1lb3V0KHJlc29sdmUsMzAwLCJxdXgiKTsgfSksCitdKSk7Cit2YXIgc2NvcmUgPSAwOworZnVs
ZmlsbHMudGhlbihmdW5jdGlvbihyZXN1bHQpIHsgc2NvcmUgKz0gKHJlc3VsdCA9PT0gImZvbyIp
OyBjaGVjaygpOyB9KTsKK3JlamVjdHMuY2F0Y2goZnVuY3Rpb24ocmVzdWx0KSB7IHNjb3JlICs9
IChyZXN1bHQgPT09ICJiYXoiKTsgY2hlY2soKTsgfSk7CisKK2Z1bmN0aW9uIGNoZWNrKCkgewor
ICBpZiAoc2NvcmUgPT09IDIpIGFzeW5jVGVzdFBhc3NlZCgpOworfQorICAgICAgCit9CisKK2lm
ICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm9taXNlX1Byb21pc2VbU3ltYm9sLnNw
ZWNpZXNdLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
UHJvbWlzZV9Qcm9taXNlW1N5bWJvbC5zcGVjaWVzXS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJvbWlzZV9Qcm9taXNlW1N5bWJvbC5zcGVjaWVz
XS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkgewor
Cit2YXIgcHJvcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUHJvbWlzZSwgU3lt
Ym9sLnNwZWNpZXMpOworcmV0dXJuICdnZXQnIGluIHByb3AgJiYgUHJvbWlzZVtTeW1ib2wuc3Bl
Y2llc10gPT09IFByb21pc2U7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cg
bmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L1Byb21pc2VfYmFzaWNfZnVuY3Rpb25hbGl0eS5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb21pc2VfYmFzaWNfZnVuY3Rpb25hbGl0
eS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJv
bWlzZV9iYXNpY19mdW5jdGlvbmFsaXR5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzAg
QEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBwMSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJl
c29sdmUsIHJlamVjdCkgeyByZXNvbHZlKCJmb28iKTsgfSk7Cit2YXIgcDIgPSBuZXcgUHJvbWlz
ZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsgcmVqZWN0KCJxdXV4Iik7IH0pOwordmFyIHNj
b3JlID0gMDsKKworZnVuY3Rpb24gdGhlbkZuKHJlc3VsdCkgIHsgc2NvcmUgKz0gKHJlc3VsdCA9
PT0gImZvbyIpOyAgY2hlY2soKTsgfQorZnVuY3Rpb24gY2F0Y2hGbihyZXN1bHQpIHsgc2NvcmUg
Kz0gKHJlc3VsdCA9PT0gInF1dXgiKTsgY2hlY2soKTsgfQorZnVuY3Rpb24gc2hvdWxkTm90UnVu
KHJlc3VsdCkgIHsgc2NvcmUgPSAtSW5maW5pdHk7ICAgfQorCitwMS50aGVuKHRoZW5Gbiwgc2hv
dWxkTm90UnVuKTsKK3AyLnRoZW4oc2hvdWxkTm90UnVuLCBjYXRjaEZuKTsKK3AxLmNhdGNoKHNo
b3VsZE5vdFJ1bik7CitwMi5jYXRjaChjYXRjaEZuKTsKKworcDEudGhlbihmdW5jdGlvbigpIHsK
KyAgLy8gUHJvbWlzZS5wcm90b3R5cGUudGhlbigpIHNob3VsZCByZXR1cm4gYSBuZXcgUHJvbWlz
ZQorICBzY29yZSArPSBwMS50aGVuKCkgIT09IHAxOworICBjaGVjaygpOworfSk7CisKK2Z1bmN0
aW9uIGNoZWNrKCkgeworICBpZiAoc2NvcmUgPT09IDQpIGFzeW5jVGVzdFBhc3NlZCgpOworfQor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm9taXNlX2Nv
bnN0cnVjdG9yX3JlcXVpcmVzX25ldy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1Byb21pc2VfY29uc3RydWN0b3JfcmVxdWlyZXNfbmV3LmpzCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm9taXNlX2NvbnN0
cnVjdG9yX3JlcXVpcmVzX25ldy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitm
dW5jdGlvbiB0ZXN0KCkgeworCituZXcgUHJvbWlzZShmdW5jdGlvbigpe30pOwordHJ5IHsKKyAg
UHJvbWlzZShmdW5jdGlvbigpe30pOworICByZXR1cm4gZmFsc2U7Cit9IGNhdGNoKGUpIHsKKyAg
cmV0dXJuIHRydWU7Cit9CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3
IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L1Byb21pc2VfaXNfc3ViY2xhc3NhYmxlX1Byb21pc2UuYWxsLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJvbWlzZV9pc19zdWJjbGFzc2Fi
bGVfUHJvbWlzZS5hbGwuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L1Byb21pc2VfaXNfc3ViY2xhc3NhYmxlX1Byb21pc2UuYWxsLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMjQgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK2NsYXNzIFAgZXh0
ZW5kcyBQcm9taXNlIHt9Cit2YXIgZnVsZmlsbHMgPSBQLmFsbChbCisgIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUpICAgeyBzZXRUaW1lb3V0KHJlc29sdmUsMjAwLCJmb28iKTsgfSksCisg
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpICAgeyBzZXRUaW1lb3V0KHJlc29sdmUsMTAw
LCJiYXIiKTsgfSksCitdKTsKK3ZhciByZWplY3RzID0gUC5hbGwoWworICBuZXcgUHJvbWlzZShm
dW5jdGlvbihfLCByZWplY3QpIHsgc2V0VGltZW91dChyZWplY3QsIDIwMCwiYmF6Iik7IH0pLAor
ICBuZXcgUHJvbWlzZShmdW5jdGlvbihfLCByZWplY3QpIHsgc2V0VGltZW91dChyZWplY3QsIDEw
MCwicXV4Iik7IH0pLAorXSk7Cit2YXIgc2NvcmUgPSArKGZ1bGZpbGxzIGluc3RhbmNlb2YgUCk7
CitmdWxmaWxscy50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeyBzY29yZSArPSAocmVzdWx0ICsgIiIg
PT09ICJmb28sYmFyIik7IGNoZWNrKCk7IH0pOworcmVqZWN0cy5jYXRjaChmdW5jdGlvbihyZXN1
bHQpIHsgc2NvcmUgKz0gKHJlc3VsdCA9PT0gInF1eCIpOyBjaGVjaygpOyB9KTsKKworZnVuY3Rp
b24gY2hlY2soKSB7CisgIGlmIChzY29yZSA9PT0gMykgYXN5bmNUZXN0UGFzc2VkKCk7Cit9Cisg
ICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxl
ZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb21pc2VfaXNf
c3ViY2xhc3NhYmxlX1Byb21pc2UucmFjZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1Byb21pc2VfaXNfc3ViY2xhc3NhYmxlX1Byb21pc2UucmFjZS5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJvbWlz
ZV9pc19zdWJjbGFzc2FibGVfUHJvbWlzZS5yYWNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMjQgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK2NsYXNzIFAgZXh0ZW5kcyBQcm9taXNlIHt9
Cit2YXIgZnVsZmlsbHMgPSBQLnJhY2UoWworICBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZl
KSAgIHsgc2V0VGltZW91dChyZXNvbHZlLDIwMCwiZm9vIik7IH0pLAorICBuZXcgUHJvbWlzZShm
dW5jdGlvbihfLCByZWplY3QpIHsgc2V0VGltZW91dChyZWplY3QsIDMwMCwiYmFyIik7IH0pLAor
XSk7Cit2YXIgcmVqZWN0cyA9IFAucmFjZShbCisgIG5ldyBQcm9taXNlKGZ1bmN0aW9uKF8sIHJl
amVjdCkgeyBzZXRUaW1lb3V0KHJlamVjdCwgMjAwLCJiYXoiKTsgfSksCisgIG5ldyBQcm9taXNl
KGZ1bmN0aW9uKHJlc29sdmUpICAgeyBzZXRUaW1lb3V0KHJlc29sdmUsMzAwLCJxdXgiKTsgfSks
CitdKTsKK3ZhciBzY29yZSA9ICsoZnVsZmlsbHMgaW5zdGFuY2VvZiBQKTsKK2Z1bGZpbGxzLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7IHNjb3JlICs9IChyZXN1bHQgPT09ICJmb28iKTsgY2hlY2so
KTsgfSk7CityZWplY3RzLmNhdGNoKGZ1bmN0aW9uKHJlc3VsdCkgeyBzY29yZSArPSAocmVzdWx0
ID09PSAiYmF6Iik7IGNoZWNrKCk7IH0pOworCitmdW5jdGlvbiBjaGVjaygpIHsKKyAgaWYgKHNj
b3JlID09PSAzKSBhc3luY1Rlc3RQYXNzZWQoKTsKK30KKyAgICAgIAorfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJvbWlzZV9pc19zdWJjbGFzc2FibGVfYmFzaWNfZnVu
Y3Rpb25hbGl0eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L1Byb21pc2VfaXNfc3ViY2xhc3NhYmxlX2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb21pc2VfaXNfc3Vi
Y2xhc3NhYmxlX2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzMSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworY2xhc3MgUCBleHRlbmRzIFByb21pc2Uge30K
K3ZhciBwMSA9IG5ldyBQKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeyByZXNvbHZlKCJmb28i
KTsgfSk7Cit2YXIgcDIgPSBuZXcgUChmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsgcmVqZWN0
KCJxdXV4Iik7IH0pOwordmFyIHNjb3JlID0gKyhwMSBpbnN0YW5jZW9mIFApOworCitmdW5jdGlv
biB0aGVuRm4ocmVzdWx0KSAgeyBzY29yZSArPSAocmVzdWx0ID09PSAiZm9vIik7ICBjaGVjaygp
OyB9CitmdW5jdGlvbiBjYXRjaEZuKHJlc3VsdCkgeyBzY29yZSArPSAocmVzdWx0ID09PSAicXV1
eCIpOyBjaGVjaygpOyB9CitmdW5jdGlvbiBzaG91bGROb3RSdW4ocmVzdWx0KSAgeyBzY29yZSA9
IC1JbmZpbml0eTsgICB9CisKK3AxLnRoZW4odGhlbkZuLCBzaG91bGROb3RSdW4pOworcDIudGhl
bihzaG91bGROb3RSdW4sIGNhdGNoRm4pOworcDEuY2F0Y2goc2hvdWxkTm90UnVuKTsKK3AyLmNh
dGNoKGNhdGNoRm4pOworCitwMS50aGVuKGZ1bmN0aW9uKCkgeworICAvLyBQLnByb3RvdHlwZS50
aGVuKCkgc2hvdWxkIHJldHVybiBhIG5ldyBQCisgIHNjb3JlICs9IHAxLnRoZW4oKSBpbnN0YW5j
ZW9mIFAgJiYgcDEudGhlbigpICE9PSBwMTsKKyAgY2hlY2soKTsKK30pOworCitmdW5jdGlvbiBj
aGVjaygpIHsKKyAgaWYgKHNjb3JlID09PSA1KSBhc3luY1Rlc3RQYXNzZWQoKTsKK30KKyAgICAg
IAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJvbWlzZV9pc19zdWJj
bGFzc2FibGVfY29ycmVjdF9wcm90b3R5cGVfY2hhaW4uanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm9taXNlX2lzX3N1YmNsYXNzYWJsZV9jb3JyZWN0
X3Byb3RvdHlwZV9jaGFpbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvUHJvbWlzZV9pc19zdWJjbGFzc2FibGVfY29ycmVjdF9wcm90b3R5cGVfY2hh
aW4uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorZnVuY3Rpb24gdGVzdCgpIHsK
KworY2xhc3MgQyBleHRlbmRzIFByb21pc2Uge30KK3ZhciBjID0gbmV3IEMoZnVuY3Rpb24ocmVz
b2x2ZSwgcmVqZWN0KSB7IHJlc29sdmUoImZvbyIpOyB9KTsKK3JldHVybiBjIGluc3RhbmNlb2Yg
QyAmJiBjIGluc3RhbmNlb2YgUHJvbWlzZSAmJiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoQykgPT09
IFByb21pc2U7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9y
KCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L1Byb3h5X0FycmF5LmlzQXJyYXlfc3VwcG9ydC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X0FycmF5LmlzQXJyYXlfc3VwcG9ydC5qcwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfQXJyYXku
aXNBcnJheV9zdXBwb3J0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rp
b24gdGVzdCgpIHsKKworcmV0dXJuIEFycmF5LmlzQXJyYXkobmV3IFByb3h5KFtdLCB7fSkpOwor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9KU09O
LnN0cmluZ2lmeV9zdXBwb3J0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvUHJveHlfSlNPTi5zdHJpbmdpZnlfc3VwcG9ydC5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfSlNPTi5zdHJpbmdpZnlf
c3VwcG9ydC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3Qo
KSB7CisKK3JldHVybiBKU09OLnN0cmluZ2lmeShuZXcgUHJveHkoWydmb28nXSwge30pKSA9PT0g
J1siZm9vIl0nOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJv
cigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9Qcm94eV9Qcm94eS5yZXZvY2FibGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9Qcm94eS5yZXZvY2FibGUuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X1Byb3h5LnJldm9jYWJsZS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2
YXIgb2JqID0gUHJveHkucmV2b2NhYmxlKHt9LCB7IGdldDogZnVuY3Rpb24oKSB7IHJldHVybiA1
OyB9IH0pOwordmFyIHBhc3NlZCA9IChvYmoucHJveHkuZm9vID09PSA1KTsKK29iai5yZXZva2Uo
KTsKK3RyeSB7CisgIG9iai5wcm94eS5mb287Cit9IGNhdGNoKGUpIHsKKyAgcGFzc2VkICY9IGUg
aW5zdGFuY2VvZiBUeXBlRXJyb3I7Cit9CityZXR1cm4gcGFzc2VkOworICAgICAgCit9CisKK2lm
ICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9hcHBseV9oYW5kbGVyLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfYXBwbHlf
aGFuZGxlci5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvUHJveHlfYXBwbHlfaGFuZGxlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBA
CitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgcHJveGllZCA9IGZ1bmN0aW9uKCl7fTsKK3ZhciBw
YXNzZWQgPSBmYWxzZTsKK3ZhciBob3N0ID0geworICBtZXRob2Q6IG5ldyBQcm94eShwcm94aWVk
LCB7CisgICAgYXBwbHk6IGZ1bmN0aW9uICh0LCB0aGlzQXJnLCBhcmdzKSB7CisgICAgICBwYXNz
ZWQgPSB0ID09PSBwcm94aWVkICYmIHRoaXNBcmcgPT09IGhvc3QgJiYgYXJncyArICIiID09PSAi
Zm9vLGJhciI7CisgICAgfQorICB9KQorfTsKK2hvc3QubWV0aG9kKCJmb28iLCAiYmFyIik7City
ZXR1cm4gcGFzc2VkOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBF
cnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9Qcm94eV9jb25zdHJ1Y3RfaGFuZGxlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2NvbnN0cnVjdF9oYW5kbGVyLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9jb25zdHJ1Y3Rf
aGFuZGxlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiB0ZXN0
KCkgeworCit2YXIgcHJveGllZCA9IGZ1bmN0aW9uKCl7fTsKK3ZhciBwYXNzZWQgPSBmYWxzZTsK
K25ldyBuZXcgUHJveHkocHJveGllZCwgeworICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uICh0LCBhcmdz
KSB7CisgICAgcGFzc2VkID0gdCA9PT0gcHJveGllZCAmJiBhcmdzICsgIiIgPT09ICJmb28sYmFy
IjsKKyAgICByZXR1cm4ge307CisgIH0KK30pKCJmb28iLCJiYXIiKTsKK3JldHVybiBwYXNzZWQ7
CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZh
aWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2Nv
bnN0cnVjdG9yX3JlcXVpcmVzX25ldy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1Byb3h5X2NvbnN0cnVjdG9yX3JlcXVpcmVzX25ldy5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfY29uc3RydWN0
b3JfcmVxdWlyZXNfbmV3LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0
aW9uIHRlc3QoKSB7CisKK25ldyBQcm94eSh7fSwge30pOwordHJ5IHsKKyAgUHJveHkoe30sIHt9
KTsKKyAgcmV0dXJuIGZhbHNlOworfSBjYXRjaChlKSB7CisgIHJldHVybiB0cnVlOworfQorICAg
ICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQi
KTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9kZWZpbmVQ
cm9wZXJ0eV9oYW5kbGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvUHJveHlfZGVmaW5lUHJvcGVydHlfaGFuZGxlci5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfZGVmaW5lUHJvcGVydHlfaGFu
ZGxlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIxIEBACitmdW5jdGlvbiB0ZXN0KCkg
eworCit2YXIgcHJveGllZCA9IHt9OwordmFyIHBhc3NlZCA9IGZhbHNlOworT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KAorICBuZXcgUHJveHkocHJveGllZCwgeworICAgIGRlZmluZVByb3BlcnR5OiBm
dW5jdGlvbiAodCwgaywgZCkgeworICAgICAgcGFzc2VkID0gdCA9PT0gcHJveGllZCAmJiBrID09
PSAiZm9vIiAmJiBkLnZhbHVlID09PSA1OworICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICB9
KSwKKyAgImZvbyIsCisgIHsgdmFsdWU6IDUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9CispOworcmV0
dXJuIHBhc3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJy
b3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvUHJveHlfZGVsZXRlUHJvcGVydHlfaGFuZGxlci5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2RlbGV0ZVByb3BlcnR5X2hhbmRsZXIuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2Rl
bGV0ZVByb3BlcnR5X2hhbmRsZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAor
ZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIHByb3hpZWQgPSB7fTsKKyAgdmFyIHBhc3NlZCA9IGZh
bHNlOworICBkZWxldGUgbmV3IFByb3h5KHByb3hpZWQsIHsKKyAgICBkZWxldGVQcm9wZXJ0eTog
ZnVuY3Rpb24gKHQsIGspIHsKKyAgICAgIHBhc3NlZCA9IHQgPT09IHByb3hpZWQgJiYgayA9PT0g
ImZvbyI7CisgICAgfQorICB9KS5mb287CisgIHJldHVybiBwYXNzZWQ7CisKK30KKworaWYgKCF0
ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2VudW1lcmF0ZV9oYW5kbGVyLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfZW51bWVy
YXRlX2hhbmRsZXIuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L1Byb3h5X2VudW1lcmF0ZV9oYW5kbGVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMjEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBwcm94aWVkID0ge307Cit2YXIgcGFz
c2VkID0gZmFsc2U7Citmb3IgKHZhciBpIGluCisgIG5ldyBQcm94eShwcm94aWVkLCB7CisgICAg
ZW51bWVyYXRlOiBmdW5jdGlvbiAodCkgeworICAgICAgcGFzc2VkID0gdCA9PT0gcHJveGllZDsK
KyAgICAgIHJldHVybiB7CisgICAgICAgIG5leHQ6IGZ1bmN0aW9uKCl7IHJldHVybiB7IGRvbmU6
IHRydWUsIHZhbHVlOiBudWxsIH07fQorICAgICAgfTsKKyAgICB9CisgIH0pCispIHsgfQorcmV0
dXJuIHBhc3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJy
b3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvUHJveHlfZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yX2hhbmRsZXIuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3JfaGFuZGxlci5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvUHJveHlfZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yX2hhbmRsZXIuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyMiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIHBy
b3hpZWQgPSB7fTsKK3ZhciBmYWtlRGVzYyA9IHsgdmFsdWU6ICJmb28iLCBjb25maWd1cmFibGU6
IHRydWUgfTsKK3ZhciByZXR1cm5lZERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKAorICBuZXcgUHJveHkocHJveGllZCwgeworICAgIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cjogZnVuY3Rpb24gKHQsIGspIHsKKyAgICAgIHJldHVybiB0ID09PSBwcm94aWVkICYmIGsgPT09
ICJmb28iICYmIGZha2VEZXNjOworICAgIH0KKyAgfSksCisgICJmb28iCispOworcmV0dXJuIChy
ZXR1cm5lZERlc2MudmFsdWUgICAgID09PSBmYWtlRGVzYy52YWx1ZQorICAmJiByZXR1cm5lZERl
c2MuY29uZmlndXJhYmxlID09PSBmYWtlRGVzYy5jb25maWd1cmFibGUKKyAgJiYgcmV0dXJuZWRE
ZXNjLndyaXRhYmxlICAgICA9PT0gZmFsc2UKKyAgJiYgcmV0dXJuZWREZXNjLmVudW1lcmFibGUg
ICA9PT0gZmFsc2UpOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBF
cnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9Qcm94eV9nZXRQcm90b3R5cGVPZl9oYW5kbGVyLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfZ2V0UHJvdG90eXBlT2ZfaGFuZGxlci5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlf
Z2V0UHJvdG90eXBlT2ZfaGFuZGxlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBA
CitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgcHJveGllZCA9IHt9OwordmFyIGZha2VQcm90byA9
IHt9OwordmFyIHByb3h5ID0gbmV3IFByb3h5KHByb3hpZWQsIHsKKyAgZ2V0UHJvdG90eXBlT2Y6
IGZ1bmN0aW9uICh0KSB7CisgICAgcmV0dXJuIHQgPT09IHByb3hpZWQgJiYgZmFrZVByb3RvOwor
ICB9Cit9KTsKK3JldHVybiBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJveHkpID09PSBmYWtlUHJv
dG87CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0
IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5
X2dldF9oYW5kbGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvUHJveHlfZ2V0X2hhbmRsZXIuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2dldF9oYW5kbGVyLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBwcm94aWVkID0geyB9Owor
dmFyIHByb3h5ID0gbmV3IFByb3h5KHByb3hpZWQsIHsKKyAgZ2V0OiBmdW5jdGlvbiAodCwgaywg
cikgeworICAgIHJldHVybiB0ID09PSBwcm94aWVkICYmIGsgPT09ICJmb28iICYmIHIgPT09IHBy
b3h5ICYmIDU7CisgIH0KK30pOworcmV0dXJuIHByb3h5LmZvbyA9PT0gNTsKKyAgICAgIAorfQor
CitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfZ2V0X2hhbmRsZXJfaW5z
dGFuY2VzX29mX3Byb3hpZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9Qcm94eV9nZXRfaGFuZGxlcl9pbnN0YW5jZXNfb2ZfcHJveGllcy5qcwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfZ2V0X2hh
bmRsZXJfaW5zdGFuY2VzX29mX3Byb3hpZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
NSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIHByb3hpZWQgPSB7IH07Cit2YXIgcHJveHkg
PSBPYmplY3QuY3JlYXRlKG5ldyBQcm94eShwcm94aWVkLCB7CisgIGdldDogZnVuY3Rpb24gKHQs
IGssIHIpIHsKKyAgICByZXR1cm4gdCA9PT0gcHJveGllZCAmJiBrID09PSAiZm9vIiAmJiByID09
PSBwcm94eSAmJiA1OworICB9Cit9KSk7CityZXR1cm4gcHJveHkuZm9vID09PSA1OworICAgICAg
Cit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9oYXNfaGFuZGxl
ci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5
X2hhc19oYW5kbGVyLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9Qcm94eV9oYXNfaGFuZGxlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgcHJveGllZCA9IHt9OwordmFyIHBhc3NlZCA9
IGZhbHNlOworImZvbyIgaW4gbmV3IFByb3h5KHByb3hpZWQsIHsKKyAgaGFzOiBmdW5jdGlvbiAo
dCwgaykgeworICAgIHBhc3NlZCA9IHQgPT09IHByb3hpZWQgJiYgayA9PT0gImZvbyI7CisgIH0K
K30pOworcmV0dXJuIHBhc3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvUHJveHlfaGFzX2hhbmRsZXJfaW5zdGFuY2VzX29mX3Byb3hpZXMuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9oYXNfaGFu
ZGxlcl9pbnN0YW5jZXNfb2ZfcHJveGllcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaGFzX2hhbmRsZXJfaW5zdGFuY2VzX29mX3Byb3hp
ZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gdGVzdCgpIHsK
KwordmFyIHByb3hpZWQgPSB7fTsKK3ZhciBwYXNzZWQgPSBmYWxzZTsKKyJmb28iIGluIE9iamVj
dC5jcmVhdGUobmV3IFByb3h5KHByb3hpZWQsIHsKKyAgaGFzOiBmdW5jdGlvbiAodCwgaykgewor
ICAgIHBhc3NlZCA9IHQgPT09IHByb3hpZWQgJiYgayA9PT0gImZvbyI7CisgIH0KK30pKTsKK3Jl
dHVybiBwYXNzZWQ7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVy
cm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L1Byb3h5X2ludGVybmFsX2RlZmluZVByb3BlcnR5X2NhbGxzX1NldEludGVncml0eUxldmVs
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlf
aW50ZXJuYWxfZGVmaW5lUHJvcGVydHlfY2FsbHNfU2V0SW50ZWdyaXR5TGV2ZWwuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFs
X2RlZmluZVByb3BlcnR5X2NhbGxzX1NldEludGVncml0eUxldmVsLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIFNldEludGVncml0eUxl
dmVsIC0+IERlZmluZVByb3BlcnR5T3JUaHJvdyAtPiBbW0RlZmluZU93blByb3BlcnR5XV0KK3Zh
ciBkZWYgPSBbXTsKK3ZhciBwID0gbmV3IFByb3h5KHtmb286MSwgYmFyOjJ9LCB7IGRlZmluZVBy
b3BlcnR5OiBmdW5jdGlvbihvLCB2LCBkZXNjKSB7IGRlZi5wdXNoKHYpOyBPYmplY3QuZGVmaW5l
UHJvcGVydHkobywgdiwgZGVzYyk7IHJldHVybiB0cnVlOyB9fSk7CitPYmplY3QuZnJlZXplKHAp
OworcmV0dXJuIGRlZiArICcnID09PSAiZm9vLGJhciI7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2RlZmluZVByb3BlcnR5X2Nh
bGxzX1tbU2V0XV0uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9Qcm94eV9pbnRlcm5hbF9kZWZpbmVQcm9wZXJ0eV9jYWxsc19bW1NldF1dLmpzCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5h
bF9kZWZpbmVQcm9wZXJ0eV9jYWxsc19bW1NldF1dLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIFtbU2V0XV0gLT4gW1tEZWZpbmVPd25Q
cm9wZXJ0eV1dCit2YXIgZGVmID0gW107Cit2YXIgcCA9IG5ldyBQcm94eSh7Zm9vOjEsIGJhcjoy
fSwgeyBkZWZpbmVQcm9wZXJ0eTogZnVuY3Rpb24obywgdiwgZGVzYykgeyBkZWYucHVzaCh2KTsg
T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIHYsIGRlc2MpOyByZXR1cm4gdHJ1ZTsgfX0pOworcC5m
b28gPSAyOyBwLmJhciA9IDQ7CityZXR1cm4gZGVmICsgJycgPT09ICJmb28sYmFyIjsKKyAgICAg
IAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxf
ZGVsZXRlUHJvcGVydHlfY2FsbHNfQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4uanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9k
ZWxldGVQcm9wZXJ0eV9jYWxsc19BcnJheS5wcm90b3R5cGUuY29weVdpdGhpbi5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxf
ZGVsZXRlUHJvcGVydHlfY2FsbHNfQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4uanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8gQXJyYXku
cHJvdG90eXBlLmNvcHlXaXRoaW4gLT4gRGVsZXRlUHJvcGVydHlPclRocm93IC0+IFtbRGVsZXRl
XV0KK3ZhciBkZWwgPSBbXTsKK3ZhciBwID0gbmV3IFByb3h5KFswLDAsMCwsLCxdLCB7IGRlbGV0
ZVByb3BlcnR5OiBmdW5jdGlvbihvLCB2KSB7IGRlbC5wdXNoKHYpOyByZXR1cm4gZGVsZXRlIG9b
dl07IH19KTsKK3AuY29weVdpdGhpbigwLDMpOworcmV0dXJuIGRlbCArICcnID09PSAiMCwxLDIi
OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBm
YWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9p
bnRlcm5hbF9kZWxldGVQcm9wZXJ0eV9jYWxsc19BcnJheS5wcm90b3R5cGUucG9wLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxf
ZGVsZXRlUHJvcGVydHlfY2FsbHNfQXJyYXkucHJvdG90eXBlLnBvcC5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZGVsZXRl
UHJvcGVydHlfY2FsbHNfQXJyYXkucHJvdG90eXBlLnBvcC5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEzIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisvLyBBcnJheS5wcm90b3R5cGUucG9w
IC0+IERlbGV0ZVByb3BlcnR5T3JUaHJvdyAtPiBbW0RlbGV0ZV1dCit2YXIgZGVsID0gW107Cit2
YXIgcCA9IG5ldyBQcm94eShbMCwwLDBdLCB7IGRlbGV0ZVByb3BlcnR5OiBmdW5jdGlvbihvLCB2
KSB7IGRlbC5wdXNoKHYpOyByZXR1cm4gZGVsZXRlIG9bdl07IH19KTsKK3AucG9wKCk7CityZXR1
cm4gZGVsICsgJycgPT09ICIyIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZGVsZXRlUHJvcGVydHlfY2FsbHNfQXJyYXkucHJv
dG90eXBlLnJldmVyc2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9kZWxldGVQcm9wZXJ0eV9jYWxsc19BcnJheS5wcm90b3R5
cGUucmV2ZXJzZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvUHJveHlfaW50ZXJuYWxfZGVsZXRlUHJvcGVydHlfY2FsbHNfQXJyYXkucHJvdG90eXBl
LnJldmVyc2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVz
dCgpIHsKKworLy8gQXJyYXkucHJvdG90eXBlLnJldmVyc2UgLT4gRGVsZXRlUHJvcGVydHlPclRo
cm93IC0+IFtbRGVsZXRlXV0KK3ZhciBkZWwgPSBbXTsKK3ZhciBwID0gbmV3IFByb3h5KFswLCwy
LCw0LCxdLCB7IGRlbGV0ZVByb3BlcnR5OiBmdW5jdGlvbihvLCB2KSB7IGRlbC5wdXNoKHYpOyBy
ZXR1cm4gZGVsZXRlIG9bdl07IH19KTsKK3AucmV2ZXJzZSgpOworcmV0dXJuIGRlbCArICcnID09
PSAiMCw0LDIiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJv
cigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9Qcm94eV9pbnRlcm5hbF9kZWxldGVQcm9wZXJ0eV9jYWxsc19BcnJheS5wcm90b3R5cGUuc2hp
ZnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94
eV9pbnRlcm5hbF9kZWxldGVQcm9wZXJ0eV9jYWxsc19BcnJheS5wcm90b3R5cGUuc2hpZnQuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2lu
dGVybmFsX2RlbGV0ZVByb3BlcnR5X2NhbGxzX0FycmF5LnByb3RvdHlwZS5zaGlmdC5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisvLyBBcnJh
eS5wcm90b3R5cGUuc2hpZnQgLT4gRGVsZXRlUHJvcGVydHlPclRocm93IC0+IFtbRGVsZXRlXV0K
K3ZhciBkZWwgPSBbXTsKK3ZhciBwID0gbmV3IFByb3h5KFswLCwwLCwwLDBdLCB7IGRlbGV0ZVBy
b3BlcnR5OiBmdW5jdGlvbihvLCB2KSB7IGRlbC5wdXNoKHYpOyByZXR1cm4gZGVsZXRlIG9bdl07
IH19KTsKK3Auc2hpZnQoKTsKK3JldHVybiBkZWwgKyAnJyA9PT0gIjAsMiw1IjsKKyAgICAgIAor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZGVs
ZXRlUHJvcGVydHlfY2FsbHNfQXJyYXkucHJvdG90eXBlLnNwbGljZS5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2RlbGV0ZVBy
b3BlcnR5X2NhbGxzX0FycmF5LnByb3RvdHlwZS5zcGxpY2UuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2RlbGV0ZVByb3Bl
cnR5X2NhbGxzX0FycmF5LnByb3RvdHlwZS5zcGxpY2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8gQXJyYXkucHJvdG90eXBlLnNwbGlj
ZSAtPiBEZWxldGVQcm9wZXJ0eU9yVGhyb3cgLT4gW1tEZWxldGVdXQordmFyIGRlbCA9IFtdOwor
dmFyIHAgPSBuZXcgUHJveHkoWzAsMCwwLDAsLDBdLCB7IGRlbGV0ZVByb3BlcnR5OiBmdW5jdGlv
bihvLCB2KSB7IGRlbC5wdXNoKHYpOyByZXR1cm4gZGVsZXRlIG9bdl07IH19KTsKK3Auc3BsaWNl
KDIsMiwwKTsKK3JldHVybiBkZWwgKyAnJyA9PT0gIjMsNSI7CisgICAgICAKK30KKworaWYgKCF0
ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2RlbGV0ZVByb3BlcnR5
X2NhbGxzX0FycmF5LnByb3RvdHlwZS51bnNoaWZ0LmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZGVsZXRlUHJvcGVydHlfY2Fs
bHNfQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2RlbGV0ZVByb3BlcnR5X2NhbGxz
X0FycmF5LnByb3RvdHlwZS51bnNoaWZ0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMg
QEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIEFycmF5LnByb3RvdHlwZS51bnNoaWZ0IC0+IERl
bGV0ZVByb3BlcnR5T3JUaHJvdyAtPiBbW0RlbGV0ZV1dCit2YXIgZGVsID0gW107Cit2YXIgcCA9
IG5ldyBQcm94eShbMCwwLCwwLCwwXSwgeyBkZWxldGVQcm9wZXJ0eTogZnVuY3Rpb24obywgdikg
eyBkZWwucHVzaCh2KTsgcmV0dXJuIGRlbGV0ZSBvW3ZdOyB9fSk7CitwLnVuc2hpZnQoMCk7City
ZXR1cm4gZGVsICsgJycgPT09ICI1LDMiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Jf
Y2FsbHNfRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3JfY2FsbHNfRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldE93blByb3Bl
cnR5RGVzY3JpcHRvcl9jYWxsc19GdW5jdGlvbi5wcm90b3R5cGUuYmluZC5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisvLyBGdW5jdGlvbi5w
cm90b3R5cGUuYmluZCAtPiBIYXNPd25Qcm9wZXJ0eSAtPiBbW0dldE93blByb3BlcnR5XV0KK3Zh
ciBnb3BkID0gW107Cit2YXIgcCA9IG5ldyBQcm94eShGdW5jdGlvbigpLAorICB7IGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcjogZnVuY3Rpb24obywgdikgeyBnb3BkLnB1c2godik7IHJldHVybiBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sIHYpOyB9fSk7CitwLmJpbmQoKTsKK3Jl
dHVybiBnb3BkICsgJycgPT09ICJsZW5ndGgiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQor
ICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JfY2FsbHNfT2JqZWN0LmFzc2lnbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldE93blByb3BlcnR5RGVzY3JpcHRvcl9j
YWxsc19PYmplY3QuYXNzaWduLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JfY2Fs
bHNfT2JqZWN0LmFzc2lnbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0IEBACitmdW5j
dGlvbiB0ZXN0KCkgeworCisvLyBPYmplY3QuYXNzaWduIC0+IFtbR2V0T3duUHJvcGVydHldXQor
dmFyIGdvcGQgPSBbXTsKK3ZhciBwID0gbmV3IFByb3h5KHtmb286MSwgYmFyOjJ9LAorICB7IGdl
dE93blByb3BlcnR5RGVzY3JpcHRvcjogZnVuY3Rpb24obywgdikgeyBnb3BkLnB1c2godik7IHJl
dHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sIHYpOyB9fSk7CitPYmplY3Qu
YXNzaWduKHt9LCBwKTsKK3JldHVybiBnb3BkICsgJycgPT09ICJmb28sYmFyIjsKKyAgICAgIAor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yX2NhbGxzX09iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVy
dHkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94
eV9pbnRlcm5hbF9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JfY2FsbHNfT2JqZWN0LnByb3RvdHlw
ZS5oYXNPd25Qcm9wZXJ0eS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yX2NhbGxz
X09iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxNCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8gT2JqZWN0LnByb3RvdHlwZS5oYXNP
d25Qcm9wZXJ0eSAtPiBIYXNPd25Qcm9wZXJ0eSAtPiBbW0dldE93blByb3BlcnR5XV0KK3ZhciBn
b3BkID0gW107Cit2YXIgcCA9IG5ldyBQcm94eSh7Zm9vOjEsIGJhcjoyfSwKKyAgeyBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3I6IGZ1bmN0aW9uKG8sIHYpIHsgZ29wZC5wdXNoKHYpOyByZXR1cm4g
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvLCB2KTsgfX0pOworcC5oYXNPd25Qcm9w
ZXJ0eSgnZ2FycGx5Jyk7CityZXR1cm4gZ29wZCArICcnID09PSAiZ2FycGx5IjsKKyAgICAgIAor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yX2NhbGxzX1tbU2V0XV0uanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3JfY2FsbHNfW1tTZXRdXS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yX2NhbGxzX1tbU2V0XV0uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNCBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKworLy8gW1tTZXRdXSAtPiBbW0dldE93blByb3BlcnR5XV0KK3ZhciBn
b3BkID0gW107Cit2YXIgcCA9IG5ldyBQcm94eSh7fSwKKyAgeyBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3I6IGZ1bmN0aW9uKG8sIHYpIHsgZ29wZC5wdXNoKHYpOyByZXR1cm4gT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihvLCB2KTsgfX0pOworcC5mb28gPSAxOyBwLmJhciA9IDE7City
ZXR1cm4gZ29wZCArICcnID09PSAiZm9vLGJhciI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkp
CisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19BcnJheS5mcm9t
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlf
aW50ZXJuYWxfZ2V0X2NhbGxzX0FycmF5LmZyb20uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19BcnJheS5m
cm9tLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7
CisKKy8vIEFycmF5LmZyb20gLT4gR2V0IC0+IFtbR2V0XV0KK3ZhciBnZXQgPSBbXTsKK3ZhciBw
ID0gbmV3IFByb3h5KHtsZW5ndGg6IDIsIDA6ICcnLCAxOiAnJ30sIHsgZ2V0OiBmdW5jdGlvbihv
LCBrKSB7IGdldC5wdXNoKGspOyByZXR1cm4gb1trXTsgfX0pOworQXJyYXkuZnJvbShwKTsKK3Jl
dHVybiBnZXRbMF0gPT09IFN5bWJvbC5pdGVyYXRvciAmJiBnZXQuc2xpY2UoMSkgKyAnJyA9PT0g
Imxlbmd0aCwwLDEiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBF
cnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLmNvbmNhdC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVy
bmFsX2dldF9jYWxsc19BcnJheS5wcm90b3R5cGUuY29uY2F0LmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNf
QXJyYXkucHJvdG90eXBlLmNvbmNhdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIwIEBA
CitmdW5jdGlvbiB0ZXN0KCkgeworCisvLyBBcnJheS5wcm90b3R5cGUuY29uY2F0IC0+IEdldCAt
PiBbW0dldF1dCit2YXIgZ2V0ID0gW107Cit2YXIgYXJyID0gWzFdOworYXJyLmNvbnN0cnVjdG9y
ID0gdW5kZWZpbmVkOwordmFyIHAgPSBuZXcgUHJveHkoYXJyLCB7IGdldDogZnVuY3Rpb24obywg
aykgeyBnZXQucHVzaChrKTsgcmV0dXJuIG9ba107IH19KTsKK0FycmF5LnByb3RvdHlwZS5jb25j
YXQuY2FsbChwLHApOworcmV0dXJuIGdldFswXSA9PT0gImNvbnN0cnVjdG9yIgorICAmJiBnZXRb
MV0gPT09IFN5bWJvbC5pc0NvbmNhdFNwcmVhZGFibGUKKyAgJiYgZ2V0WzJdID09PSAibGVuZ3Ro
IgorICAmJiBnZXRbM10gPT09ICIwIgorICAmJiBnZXRbNF0gPT09IGdldFsxXSAmJiBnZXRbNV0g
PT09IGdldFsyXSAmJiBnZXRbNl0gPT09IGdldFszXQorICAmJiBnZXQubGVuZ3RoID09PSA3Owor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRl
cm5hbF9nZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLnBvcC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19BcnJh
eS5wcm90b3R5cGUucG9wLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLnBvcC5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisv
LyBBcnJheS5wcm90b3R5cGUucG9wIC0+IEdldCAtPiBbW0dldF1dCit2YXIgZ2V0ID0gW107Cit2
YXIgcCA9IG5ldyBQcm94eShbMCwxLDIsM10sIHsgZ2V0OiBmdW5jdGlvbihvLCBrKSB7IGdldC5w
dXNoKGspOyByZXR1cm4gb1trXTsgfX0pOworQXJyYXkucHJvdG90eXBlLnBvcC5jYWxsKHApOwor
cmV0dXJuIGdldCArICcnID09PSAibGVuZ3RoLDMiOworICAgICAgCit9CisKK2lmICghdGVzdCgp
KQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfQXJyYXkucHJv
dG90eXBlLnJldmVyc2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLnJldmVyc2Uu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5
X2ludGVybmFsX2dldF9jYWxsc19BcnJheS5wcm90b3R5cGUucmV2ZXJzZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisvLyBBcnJheS5wcm90
b3R5cGUucmV2ZXJzZSAtPiBHZXQgLT4gW1tHZXRdXQordmFyIGdldCA9IFtdOwordmFyIHAgPSBu
ZXcgUHJveHkoWzAsLDIsLDQsLF0sIHsgZ2V0OiBmdW5jdGlvbihvLCBrKSB7IGdldC5wdXNoKGsp
OyByZXR1cm4gb1trXTsgfX0pOworQXJyYXkucHJvdG90eXBlLnJldmVyc2UuY2FsbChwKTsKK3Jl
dHVybiBnZXQgKyAnJyA9PT0gImxlbmd0aCwwLDQsMiI7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19BcnJheS5w
cm90b3R5cGUuc2hpZnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLnNoaWZ0Lmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9p
bnRlcm5hbF9nZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLnNoaWZ0LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIEFycmF5LnByb3RvdHlw
ZS5zaGlmdCAtPiBHZXQgLT4gW1tHZXRdXQordmFyIGdldCA9IFtdOwordmFyIHAgPSBuZXcgUHJv
eHkoWzAsMSwyLDNdLCB7IGdldDogZnVuY3Rpb24obywgaykgeyBnZXQucHVzaChrKTsgcmV0dXJu
IG9ba107IH19KTsKK0FycmF5LnByb3RvdHlwZS5zaGlmdC5jYWxsKHApOworcmV0dXJuIGdldCAr
ICcnID09PSAibGVuZ3RoLDAsMSwyLDMiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfQXJyYXkucHJvdG90eXBl
LnNwbGljZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19BcnJheS5wcm90b3R5cGUuc3BsaWNlLmpzCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5h
bF9nZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLnNwbGljZS5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDE0IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisvLyBBcnJheS5wcm90b3R5cGUuc3Bs
aWNlIC0+IEdldCAtPiBbW0dldF1dCit2YXIgZ2V0ID0gW107Cit2YXIgcCA9IG5ldyBQcm94eShb
MCwxLDIsM10sIHsgZ2V0OiBmdW5jdGlvbihvLCBrKSB7IGdldC5wdXNoKGspOyByZXR1cm4gb1tr
XTsgfX0pOworQXJyYXkucHJvdG90eXBlLnNwbGljZS5jYWxsKHAsMSwxKTsKK0FycmF5LnByb3Rv
dHlwZS5zcGxpY2UuY2FsbChwLDEsMCwxKTsKK3JldHVybiBnZXQgKyAnJyA9PT0gImxlbmd0aCxj
b25zdHJ1Y3RvciwxLDIsMyxsZW5ndGgsY29uc3RydWN0b3IsMiwxIjsKKyAgICAgIAorfQorCitp
ZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxz
X0FycmF5LnByb3RvdHlwZS50b1N0cmluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19BcnJheS5wcm90b3R5
cGUudG9TdHJpbmcuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19BcnJheS5wcm90b3R5cGUudG9TdHJpbmcu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwor
Ly8gQXJyYXkucHJvdG90eXBlLnRvU3RyaW5nIC0+IEdldCAtPiBbW0dldF1dCit2YXIgZ2V0ID0g
W107Cit2YXIgcCA9IG5ldyBQcm94eSh7IGpvaW46RnVuY3Rpb24oKSB9LCB7IGdldDogZnVuY3Rp
b24obywgaykgeyBnZXQucHVzaChrKTsgcmV0dXJuIG9ba107IH19KTsKK0FycmF5LnByb3RvdHlw
ZS50b1N0cmluZy5jYWxsKHApOworcmV0dXJuIGdldCArICcnID09PSAiam9pbiI7CisgICAgICAK
K30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOwor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dl
dF9jYWxsc19BcnJheS5wcm90b3R5cGVfaXRlcmF0aW9uX21ldGhvZHMuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2Fs
bHNfQXJyYXkucHJvdG90eXBlX2l0ZXJhdGlvbl9tZXRob2RzLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNf
QXJyYXkucHJvdG90eXBlX2l0ZXJhdGlvbl9tZXRob2RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMjYgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIEFycmF5LnByb3RvdHlwZSBtZXRo
b2RzIC0+IEdldCAtPiBbW0dldF1dCit2YXIgbWV0aG9kcyA9IFsnY29weVdpdGhpbicsICdldmVy
eScsICdmaWxsJywgJ2ZpbHRlcicsICdmaW5kJywgJ2ZpbmRJbmRleCcsICdmb3JFYWNoJywKKyAg
J2luZGV4T2YnLCAnam9pbicsICdsYXN0SW5kZXhPZicsICdtYXAnLCAncmVkdWNlJywgJ3JlZHVj
ZVJpZ2h0JywgJ3NvbWUnXTsKK3ZhciBnZXQ7Cit2YXIgcCA9IG5ldyBQcm94eSh7bGVuZ3RoOiAy
LCAwOiAnJywgMTogJyd9LCB7IGdldDogZnVuY3Rpb24obywgaykgeyBnZXQucHVzaChrKTsgcmV0
dXJuIG9ba107IH19KTsKK2Zvcih2YXIgaSA9IDA7IGkgPCBtZXRob2RzLmxlbmd0aDsgaSs9MSkg
eworICBnZXQgPSBbXTsKKyAgQXJyYXkucHJvdG90eXBlW21ldGhvZHNbaV1dLmNhbGwocCwgRnVu
Y3Rpb24oKSk7CisgIGlmIChnZXQgKyAnJyAhPT0gKAorICAgIG1ldGhvZHNbaV0gPT09ICdmaWxs
JyA/ICJsZW5ndGgiIDoKKyAgICBtZXRob2RzW2ldID09PSAnZXZlcnknID8gImxlbmd0aCwwIiA6
CisgICAgbWV0aG9kc1tpXSA9PT0gJ2xhc3RJbmRleE9mJyB8fCBtZXRob2RzW2ldID09PSAncmVk
dWNlUmlnaHQnID8gImxlbmd0aCwxLDAiIDoKKyAgICAibGVuZ3RoLDAsMSIKKyAgKSkgeworICAg
IHJldHVybiBmYWxzZTsKKyAgfQorfQorcmV0dXJuIHRydWU7CisgICAgICAKK30KKworaWYgKCF0
ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19DbGFz
c0RlZmluaXRpb25FdmFsdWF0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX0NsYXNzRGVmaW5pdGlvbkV2
YWx1YXRpb24uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19DbGFzc0RlZmluaXRpb25FdmFsdWF0aW9uLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8v
IENsYXNzRGVmaW5pdGlvbkV2YWx1YXRpb24gLT4gR2V0IC0+IFtbR2V0XV0KK3ZhciBnZXQgPSBb
XTsKK3ZhciBwID0gbmV3IFByb3h5KEZ1bmN0aW9uKCksIHsgZ2V0OiBmdW5jdGlvbihvLCBrKSB7
IGdldC5wdXNoKGspOyByZXR1cm4gb1trXTsgfX0pOworY2xhc3MgQyBleHRlbmRzIHAge30KK3Jl
dHVybiBnZXQgKyAnJyA9PT0gInByb3RvdHlwZSI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkp
CisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19DcmVhdGVEeW5h
bWljRnVuY3Rpb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfQ3JlYXRlRHluYW1pY0Z1bmN0aW9uLmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRl
cm5hbF9nZXRfY2FsbHNfQ3JlYXRlRHluYW1pY0Z1bmN0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIENyZWF0ZUR5bmFtaWNGdW5j
dGlvbiAtPiBHZXRQcm90b3R5cGVGcm9tQ29uc3RydWN0b3IgLT4gR2V0IC0+IFtbR2V0XV0KK3Zh
ciBnZXQgPSBbXTsKK3ZhciBwID0gbmV3IFByb3h5KEZ1bmN0aW9uLCB7IGdldDogZnVuY3Rpb24o
bywgaykgeyBnZXQucHVzaChrKTsgcmV0dXJuIG9ba107IH19KTsKK25ldyBwOworcmV0dXJuIGdl
dCArICcnID09PSAicHJvdG90eXBlIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0
aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX0NyZWF0ZUxpc3RGcm9tQXJy
YXlMaWtlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
UHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX0NyZWF0ZUxpc3RGcm9tQXJyYXlMaWtlLmpzCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5h
bF9nZXRfY2FsbHNfQ3JlYXRlTGlzdEZyb21BcnJheUxpa2UuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8gQ3JlYXRlTGlzdEZyb21BcnJh
eUxpa2UgLT4gR2V0IC0+IFtbR2V0XV0KK3ZhciBnZXQgPSBbXTsKK3ZhciBwID0gbmV3IFByb3h5
KHtsZW5ndGg6MiwgMDowLCAxOjB9LCB7IGdldDogZnVuY3Rpb24obywgaykgeyBnZXQucHVzaChr
KTsgcmV0dXJuIG9ba107IH19KTsKK0Z1bmN0aW9uLnByb3RvdHlwZS5hcHBseSh7fSwgcCk7City
ZXR1cm4gZ2V0ICsgJycgPT09ICJsZW5ndGgsMCwxIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX0RhdGUucHJv
dG90eXBlLnRvSlNPTi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19EYXRlLnByb3RvdHlwZS50b0pTT04uanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2lu
dGVybmFsX2dldF9jYWxsc19EYXRlLnByb3RvdHlwZS50b0pTT04uanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxNCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8gRGF0ZS5wcm90b3R5cGUu
dG9KU09OIC0+IFRvUHJpbWl0aXZlIC0+IEdldCAtPiBbW0dldF1dCisvLyBEYXRlLnByb3RvdHlw
ZS50b0pTT04gLT4gSW52b2tlIC0+IEdldE1ldGhvZCAtPiBHZXRWIC0+IFtbR2V0XV0KK3ZhciBn
ZXQgPSBbXTsKK3ZhciBwID0gbmV3IFByb3h5KHt0b1N0cmluZzpGdW5jdGlvbigpLHRvSVNPU3Ry
aW5nOkZ1bmN0aW9uKCl9LCB7IGdldDogZnVuY3Rpb24obywgaykgeyBnZXQucHVzaChrKTsgcmV0
dXJuIG9ba107IH19KTsKK0RhdGUucHJvdG90eXBlLnRvSlNPTi5jYWxsKHApOworcmV0dXJuIGdl
dFswXSA9PT0gU3ltYm9sLnRvUHJpbWl0aXZlICYmIGdldC5zbGljZSgxKSArICcnID09PSAidmFs
dWVPZix0b1N0cmluZyx0b0lTT1N0cmluZyI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisg
ICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19FcnJvci5wcm90b3R5
cGUudG9TdHJpbmcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9p
bnRlcm5hbF9nZXRfY2FsbHNfRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIEVycm9yLnByb3Rv
dHlwZS50b1N0cmluZyAtPiBHZXQgLT4gW1tHZXRdXQordmFyIGdldCA9IFtdOwordmFyIHAgPSBu
ZXcgUHJveHkoe30sIHsgZ2V0OiBmdW5jdGlvbihvLCBrKSB7IGdldC5wdXNoKGspOyByZXR1cm4g
b1trXTsgfX0pOworRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocCk7CityZXR1cm4gZ2V0
ICsgJycgPT09ICJuYW1lLG1lc3NhZ2UiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfRnVuY3Rpb24ucHJvdG90
eXBlLmJpbmQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVy
bmFsX2dldF9jYWxsc19GdW5jdGlvbi5wcm90b3R5cGUuYmluZC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisvLyBGdW5jdGlvbi5wcm90b3R5
cGUuYmluZCAtPiBHZXQgLT4gW1tHZXRdXQordmFyIGdldCA9IFtdOwordmFyIHAgPSBuZXcgUHJv
eHkoRnVuY3Rpb24oKSwgeyBnZXQ6IGZ1bmN0aW9uKG8sIGspIHsgZ2V0LnB1c2goayk7IHJldHVy
biBvW2tdOyB9fSk7CitGdW5jdGlvbi5wcm90b3R5cGUuYmluZC5jYWxsKHApOworcmV0dXJuIGdl
dCArICcnID09PSAibGVuZ3RoLG5hbWUiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfSGFzQmluZGluZy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVy
bmFsX2dldF9jYWxsc19IYXNCaW5kaW5nLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfSGFzQmluZGluZy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisv
LyBIYXNCaW5kaW5nIC0+IEdldCAtPiBbW0dldF1dCit2YXIgZ2V0ID0gW107Cit2YXIgcCA9IG5l
dyBQcm94eSh7Zm9vOjF9LCB7IGdldDogZnVuY3Rpb24obywgaykgeyBnZXQucHVzaChrKTsgcmV0
dXJuIG9ba107IH19KTsKK3BbU3ltYm9sLnVuc2NvcGFibGVzXSA9IHA7Cit3aXRoKHApIHsKKyAg
dHlwZW9mIGZvbzsKK30KK3JldHVybiBnZXRbMF0gPT09IFN5bWJvbC51bnNjb3BhYmxlcyAmJiBn
ZXQuc2xpY2UoMSkgKyAnJyA9PT0gImZvbyI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisg
ICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19JdGVyYXRvckNvbXBs
ZXRlX0l0ZXJhdG9yVmFsdWUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfSXRlcmF0b3JDb21wbGV0ZV9JdGVy
YXRvclZhbHVlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfSXRlcmF0b3JDb21wbGV0ZV9JdGVyYXRvclZh
bHVlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7
CisKKy8vIEl0ZXJhdG9yQ29tcGxldGUgLT4gR2V0IC0+IFtbR2V0XV0KKy8vIEl0ZXJhdG9yVmFs
dWUgLT4gR2V0IC0+IFtbR2V0XV0KK3ZhciBnZXQgPSBbXTsKK3ZhciBpdGVyYWJsZSA9IHt9Owor
aXRlcmFibGVbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgeworICByZXR1cm4geworICAg
IG5leHQ6IGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIG5ldyBQcm94eSh7IHZhbHVlOiAyLCBk
b25lOiBmYWxzZSB9LCB7IGdldDogZnVuY3Rpb24obywgaykgeyBnZXQucHVzaChrKTsgcmV0dXJu
IG9ba107IH19KTsKKyAgICB9CisgIH07Cit9Cit2YXIgaSA9IDA7Citmb3IodmFyIGUgb2YgaXRl
cmFibGUpIHsKKyAgaWYgKCsraSA+PSAyKSBicmVhazsKK30KK3JldHVybiBnZXQgKyAnJyA9PT0g
ImRvbmUsdmFsdWUsZG9uZSx2YWx1ZSI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19KU09OLnN0cmluZ2lmeS5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2lu
dGVybmFsX2dldF9jYWxsc19KU09OLnN0cmluZ2lmeS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX0pTT04u
c3RyaW5naWZ5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRl
c3QoKSB7CisKKy8vIEpTT04uc3RyaW5naWZ5IC0+IEdldCAtPiBbW0dldF1dCit2YXIgZ2V0ID0g
W107Cit2YXIgcCA9IG5ldyBQcm94eSh7fSwgeyBnZXQ6IGZ1bmN0aW9uKG8sIGspIHsgZ2V0LnB1
c2goayk7IHJldHVybiBvW2tdOyB9fSk7CitKU09OLnN0cmluZ2lmeShwKTsKK3JldHVybiBnZXQg
KyAnJyA9PT0gInRvSlNPTiI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cg
bmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19PYmplY3QuYXNzaWduLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxf
Z2V0X2NhbGxzX09iamVjdC5hc3NpZ24uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19PYmplY3QuYXNzaWdu
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisK
Ky8vIE9iamVjdC5hc3NpZ24gLT4gR2V0IC0+IFtbR2V0XV0KK3ZhciBnZXQgPSBbXTsKK3ZhciBw
ID0gbmV3IFByb3h5KHtmb286MSwgYmFyOjJ9LCB7IGdldDogZnVuY3Rpb24obywgaykgeyBnZXQu
cHVzaChrKTsgcmV0dXJuIG9ba107IH19KTsKK09iamVjdC5hc3NpZ24oe30sIHApOworcmV0dXJu
IGdldCArICcnID09PSAiZm9vLGJhciI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19PYmplY3QuZGVmaW5lUHJv
cGVydGllcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19PYmplY3QuZGVmaW5lUHJvcGVydGllcy5qcwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJu
YWxfZ2V0X2NhbGxzX09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0aWVzIC0+IEdldCAtPiBbW0dldF1dCit2YXIgZ2V0ID0gW107Cit2YXIgcCA9IG5ldyBQcm94
eSh7Zm9vOnt9LCBiYXI6e319LCB7IGdldDogZnVuY3Rpb24obywgaykgeyBnZXQucHVzaChrKTsg
cmV0dXJuIG9ba107IH19KTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHt9LCBwKTsKK3JldHVy
biBnZXQgKyAnJyA9PT0gImZvbyxiYXIiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfUHJvbWlzZV9yZXNvbHZl
X2Z1bmN0aW9ucy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19Qcm9taXNlX3Jlc29sdmVfZnVuY3Rpb25zLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9p
bnRlcm5hbF9nZXRfY2FsbHNfUHJvbWlzZV9yZXNvbHZlX2Z1bmN0aW9ucy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisvLyBQcm9taXNlIHJl
c29sdmUgZnVuY3Rpb25zIC0+IEdldCAtPiBbW0dldF1dCit2YXIgZ2V0ID0gW107Cit2YXIgcCA9
IG5ldyBQcm94eSh7fSwgeyBnZXQ6IGZ1bmN0aW9uKG8sIGspIHsgZ2V0LnB1c2goayk7IHJldHVy
biBvW2tdOyB9fSk7CituZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKXsgcmVzb2x2ZShwKTsg
fSk7CityZXR1cm4gZ2V0ICsgJycgPT09ICJ0aGVuIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX1JlZ0V4cC5w
cm90b3R5cGUuZmxhZ3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfUmVnRXhwLnByb3RvdHlwZS5mbGFncy5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlf
aW50ZXJuYWxfZ2V0X2NhbGxzX1JlZ0V4cC5wcm90b3R5cGUuZmxhZ3MuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8gUmVnRXhwLnByb3Rv
dHlwZS5mbGFncyAtPiBHZXQgLT4gW1tHZXRdXQordmFyIGdldCA9IFtdOwordmFyIHAgPSBuZXcg
UHJveHkoe30sIHsgZ2V0OiBmdW5jdGlvbihvLCBrKSB7IGdldC5wdXNoKGspOyByZXR1cm4gb1tr
XTsgfX0pOworT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihSZWdFeHAucHJvdG90eXBl
LCAnZmxhZ3MnKS5nZXQuY2FsbChwKTsKK3JldHVybiBnZXQgKyAnJyA9PT0gImdsb2JhbCxpZ25v
cmVDYXNlLG11bHRpbGluZSx1bmljb2RlLHN0aWNreSI7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19SZWdFeHAu
cHJvdG90eXBlLnRlc3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfUmVnRXhwLnByb3RvdHlwZS50ZXN0Lmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9p
bnRlcm5hbF9nZXRfY2FsbHNfUmVnRXhwLnByb3RvdHlwZS50ZXN0LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIFJlZ0V4cC5wcm90b3R5
cGUudGVzdCAtPiBSZWdFeHBFeGVjIC0+IEdldCAtPiBbW0dldF1dCit2YXIgZ2V0ID0gW107Cit2
YXIgcCA9IG5ldyBQcm94eSh7IGV4ZWM6IGZ1bmN0aW9uKCkgeyByZXR1cm4gbnVsbDsgfSB9LCB7
IGdldDogZnVuY3Rpb24obywgaykgeyBnZXQucHVzaChrKTsgcmV0dXJuIG9ba107IH19KTsKK1Jl
Z0V4cC5wcm90b3R5cGUudGVzdC5jYWxsKHApOworcmV0dXJuIGdldCArICcnID09PSAiZXhlYyI7
CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZh
aWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2lu
dGVybmFsX2dldF9jYWxsc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5tYXRjaF0uanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9n
ZXRfY2FsbHNfUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wubWF0Y2hdLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2Fs
bHNfUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wubWF0Y2hdLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTUgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIFJlZ0V4cC5wcm90b3R5cGVbU3lt
Ym9sLm1hdGNoXSAtPiBHZXQgLT4gW1tHZXRdXQordmFyIGdldCA9IFtdOwordmFyIHAgPSBuZXcg
UHJveHkoeyBleGVjOiBmdW5jdGlvbigpIHsgcmV0dXJuIG51bGw7IH0gfSwgeyBnZXQ6IGZ1bmN0
aW9uKG8sIGspIHsgZ2V0LnB1c2goayk7IHJldHVybiBvW2tdOyB9fSk7CitSZWdFeHAucHJvdG90
eXBlW1N5bWJvbC5tYXRjaF0uY2FsbChwKTsKK3AuZ2xvYmFsID0gdHJ1ZTsKK1JlZ0V4cC5wcm90
b3R5cGVbU3ltYm9sLm1hdGNoXS5jYWxsKHApOworcmV0dXJuIGdldCArICcnID09PSAiZ2xvYmFs
LGV4ZWMsZ2xvYmFsLHVuaWNvZGUsZXhlYyI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisg
ICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19SZWdFeHAucHJvdG90
eXBlW1N5bWJvbC5yZXBsYWNlXS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19SZWdFeHAucHJvdG90eXBlW1N5
bWJvbC5yZXBsYWNlXS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9s
LnJlcGxhY2VdLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIHRl
c3QoKSB7CisKKy8vIFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnJlcGxhY2VdIC0+IEdldCAtPiBb
W0dldF1dCit2YXIgZ2V0ID0gW107Cit2YXIgcCA9IG5ldyBQcm94eSh7IGV4ZWM6IGZ1bmN0aW9u
KCkgeyByZXR1cm4gbnVsbDsgfSB9LCB7IGdldDogZnVuY3Rpb24obywgaykgeyBnZXQucHVzaChr
KTsgcmV0dXJuIG9ba107IH19KTsKK1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnJlcGxhY2VdLmNh
bGwocCk7CitwLmdsb2JhbCA9IHRydWU7CitSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNl
XS5jYWxsKHApOworcmV0dXJuIGdldCArICcnID09PSAiZ2xvYmFsLGV4ZWMsZ2xvYmFsLHVuaWNv
ZGUsZXhlYyI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9y
KCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zZWFyY2hd
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlf
aW50ZXJuYWxfZ2V0X2NhbGxzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNlYXJjaF0uanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVy
bmFsX2dldF9jYWxsc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zZWFyY2hdLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIFJlZ0V4cC5w
cm90b3R5cGVbU3ltYm9sLnNlYXJjaF0gLT4gR2V0IC0+IFtbR2V0XV0KK3ZhciBnZXQgPSBbXTsK
K3ZhciBwID0gbmV3IFByb3h5KHsgZXhlYzogZnVuY3Rpb24oKSB7IHJldHVybiBudWxsOyB9IH0s
IHsgZ2V0OiBmdW5jdGlvbihvLCBrKSB7IGdldC5wdXNoKGspOyByZXR1cm4gb1trXTsgfX0pOwor
UmVnRXhwLnByb3RvdHlwZVtTeW1ib2wuc2VhcmNoXS5jYWxsKHApOworcmV0dXJuIGdldCArICcn
ID09PSAibGFzdEluZGV4LGV4ZWMiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRo
cm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfUmVnRXhwLnByb3RvdHlwZVtT
eW1ib2wuc3BsaXRdLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNw
bGl0XS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
UHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNwbGl0XS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisv
LyBSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zcGxpdF0gLT4gR2V0IC0+IFtbR2V0XV0KK3ZhciBn
ZXQgPSBbXTsKK3ZhciBjb25zdHJ1Y3RvciA9IEZ1bmN0aW9uKCk7Citjb25zdHJ1Y3RvcltTeW1i
b2wuc3BlY2llc10gPSBPYmplY3Q7Cit2YXIgcCA9IG5ldyBQcm94eSh7IGNvbnN0cnVjdG9yOiBj
b25zdHJ1Y3RvciwgZmxhZ3M6ICcnLCBleGVjOiBmdW5jdGlvbigpIHsgcmV0dXJuIG51bGw7IH0g
fSwgeyBnZXQ6IGZ1bmN0aW9uKG8sIGspIHsgZ2V0LnB1c2goayk7IHJldHVybiBvW2tdOyB9fSk7
CitSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zcGxpdF0uY2FsbChwLCAiIik7CityZXR1cm4gZ2V0
ICsgJycgPT09ICJjb25zdHJ1Y3RvcixmbGFncyxleGVjIjsKKyAgICAgIAorfQorCitpZiAoIXRl
c3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX1JlZ0V4
cF9jb25zdHJ1Y3Rvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19SZWdFeHBfY29uc3RydWN0b3IuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVy
bmFsX2dldF9jYWxsc19SZWdFeHBfY29uc3RydWN0b3IuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxNSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8gUmVnRXhwIC0+IEdldCAtPiBbW0dl
dF1dCit2YXIgZ2V0ID0gW107Cit2YXIgcmUgPSB7IGNvbnN0cnVjdG9yOiBudWxsIH07CityZVtT
eW1ib2wubWF0Y2hdID0gdHJ1ZTsKK3ZhciBwID0gbmV3IFByb3h5KHJlLCB7IGdldDogZnVuY3Rp
b24obywgaykgeyBnZXQucHVzaChrKTsgcmV0dXJuIG9ba107IH19KTsKK1JlZ0V4cChwKTsKK3Jl
dHVybiBnZXRbMF0gPT09IFN5bWJvbC5tYXRjaCAmJiBnZXQuc2xpY2UoMSkgKyAnJyA9PT0gImNv
bnN0cnVjdG9yLHNvdXJjZSxmbGFncyI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19TdHJpbmcucHJvdG90eXBl
Lm1hdGNoLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
UHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX1N0cmluZy5wcm90b3R5cGUubWF0Y2guanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFs
X2dldF9jYWxsc19TdHJpbmcucHJvdG90eXBlLm1hdGNoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTUgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIFN0cmluZy5wcm90b3R5cGUubWF0
Y2ggLT4gR2V0IC0+IFtbR2V0XV0KK3ZhciBnZXQgPSBbXTsKK3ZhciBwcm94aWVkID0ge307Citw
cm94aWVkW1N5bWJvbC50b1ByaW1pdGl2ZV0gPSBGdW5jdGlvbigpOwordmFyIHAgPSBuZXcgUHJv
eHkocHJveGllZCwgeyBnZXQ6IGZ1bmN0aW9uKG8sIGspIHsgZ2V0LnB1c2goayk7IHJldHVybiBv
W2tdOyB9fSk7CisiIi5tYXRjaChwKTsKK3JldHVybiBnZXRbMF0gPT09IFN5bWJvbC5tYXRjaCAm
JiBnZXRbMV0gPT09IFN5bWJvbC50b1ByaW1pdGl2ZSAmJiBnZXQubGVuZ3RoID09PSAyOworICAg
ICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQi
KTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5h
bF9nZXRfY2FsbHNfU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX1N0
cmluZy5wcm90b3R5cGUucmVwbGFjZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX1N0cmluZy5wcm90b3R5
cGUucmVwbGFjZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCisvLyBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UgZnVuY3Rpb25zIC0+IEdldCAt
PiBbW0dldF1dCit2YXIgZ2V0ID0gW107Cit2YXIgcHJveGllZCA9IHt9OworcHJveGllZFtTeW1i
b2wudG9QcmltaXRpdmVdID0gRnVuY3Rpb24oKTsKK3ZhciBwID0gbmV3IFByb3h5KHByb3hpZWQs
IHsgZ2V0OiBmdW5jdGlvbihvLCBrKSB7IGdldC5wdXNoKGspOyByZXR1cm4gb1trXTsgfX0pOwor
IiIucmVwbGFjZShwKTsKK3JldHVybiBnZXRbMF0gPT09IFN5bWJvbC5yZXBsYWNlICYmIGdldFsx
XSA9PT0gU3ltYm9sLnRvUHJpbWl0aXZlICYmIGdldC5sZW5ndGggPT09IDI7CisgICAgICAKK30K
KworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9j
YWxsc19TdHJpbmcucHJvdG90eXBlLnNlYXJjaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19TdHJpbmcucHJv
dG90eXBlLnNlYXJjaC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX1N0cmluZy5wcm90b3R5cGUuc2VhcmNo
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisK
Ky8vIFN0cmluZy5wcm90b3R5cGUuc2VhcmNoIGZ1bmN0aW9ucyAtPiBHZXQgLT4gW1tHZXRdXQor
dmFyIGdldCA9IFtdOwordmFyIHByb3hpZWQgPSB7fTsKK3Byb3hpZWRbU3ltYm9sLnRvUHJpbWl0
aXZlXSA9IEZ1bmN0aW9uKCk7Cit2YXIgcCA9IG5ldyBQcm94eShwcm94aWVkLCB7IGdldDogZnVu
Y3Rpb24obywgaykgeyBnZXQucHVzaChrKTsgcmV0dXJuIG9ba107IH19KTsKKyIiLnNlYXJjaChw
KTsKK3JldHVybiBnZXRbMF0gPT09IFN5bWJvbC5zZWFyY2ggJiYgZ2V0WzFdID09PSBTeW1ib2wu
dG9QcmltaXRpdmUgJiYgZ2V0Lmxlbmd0aCA9PT0gMjsKKyAgICAgIAorfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxzX1N0cmluZy5w
cm90b3R5cGUuc3BsaXQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfU3RyaW5nLnByb3RvdHlwZS5zcGxpdC5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlf
aW50ZXJuYWxfZ2V0X2NhbGxzX1N0cmluZy5wcm90b3R5cGUuc3BsaXQuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8gU3RyaW5nLnByb3Rv
dHlwZS5zcGxpdCBmdW5jdGlvbnMgLT4gR2V0IC0+IFtbR2V0XV0KK3ZhciBnZXQgPSBbXTsKK3Zh
ciBwcm94aWVkID0ge307Citwcm94aWVkW1N5bWJvbC50b1ByaW1pdGl2ZV0gPSBGdW5jdGlvbigp
OwordmFyIHAgPSBuZXcgUHJveHkocHJveGllZCwgeyBnZXQ6IGZ1bmN0aW9uKG8sIGspIHsgZ2V0
LnB1c2goayk7IHJldHVybiBvW2tdOyB9fSk7CisiIi5zcGxpdChwKTsKK3JldHVybiBnZXRbMF0g
PT09IFN5bWJvbC5zcGxpdCAmJiBnZXRbMV0gPT09IFN5bWJvbC50b1ByaW1pdGl2ZSAmJiBnZXQu
bGVuZ3RoID09PSAyOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBF
cnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfU3RyaW5nLnJhdy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxs
c19TdHJpbmcucmF3LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfU3RyaW5nLnJhdy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisvLyBTdHJpbmcucmF3
IC0+IEdldCAtPiBbW0dldF1dCit2YXIgZ2V0ID0gW107Cit2YXIgcmF3ID0gbmV3IFByb3h5KHts
ZW5ndGg6IDIsIDA6ICcnLCAxOiAnJ30sIHsgZ2V0OiBmdW5jdGlvbihvLCBrKSB7IGdldC5wdXNo
KGspOyByZXR1cm4gb1trXTsgfX0pOwordmFyIHAgPSBuZXcgUHJveHkoe3JhdzogcmF3fSwgeyBn
ZXQ6IGZ1bmN0aW9uKG8sIGspIHsgZ2V0LnB1c2goayk7IHJldHVybiBvW2tdOyB9fSk7CitTdHJp
bmcucmF3KHApOworcmV0dXJuIGdldCArICcnID09PSAicmF3LGxlbmd0aCwwLDEiOworICAgICAg
Cit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9n
ZXRfY2FsbHNfVG9QcmltaXRpdmUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfVG9QcmltaXRpdmUuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVy
bmFsX2dldF9jYWxsc19Ub1ByaW1pdGl2ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEz
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisvLyBUb1ByaW1pdGl2ZSAtPiBHZXQgLT4gW1tHZXRd
XQordmFyIGdldCA9IFtdOwordmFyIHAgPSBuZXcgUHJveHkoe3RvU3RyaW5nOkZ1bmN0aW9uKCl9
LCB7IGdldDogZnVuY3Rpb24obywgaykgeyBnZXQucHVzaChrKTsgcmV0dXJuIG9ba107IH19KTsK
K3AgKyAzOworcmV0dXJuIGdldFswXSA9PT0gU3ltYm9sLnRvUHJpbWl0aXZlICYmIGdldC5zbGlj
ZSgxKSArICcnID09PSAidmFsdWVPZix0b1N0cmluZyI7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19Ub1Byb3Bl
cnR5RGVzY3JpcHRvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L1Byb3h5X2ludGVybmFsX2dldF9jYWxsc19Ub1Byb3BlcnR5RGVzY3JpcHRvci5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50
ZXJuYWxfZ2V0X2NhbGxzX1RvUHJvcGVydHlEZXNjcmlwdG9yLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMjEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIFRvUHJvcGVydHlEZXNjcmlw
dG9yIC0+IEdldCAtPiBbW0dldF1dCit2YXIgZ2V0ID0gW107Cit2YXIgcCA9IG5ldyBQcm94eSh7
CisgICAgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogdHJ1ZSwK
KyAgICB3cml0YWJsZTogdHJ1ZSwgZ2V0OiBGdW5jdGlvbigpLCBzZXQ6IEZ1bmN0aW9uKCkKKyAg
fSwgeyBnZXQ6IGZ1bmN0aW9uKG8sIGspIHsgZ2V0LnB1c2goayk7IHJldHVybiBvW2tdOyB9fSk7
Cit0cnkgeworICAvLyBUaGlzIHdpbGwgdGhyb3csIHNpbmNlIGl0IHdpbGwgaGF2ZSB0cnVlIGZv
ciBib3RoICJnZXQiIGFuZCAidmFsdWUiLAorICAvLyBidXQgbm90IGJlZm9yZSBwZXJmb3JtaW5n
IGEgR2V0IG9uIGV2ZXJ5IHByb3BlcnR5LgorICBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICJm
b28iLCBwKTsKK30gY2F0Y2goZSkgeworICByZXR1cm4gZ2V0ICsgJycgPT09ICJlbnVtZXJhYmxl
LGNvbmZpZ3VyYWJsZSx2YWx1ZSx3cml0YWJsZSxnZXQsc2V0IjsKK30KKyAgICAgIAorfQorCitp
ZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfZ2V0X2NhbGxz
X2luc3RhbmNlb2Zfb3BlcmF0b3IuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9nZXRfY2FsbHNfaW5zdGFuY2VvZl9vcGVyYXRv
ci5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJv
eHlfaW50ZXJuYWxfZ2V0X2NhbGxzX2luc3RhbmNlb2Zfb3BlcmF0b3IuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxNCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8gSW5zdGFuY2VvZk9w
ZXJhdG9yIC0+IEdldE1ldGhvZCAtPiBHZXRWIC0+IFtbR2V0XV0KKy8vIEluc3RhbmNlb2ZPcGVy
YXRvciAtPiBPcmRpbmFyeUhhc0luc3RhbmNlIC0+IEdldCAtPiBbW0dldF1dCit2YXIgZ2V0ID0g
W107Cit2YXIgcCA9IG5ldyBQcm94eShGdW5jdGlvbigpLCB7IGdldDogZnVuY3Rpb24obywgaykg
eyBnZXQucHVzaChrKTsgcmV0dXJuIG9ba107IH19KTsKKyh7fSkgaW5zdGFuY2VvZiBwOworcmV0
dXJuIGdldFswXSA9PT0gU3ltYm9sLmhhc0luc3RhbmNlICYmIGdldC5zbGljZSgxKSArICcnID09
PSAicHJvdG90eXBlIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcg
RXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvUHJveHlfaW50ZXJuYWxfb3duS2V5c19jYWxsc19TZXJpYWxpemVKU09OT2JqZWN0Lmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50
ZXJuYWxfb3duS2V5c19jYWxsc19TZXJpYWxpemVKU09OT2JqZWN0LmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9vd25LZXlz
X2NhbGxzX1NlcmlhbGl6ZUpTT05PYmplY3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8gU2VyaWFsaXplSlNPTk9iamVjdCAtPiBFbnVt
ZXJhYmxlT3duTmFtZXMgLT4gW1tPd25Qcm9wZXJ0eUtleXNdXQordmFyIG93bktleXNDYWxsZWQg
PSAwOwordmFyIHAgPSBuZXcgUHJveHkoe30sIHsgb3duS2V5czogZnVuY3Rpb24obykgeyBvd25L
ZXlzQ2FsbGVkKys7IHJldHVybiBPYmplY3Qua2V5cyhvKTsgfX0pOworSlNPTi5zdHJpbmdpZnko
e2E6cCxiOnB9KTsKK3JldHVybiBvd25LZXlzQ2FsbGVkID09PSAyOworICAgICAgCit9CisKK2lm
ICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9vd25LZXlzX2Nh
bGxzX1NldEludGVncml0eUxldmVsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfb3duS2V5c19jYWxsc19TZXRJbnRlZ3JpdHlM
ZXZlbC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
UHJveHlfaW50ZXJuYWxfb3duS2V5c19jYWxsc19TZXRJbnRlZ3JpdHlMZXZlbC5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisvLyBTZXRJbnRl
Z3JpdHlMZXZlbCAtPiBbW093blByb3BlcnR5S2V5c11dCit2YXIgb3duS2V5c0NhbGxlZCA9IDA7
Cit2YXIgcCA9IG5ldyBQcm94eSh7fSwgeyBvd25LZXlzOiBmdW5jdGlvbihvKSB7IG93bktleXND
YWxsZWQrKzsgcmV0dXJuIE9iamVjdC5rZXlzKG8pOyB9fSk7CitPYmplY3QuZnJlZXplKHApOwor
cmV0dXJuIG93bktleXNDYWxsZWQgPT09IDE7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisg
ICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX293bktleXNfY2FsbHNfVGVzdEludGVn
cml0eUxldmVsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvUHJveHlfaW50ZXJuYWxfb3duS2V5c19jYWxsc19UZXN0SW50ZWdyaXR5TGV2ZWwuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVy
bmFsX293bktleXNfY2FsbHNfVGVzdEludGVncml0eUxldmVsLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIFRlc3RJbnRlZ3JpdHlMZXZl
bCAtPiBbW093blByb3BlcnR5S2V5c11dCit2YXIgb3duS2V5c0NhbGxlZCA9IDA7Cit2YXIgcCA9
IG5ldyBQcm94eShPYmplY3QucHJldmVudEV4dGVuc2lvbnMoe30pLCB7IG93bktleXM6IGZ1bmN0
aW9uKG8pIHsgb3duS2V5c0NhbGxlZCsrOyByZXR1cm4gT2JqZWN0LmtleXMobyk7IH19KTsKK09i
amVjdC5pc0Zyb3plbihwKTsKK3JldHVybiBvd25LZXlzQ2FsbGVkID09PSAxOworICAgICAgCit9
CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9zZXRf
Y2FsbHNfQXJyYXkuZnJvbS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX3NldF9jYWxsc19BcnJheS5mcm9tLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9z
ZXRfY2FsbHNfQXJyYXkuZnJvbS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitm
dW5jdGlvbiB0ZXN0KCkgeworCisvLyBBcnJheS5mcm9tIC0+IFNldCAtPiBbW1NldF1dCit2YXIg
c2V0ID0gW107Cit2YXIgcCA9IG5ldyBQcm94eSh7fSwgeyBzZXQ6IGZ1bmN0aW9uKG8sIGssIHYp
IHsgc2V0LnB1c2goayk7IG9ba10gPSB2OyByZXR1cm4gdHJ1ZTsgfX0pOworQXJyYXkuZnJvbS5j
YWxsKGZ1bmN0aW9uKCl7IHJldHVybiBwOyB9LCB7bGVuZ3RoOjIsIDA6MSwgMToyfSk7CityZXR1
cm4gc2V0ICsgJycgPT09ICJsZW5ndGgiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9zZXRfY2FsbHNfQXJyYXkub2YuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5h
bF9zZXRfY2FsbHNfQXJyYXkub2YuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX3NldF9jYWxsc19BcnJheS5vZi5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisvLyBBcnJh
eS5mcm9tIC0+IFNldCAtPiBbW1NldF1dCit2YXIgc2V0ID0gW107Cit2YXIgcCA9IG5ldyBQcm94
eSh7fSwgeyBzZXQ6IGZ1bmN0aW9uKG8sIGssIHYpIHsgc2V0LnB1c2goayk7IG9ba10gPSB2OyBy
ZXR1cm4gdHJ1ZTsgfX0pOworQXJyYXkub2YuY2FsbChmdW5jdGlvbigpeyByZXR1cm4gcDsgfSwg
MSwgMiwgMyk7CityZXR1cm4gc2V0ICsgJycgPT09ICJsZW5ndGgiOworICAgICAgCit9CisKK2lm
ICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9zZXRfY2FsbHNf
QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9zZXRfY2FsbHNfQXJyYXkucHJvdG90
eXBlLmNvcHlXaXRoaW4uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX3NldF9jYWxsc19BcnJheS5wcm90b3R5cGUuY29weVdp
dGhpbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0ZXN0KCkg
eworCisvLyBBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiAtPiBTZXQgLT4gW1tTZXRdXQordmFy
IHNldCA9IFtdOwordmFyIHAgPSBuZXcgUHJveHkoWzEsMiwzLDQsNSw2XSwgeyBzZXQ6IGZ1bmN0
aW9uKG8sIGssIHYpIHsgc2V0LnB1c2goayk7IG9ba10gPSB2OyByZXR1cm4gdHJ1ZTsgfX0pOwor
cC5jb3B5V2l0aGluKDAsIDMpOworcmV0dXJuIHNldCArICcnID09PSAiMCwxLDIiOworICAgICAg
Cit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9z
ZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLmZpbGwuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9zZXRfY2FsbHNfQXJyYXkucHJv
dG90eXBlLmZpbGwuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L1Byb3h5X2ludGVybmFsX3NldF9jYWxsc19BcnJheS5wcm90b3R5cGUuZmlsbC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisvLyBB
cnJheS5wcm90b3R5cGUuZmlsbCAtPiBTZXQgLT4gW1tTZXRdXQordmFyIHNldCA9IFtdOwordmFy
IHAgPSBuZXcgUHJveHkoWzEsMiwzLDQsNSw2XSwgeyBzZXQ6IGZ1bmN0aW9uKG8sIGssIHYpIHsg
c2V0LnB1c2goayk7IG9ba10gPSB2OyByZXR1cm4gdHJ1ZTsgfX0pOworcC5maWxsKDAsIDMpOwor
cmV0dXJuIHNldCArICcnID09PSAiMyw0LDUiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQor
ICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9zZXRfY2FsbHNfQXJyYXkucHJvdG90
eXBlLnBvcC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L1Byb3h5X2ludGVybmFsX3NldF9jYWxsc19BcnJheS5wcm90b3R5cGUucG9wLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9z
ZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLnBvcC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDEzIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisvLyBBcnJheS5wcm90b3R5cGUucG9wIC0+IFNl
dCAtPiBbW1NldF1dCit2YXIgc2V0ID0gW107Cit2YXIgcCA9IG5ldyBQcm94eShbXSwgeyBzZXQ6
IGZ1bmN0aW9uKG8sIGssIHYpIHsgc2V0LnB1c2goayk7IG9ba10gPSB2OyByZXR1cm4gdHJ1ZTsg
fX0pOworcC5wb3AoKTsKK3JldHVybiBzZXQgKyAnJyA9PT0gImxlbmd0aCI7CisgICAgICAKK30K
KworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX3NldF9j
YWxsc19BcnJheS5wcm90b3R5cGUucHVzaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX3NldF9jYWxsc19BcnJheS5wcm90b3R5
cGUucHVzaC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvUHJveHlfaW50ZXJuYWxfc2V0X2NhbGxzX0FycmF5LnByb3RvdHlwZS5wdXNoLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIEFycmF5
LnByb3RvdHlwZS5wdXNoIC0+IFNldCAtPiBbW1NldF1dCit2YXIgc2V0ID0gW107Cit2YXIgcCA9
IG5ldyBQcm94eShbXSwgeyBzZXQ6IGZ1bmN0aW9uKG8sIGssIHYpIHsgc2V0LnB1c2goayk7IG9b
a10gPSB2OyByZXR1cm4gdHJ1ZTsgfX0pOworcC5wdXNoKDAsMCwwKTsKK3JldHVybiBzZXQgKyAn
JyA9PT0gIjAsMSwyLGxlbmd0aCI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhy
b3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L1Byb3h5X2ludGVybmFsX3NldF9jYWxsc19BcnJheS5wcm90b3R5cGUucmV2
ZXJzZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1By
b3h5X2ludGVybmFsX3NldF9jYWxsc19BcnJheS5wcm90b3R5cGUucmV2ZXJzZS5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxf
c2V0X2NhbGxzX0FycmF5LnByb3RvdHlwZS5yZXZlcnNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8vIEFycmF5LnByb3RvdHlwZS5yZXZl
cnNlIC0+IFNldCAtPiBbW1NldF1dCit2YXIgc2V0ID0gW107Cit2YXIgcCA9IG5ldyBQcm94eShb
MCwwLDAsLF0sIHsgc2V0OiBmdW5jdGlvbihvLCBrLCB2KSB7IHNldC5wdXNoKGspOyBvW2tdID0g
djsgcmV0dXJuIHRydWU7IH19KTsKK3AucmV2ZXJzZSgpOworcmV0dXJuIHNldCArICcnID09PSAi
MywxLDIiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigi
VGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Q
cm94eV9pbnRlcm5hbF9zZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLnNoaWZ0LmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfc2V0
X2NhbGxzX0FycmF5LnByb3RvdHlwZS5zaGlmdC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfc2V0X2NhbGxzX0FycmF5LnBy
b3RvdHlwZS5zaGlmdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlv
biB0ZXN0KCkgeworCisvLyBBcnJheS5wcm90b3R5cGUuc2hpZnQgLT4gU2V0IC0+IFtbU2V0XV0K
K3ZhciBzZXQgPSBbXTsKK3ZhciBwID0gbmV3IFByb3h5KFswLDAsLDBdLCB7IHNldDogZnVuY3Rp
b24obywgaywgdikgeyBzZXQucHVzaChrKTsgb1trXSA9IHY7IHJldHVybiB0cnVlOyB9fSk7Citw
LnNoaWZ0KCk7CityZXR1cm4gc2V0ICsgJycgPT09ICIwLDIsbGVuZ3RoIjsKKyAgICAgIAorfQor
CitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfc2V0X2Nh
bGxzX0FycmF5LnByb3RvdHlwZS5zcGxpY2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9zZXRfY2FsbHNfQXJyYXkucHJvdG90
eXBlLnNwbGljZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvUHJveHlfaW50ZXJuYWxfc2V0X2NhbGxzX0FycmF5LnByb3RvdHlwZS5zcGxpY2UuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8g
QXJyYXkucHJvdG90eXBlLnNwbGljZSAtPiBTZXQgLT4gW1tTZXRdXQordmFyIHNldCA9IFtdOwor
dmFyIHAgPSBuZXcgUHJveHkoWzEsMiwzXSwgeyBzZXQ6IGZ1bmN0aW9uKG8sIGssIHYpIHsgc2V0
LnB1c2goayk7IG9ba10gPSB2OyByZXR1cm4gdHJ1ZTsgfX0pOworcC5zcGxpY2UoMSwwLDApOwor
cmV0dXJuIHNldCArICcnID09PSAiMywyLDEsbGVuZ3RoIjsKKyAgICAgIAorfQorCitpZiAoIXRl
c3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfc2V0X2NhbGxzX0FycmF5
LnByb3RvdHlwZS51bnNoaWZ0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvUHJveHlfaW50ZXJuYWxfc2V0X2NhbGxzX0FycmF5LnByb3RvdHlwZS51bnNo
aWZ0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Q
cm94eV9pbnRlcm5hbF9zZXRfY2FsbHNfQXJyYXkucHJvdG90eXBlLnVuc2hpZnQuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8gQXJyYXku
cHJvdG90eXBlLnVuc2hpZnQgLT4gU2V0IC0+IFtbU2V0XV0KK3ZhciBzZXQgPSBbXTsKK3ZhciBw
ID0gbmV3IFByb3h5KFswLDAsLDBdLCB7IHNldDogZnVuY3Rpb24obywgaywgdikgeyBzZXQucHVz
aChrKTsgb1trXSA9IHY7IHJldHVybiB0cnVlOyB9fSk7CitwLnVuc2hpZnQoMCwxKTsKK3JldHVy
biBzZXQgKyAnJyA9PT0gIjUsMywyLDAsMSxsZW5ndGgiOworICAgICAgCit9CisKK2lmICghdGVz
dCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9zZXRfY2FsbHNfT2JqZWN0
LmFzc2lnbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L1Byb3h5X2ludGVybmFsX3NldF9jYWxsc19PYmplY3QuYXNzaWduLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9pbnRlcm5hbF9zZXRfY2Fs
bHNfT2JqZWN0LmFzc2lnbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5j
dGlvbiB0ZXN0KCkgeworCisvLyBPYmplY3QuYXNzaWduIC0+IFNldCAtPiBbW1NldF1dCit2YXIg
c2V0ID0gW107Cit2YXIgcCA9IG5ldyBQcm94eSh7fSwgeyBzZXQ6IGZ1bmN0aW9uKG8sIGssIHYp
IHsgc2V0LnB1c2goayk7IG9ba10gPSB2OyByZXR1cm4gdHJ1ZTsgfX0pOworT2JqZWN0LmFzc2ln
bihwLCB7IGZvbzogMSwgYmFyOiAyIH0pOworcmV0dXJuIHNldCArICcnID09PSAiZm9vLGJhciI7
CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZh
aWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2lz
RXh0ZW5zaWJsZV9oYW5kbGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvUHJveHlfaXNFeHRlbnNpYmxlX2hhbmRsZXIuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X2lzRXh0ZW5zaWJsZV9oYW5k
bGVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIHRlc3QoKSB7
CisKK3ZhciBwcm94aWVkID0ge307Cit2YXIgcGFzc2VkID0gZmFsc2U7CitPYmplY3QuaXNFeHRl
bnNpYmxlKAorICBuZXcgUHJveHkocHJveGllZCwgeworICAgIGlzRXh0ZW5zaWJsZTogZnVuY3Rp
b24gKHQpIHsKKyAgICAgIHBhc3NlZCA9IHQgPT09IHByb3hpZWQ7IHJldHVybiB0cnVlOworICAg
IH0KKyAgfSkKKyk7CityZXR1cm4gcGFzc2VkOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQor
ICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9vd25LZXlzX2hhbmRsZXIuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9vd25LZXlzX2hhbmRsZXIu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5
X293bktleXNfaGFuZGxlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACitmdW5j
dGlvbiB0ZXN0KCkgeworCit2YXIgcHJveGllZCA9IHt9OwordmFyIHBhc3NlZCA9IGZhbHNlOwor
T2JqZWN0LmtleXMoCisgIG5ldyBQcm94eShwcm94aWVkLCB7CisgICAgb3duS2V5czogZnVuY3Rp
b24gKHQpIHsKKyAgICAgIHBhc3NlZCA9IHQgPT09IHByb3hpZWQ7IHJldHVybiBbXTsKKyAgICB9
CisgIH0pCispOworcmV0dXJuIHBhc3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvUHJveHlfcHJldmVudEV4dGVuc2lvbnNfaGFuZGxlci5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X3ByZXZlbnRF
eHRlbnNpb25zX2hhbmRsZXIuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L1Byb3h5X3ByZXZlbnRFeHRlbnNpb25zX2hhbmRsZXIuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIHByb3hpZWQg
PSB7fTsKK3ZhciBwYXNzZWQgPSBmYWxzZTsKK09iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucygKKyAg
bmV3IFByb3h5KHByb3hpZWQsIHsKKyAgICBwcmV2ZW50RXh0ZW5zaW9uczogZnVuY3Rpb24gKHQp
IHsKKyAgICAgIHBhc3NlZCA9IHQgPT09IHByb3hpZWQ7CisgICAgICByZXR1cm4gT2JqZWN0LnBy
ZXZlbnRFeHRlbnNpb25zKHByb3hpZWQpOworICAgIH0KKyAgfSkKKyk7CityZXR1cm4gcGFzc2Vk
OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBm
YWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9z
ZXRQcm90b3R5cGVPZl9oYW5kbGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvUHJveHlfc2V0UHJvdG90eXBlT2ZfaGFuZGxlci5qcwkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfc2V0UHJvdG90eXBl
T2ZfaGFuZGxlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIxIEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCit2YXIgcHJveGllZCA9IHt9OwordmFyIG5ld1Byb3RvID0ge307Cit2YXIgcGFz
c2VkID0gZmFsc2U7CitPYmplY3Quc2V0UHJvdG90eXBlT2YoCisgIG5ldyBQcm94eShwcm94aWVk
LCB7CisgICAgc2V0UHJvdG90eXBlT2Y6IGZ1bmN0aW9uICh0LCBwKSB7CisgICAgICBwYXNzZWQg
PSB0ID09PSBwcm94aWVkICYmIHAgPT09IG5ld1Byb3RvOworICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorICB9KSwKKyAgbmV3UHJvdG8KKyk7CityZXR1cm4gcGFzc2VkOworICAgICAgCit9CisK
K2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Qcm94eV9zZXRfaGFuZGxlci5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Byb3h5X3NldF9o
YW5kbGVyLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9Qcm94eV9zZXRfaGFuZGxlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACitm
dW5jdGlvbiB0ZXN0KCkgeworCit2YXIgcHJveGllZCA9IHsgfTsKK3ZhciBwYXNzZWQgPSBmYWxz
ZTsKK3ZhciBwcm94eSA9IG5ldyBQcm94eShwcm94aWVkLCB7CisgIHNldDogZnVuY3Rpb24gKHQs
IGssIHYsIHIpIHsKKyAgICBwYXNzZWQgPSB0ID09PSBwcm94aWVkICYmIGsgKyB2ID09PSAiZm9v
YmFyIiAmJiByID09PSBwcm94eTsKKyAgfQorfSk7Citwcm94eS5mb28gPSAiYmFyIjsKK3JldHVy
biBwYXNzZWQ7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9y
KCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L1Byb3h5X3NldF9oYW5kbGVyX2luc3RhbmNlc19vZl9wcm94aWVzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUHJveHlfc2V0X2hhbmRsZXJfaW5zdGFu
Y2VzX29mX3Byb3hpZXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L1Byb3h5X3NldF9oYW5kbGVyX2luc3RhbmNlc19vZl9wcm94aWVzLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBwcm94
aWVkID0geyB9OwordmFyIHBhc3NlZCA9IGZhbHNlOwordmFyIHByb3h5ID0gT2JqZWN0LmNyZWF0
ZShuZXcgUHJveHkocHJveGllZCwgeworICBzZXQ6IGZ1bmN0aW9uICh0LCBrLCB2LCByKSB7Cisg
ICAgcGFzc2VkID0gdCA9PT0gcHJveGllZCAmJiBrICsgdiA9PT0gImZvb2JhciIgJiYgciA9PT0g
cHJveHk7CisgIH0KK30pKTsKK3Byb3h5LmZvbyA9ICJiYXIiOworcmV0dXJuIHBhc3NlZDsKKyAg
ICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVk
Iik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZs
ZWN0LmFwcGx5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvUmVmbGVjdF9SZWZsZWN0LmFwcGx5LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWZsZWN0X1JlZmxlY3QuYXBwbHkuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gUmVmbGVjdC5h
cHBseShBcnJheS5wcm90b3R5cGUucHVzaCwgWzEsMl0sIFszLDQsNV0pID09PSA1OworICAgICAg
Cit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWZsZWN0X1JlZmxlY3Qu
Y29uc3RydWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvUmVmbGVjdF9SZWZsZWN0LmNvbnN0cnVjdC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0LmNvbnN0cnVjdC5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4g
UmVmbGVjdC5jb25zdHJ1Y3QoZnVuY3Rpb24oYSwgYiwgYykgeworICB0aGlzLnF1eCA9IGEgKyBi
ICsgYzsKK30sIFsiZm9vIiwgImJhciIsICJiYXoiXSkucXV4ID09PSAiZm9vYmFyYmF6IjsKKyAg
ICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVk
Iik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZs
ZWN0LmNvbnN0cnVjdF9jcmVhdGVzX2luc3RhbmNlX2Zyb21fbmV3VGFyZ2V0X2FyZ3VtZW50Lmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9S
ZWZsZWN0LmNvbnN0cnVjdF9jcmVhdGVzX2luc3RhbmNlX2Zyb21fbmV3VGFyZ2V0X2FyZ3VtZW50
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWZs
ZWN0X1JlZmxlY3QuY29uc3RydWN0X2NyZWF0ZXNfaW5zdGFuY2VfZnJvbV9uZXdUYXJnZXRfYXJn
dW1lbnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgp
IHsKKworZnVuY3Rpb24gRigpe30KK3JldHVybiBSZWZsZWN0LmNvbnN0cnVjdChmdW5jdGlvbigp
e30sIFtdLCBGKSBpbnN0YW5jZW9mIEY7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1JlZmxlY3RfUmVmbGVjdC5jb25zdHJ1Y3Rfc2V0c19uZXcudGFyZ2V0
X21ldGFfcHJvcGVydHkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9SZWZsZWN0X1JlZmxlY3QuY29uc3RydWN0X3NldHNfbmV3LnRhcmdldF9tZXRhX3By
b3BlcnR5LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9SZWZsZWN0X1JlZmxlY3QuY29uc3RydWN0X3NldHNfbmV3LnRhcmdldF9tZXRhX3Byb3BlcnR5
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisK
K3JldHVybiBSZWZsZWN0LmNvbnN0cnVjdChmdW5jdGlvbihhLCBiLCBjKSB7CisgIGlmIChuZXcu
dGFyZ2V0ID09PSBPYmplY3QpIHsKKyAgICB0aGlzLnF1eCA9IGEgKyBiICsgYzsKKyAgfQorfSwg
WyJmb28iLCAiYmFyIiwgImJheiJdLCBPYmplY3QpLnF1eCA9PT0gImZvb2JhcmJheiI7CisgICAg
ICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIp
OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZmxlY3RfUmVmbGVj
dC5kZWZpbmVQcm9wZXJ0eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L1JlZmxlY3RfUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eS5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0LmRlZmlu
ZVByb3BlcnR5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9uIHRl
c3QoKSB7CisKK3ZhciBvYmogPSB7fTsKK1JlZmxlY3QuZGVmaW5lUHJvcGVydHkob2JqLCAiZm9v
IiwgeyB2YWx1ZTogMTIzIH0pOworcmV0dXJuIG9iai5mb28gPT09IDEyMyAmJgorICBSZWZsZWN0
LmRlZmluZVByb3BlcnR5KE9iamVjdC5mcmVlemUoe30pLCAiZm9vIiwgeyB2YWx1ZTogMTIzIH0p
ID09PSBmYWxzZTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJy
b3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvUmVmbGVjdF9SZWZsZWN0LmRlbGV0ZVByb3BlcnR5LmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0LmRlbGV0ZVByb3BlcnR5
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWZs
ZWN0X1JlZmxlY3QuZGVsZXRlUHJvcGVydHkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIG9iaiA9IHsgYmFyOiA0NTYgfTsKK1JlZmxl
Y3QuZGVsZXRlUHJvcGVydHkob2JqLCAiYmFyIik7CityZXR1cm4gISgiYmFyIiBpbiBvYmopOwor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWZsZWN0X1Jl
ZmxlY3QuZW51bWVyYXRlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0LmVudW1lcmF0ZS5qcwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0LmVudW1lcmF0ZS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIxIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2
YXIgb2JqID0geyBmb286IDEsIGJhcjogMiB9OwordmFyIGl0ZXJhdG9yID0gUmVmbGVjdC5lbnVt
ZXJhdGUob2JqKTsKK3ZhciBwYXNzZWQgPSAxOworaWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5j
dGlvbicgJiYgJ2l0ZXJhdG9yJyBpbiBTeW1ib2wpIHsKKyAgcGFzc2VkICY9IFN5bWJvbC5pdGVy
YXRvciBpbiBpdGVyYXRvcjsKK30KK3ZhciBpdGVtID0gaXRlcmF0b3IubmV4dCgpOworcGFzc2Vk
ICY9IGl0ZW0udmFsdWUgPT09ICJmb28iICYmIGl0ZW0uZG9uZSA9PT0gZmFsc2U7CitpdGVtID0g
aXRlcmF0b3IubmV4dCgpOworcGFzc2VkICY9IGl0ZW0udmFsdWUgPT09ICJiYXIiICYmIGl0ZW0u
ZG9uZSA9PT0gZmFsc2U7CitpdGVtID0gaXRlcmF0b3IubmV4dCgpOworcGFzc2VkICY9IGl0ZW0u
dmFsdWUgPT09IHVuZGVmaW5lZCAmJiBpdGVtLmRvbmUgPT09IHRydWU7CityZXR1cm4gcGFzc2Vk
ID09PSAxOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigi
VGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9S
ZWZsZWN0X1JlZmxlY3QuZ2V0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0LmdldC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0LmdldC5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiBSZWZs
ZWN0LmdldCh7IHF1eDogOTg3IH0sICJxdXgiKSA9PT0gOTg3OworICAgICAgCit9CisKK2lmICgh
dGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWZsZWN0X1JlZmxlY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvUmVmbGVjdF9SZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvci5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEy
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgb2JqID0geyBiYXo6IDc4OSB9OwordmFyIGRl
c2MgPSBSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosICJiYXoiKTsKK3JldHVy
biBkZXNjLnZhbHVlID09PSA3ODkgJiYKKyAgZGVzYy5jb25maWd1cmFibGUgJiYgZGVzYy53cml0
YWJsZSAmJiBkZXNjLmVudW1lcmFibGU7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1JlZmxlY3RfUmVmbGVjdC5nZXRQcm90b3R5cGVPZi5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZmxlY3RfUmVmbGVjdC5n
ZXRQcm90b3R5cGVPZi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0LmdldFByb3RvdHlwZU9mLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIFJlZmxlY3QuZ2V0
UHJvdG90eXBlT2YoW10pID09PSBBcnJheS5wcm90b3R5cGU7CisgICAgICAKK30KKworaWYgKCF0
ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZmxlY3RfUmVmbGVjdC5oYXMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWZsZWN0X1JlZmxlY3Qu
aGFzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9S
ZWZsZWN0X1JlZmxlY3QuaGFzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIFJlZmxlY3QuaGFzKHsgcXV4OiA5ODcgfSwgInF1eCIp
OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBm
YWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWZsZWN0
X1JlZmxlY3QuaXNFeHRlbnNpYmxlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0LmlzRXh0ZW5zaWJsZS5qcwkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0Lmlz
RXh0ZW5zaWJsZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCityZXR1cm4gUmVmbGVjdC5pc0V4dGVuc2libGUoe30pICYmCisgICFSZWZsZWN0
LmlzRXh0ZW5zaWJsZShPYmplY3QucHJldmVudEV4dGVuc2lvbnMoe30pKTsKKyAgICAgIAorfQor
CitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0Lm93bktl
eXNfc3RyaW5nX2tleXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9SZWZsZWN0X1JlZmxlY3Qub3duS2V5c19zdHJpbmdfa2V5cy5qcwkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0Lm93
bktleXNfc3RyaW5nX2tleXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKwordmFyIG9iaiA9IE9iamVjdC5jcmVhdGUoeyBDOiB0cnVlIH0pOwor
b2JqLkEgPSB0cnVlOworT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgJ0InLCB7IHZhbHVlOiB0
cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSB9KTsKKworcmV0dXJuIFJlZmxlY3Qub3duS2V5cyhvYmop
LnNvcnQoKSArICcnID09PSAiQSxCIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0
aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0Lm93bktleXNfc3ltYm9sX2tleXMuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWZsZWN0X1JlZmxl
Y3Qub3duS2V5c19zeW1ib2xfa2V5cy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0Lm93bktleXNfc3ltYm9sX2tleXMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFy
IHMxID0gU3ltYm9sKCksIHMyID0gU3ltYm9sKCksIHMzID0gU3ltYm9sKCk7Cit2YXIgcHJvdG8g
PSB7fTsKK3Byb3RvW3MxXSA9IHRydWU7Cit2YXIgb2JqID0gT2JqZWN0LmNyZWF0ZShwcm90byk7
CitvYmpbczJdID0gdHJ1ZTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIHMzLCB7IHZhbHVl
OiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZSB9KTsKKwordmFyIGtleXMgPSBSZWZsZWN0Lm93bktl
eXMob2JqKTsKK3JldHVybiBrZXlzLmluZGV4T2YoczIpID4tMSAmJiBrZXlzLmluZGV4T2YoczMp
ID4tMSAmJiBrZXlzLmxlbmd0aCA9PT0gMjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZsZWN0LnByZXZlbnRFeHRlbnNpb25zLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVmbGVjdF9SZWZs
ZWN0LnByZXZlbnRFeHRlbnNpb25zLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9SZWZsZWN0X1JlZmxlY3QucHJldmVudEV4dGVuc2lvbnMuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIG9i
aiA9IHt9OworUmVmbGVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhvYmopOworcmV0dXJuICFPYmplY3Qu
aXNFeHRlbnNpYmxlKG9iaik7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cg
bmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L1JlZmxlY3RfUmVmbGVjdC5zZXQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWZsZWN0X1JlZmxlY3Quc2V0LmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWZsZWN0X1JlZmxlY3Quc2V0
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisK
K3ZhciBvYmogPSB7fTsKK1JlZmxlY3Quc2V0KG9iaiwgInF1dXgiLCA2NTQpOworcmV0dXJuIG9i
ai5xdXV4ID09PSA2NTQ7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3
IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L1JlZmxlY3RfUmVmbGVjdC5zZXRQcm90b3R5cGVPZi5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZmxlY3RfUmVmbGVjdC5zZXRQcm90b3R5
cGVPZi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
UmVmbGVjdF9SZWZsZWN0LnNldFByb3RvdHlwZU9mLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBvYmogPSB7fTsKK1JlZmxlY3Quc2V0
UHJvdG90eXBlT2Yob2JqLCBBcnJheS5wcm90b3R5cGUpOworcmV0dXJuIG9iaiBpbnN0YW5jZW9m
IEFycmF5OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigi
VGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9S
ZWdFeHAucHJvdG90eXBlLmNvbXBpbGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHAucHJvdG90eXBlLmNvbXBpbGUuanMJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cC5wcm90b3R5cGUuY29t
cGlsZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7
CisKK3JldHVybiB0eXBlb2YgUmVnRXhwLnByb3RvdHlwZS5jb21waWxlID09PSAnZnVuY3Rpb24n
OworICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxl
ZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cC5wcm90
b3R5cGVfcHJvcGVydGllc19SZWdFeHAucHJvdG90eXBlLmZsYWdzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVnRXhwLnByb3RvdHlwZV9wcm9wZXJ0
aWVzX1JlZ0V4cC5wcm90b3R5cGUuZmxhZ3MuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cC5wcm90b3R5cGVfcHJvcGVydGllc19SZWdFeHAu
cHJvdG90eXBlLmZsYWdzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rp
b24gdGVzdCgpIHsKKworcmV0dXJuIC8uL2lnbS5mbGFncyA9PT0gImdpbSIgJiYgLy4vLmZsYWdz
ID09PSAiIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3Io
IlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
UmVnRXhwLnByb3RvdHlwZV9wcm9wZXJ0aWVzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLm1hdGNo
XS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4
cC5wcm90b3R5cGVfcHJvcGVydGllc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5tYXRjaF0uanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cC5w
cm90b3R5cGVfcHJvcGVydGllc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5tYXRjaF0uanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4g
dHlwZW9mIFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLm1hdGNoXSA9PT0gJ2Z1bmN0aW9uJzsKKyAg
ICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVk
Iik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVnRXhwLnByb3Rv
dHlwZV9wcm9wZXJ0aWVzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnJlcGxhY2VdLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVnRXhwLnByb3RvdHlw
ZV9wcm9wZXJ0aWVzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnJlcGxhY2VdLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHAucHJvdG90eXBl
X3Byb3BlcnRpZXNfUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wucmVwbGFjZV0uanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9m
IFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnJlcGxhY2VdID09PSAnZnVuY3Rpb24nOworICAgICAg
Cit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHAucHJvdG90eXBl
X3Byb3BlcnRpZXNfUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wuc2VhcmNoXS5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cC5wcm90b3R5cGVfcHJv
cGVydGllc19SZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zZWFyY2hdLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHAucHJvdG90eXBlX3Byb3Bl
cnRpZXNfUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wuc2VhcmNoXS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiB0eXBlb2YgUmVnRXhw
LnByb3RvdHlwZVtTeW1ib2wuc2VhcmNoXSA9PT0gJ2Z1bmN0aW9uJzsKKyAgICAgIAorfQorCitp
ZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVnRXhwLnByb3RvdHlwZV9wcm9wZXJ0
aWVzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNwbGl0XS5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cC5wcm90b3R5cGVfcHJvcGVydGllc19S
ZWdFeHAucHJvdG90eXBlW1N5bWJvbC5zcGxpdF0uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cC5wcm90b3R5cGVfcHJvcGVydGllc19SZWdF
eHAucHJvdG90eXBlW1N5bWJvbC5zcGxpdF0uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIFJlZ0V4cC5wcm90b3R5cGVb
U3ltYm9sLnNwbGl0XSA9PT0gJ2Z1bmN0aW9uJzsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvUmVnRXhwLnByb3RvdHlwZV9wcm9wZXJ0aWVzX1JlZ0V4cFtT
eW1ib2wuc3BlY2llc10uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9SZWdFeHAucHJvdG90eXBlX3Byb3BlcnRpZXNfUmVnRXhwW1N5bWJvbC5zcGVjaWVz
XS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVn
RXhwLnByb3RvdHlwZV9wcm9wZXJ0aWVzX1JlZ0V4cFtTeW1ib2wuc3BlY2llc10uanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIHByb3Ag
PSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFJlZ0V4cCwgU3ltYm9sLnNwZWNpZXMp
OworcmV0dXJuICdnZXQnIGluIHByb3AgJiYgUmVnRXhwW1N5bWJvbC5zcGVjaWVzXSA9PT0gUmVn
RXhwOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVz
dCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWdF
eHBfaXNfc3ViY2xhc3NhYmxlX1JlZ0V4cC5wcm90b3R5cGUuZXhlYy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cF9pc19zdWJjbGFzc2FibGVf
UmVnRXhwLnByb3RvdHlwZS5leGVjLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHBfaXNfc3ViY2xhc3NhYmxlX1JlZ0V4cC5wcm90b3R5cGUu
ZXhlYy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkg
eworCitjbGFzcyBSIGV4dGVuZHMgUmVnRXhwIHt9Cit2YXIgciA9IG5ldyBSKCJiYXoiLCJnIik7
CityZXR1cm4gci5leGVjKCJmb29iYXJiYXoiKVswXSA9PT0gImJheiIgJiYgci5sYXN0SW5kZXgg
PT09IDk7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJU
ZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Jl
Z0V4cF9pc19zdWJjbGFzc2FibGVfUmVnRXhwLnByb3RvdHlwZS50ZXN0LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVnRXhwX2lzX3N1YmNsYXNzYWJs
ZV9SZWdFeHAucHJvdG90eXBlLnRlc3QuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cF9pc19zdWJjbGFzc2FibGVfUmVnRXhwLnByb3RvdHlw
ZS50ZXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3Qo
KSB7CisKK2NsYXNzIFIgZXh0ZW5kcyBSZWdFeHAge30KK3ZhciByID0gbmV3IFIoImJheiIpOwor
cmV0dXJuIHIudGVzdCgiZm9vYmFyYmF6Iik7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisg
ICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cF9pc19zdWJjbGFzc2FibGVfYmFzaWNfZnVuY3Rpb25h
bGl0eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Jl
Z0V4cF9pc19zdWJjbGFzc2FibGVfYmFzaWNfZnVuY3Rpb25hbGl0eS5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVnRXhwX2lzX3N1YmNsYXNzYWJs
ZV9iYXNpY19mdW5jdGlvbmFsaXR5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAK
K2Z1bmN0aW9uIHRlc3QoKSB7CisKK2NsYXNzIFIgZXh0ZW5kcyBSZWdFeHAge30KK3ZhciByID0g
bmV3IFIoImJheiIsImciKTsKK3JldHVybiByLmdsb2JhbCAmJiByLnNvdXJjZSA9PT0gImJheiI7
CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZh
aWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cF9p
c19zdWJjbGFzc2FibGVfY29ycmVjdF9wcm90b3R5cGVfY2hhaW4uanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHBfaXNfc3ViY2xhc3NhYmxlX2Nv
cnJlY3RfcHJvdG90eXBlX2NoYWluLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHBfaXNfc3ViY2xhc3NhYmxlX2NvcnJlY3RfcHJvdG90eXBl
X2NoYWluLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3Qo
KSB7CisKK2NsYXNzIFIgZXh0ZW5kcyBSZWdFeHAge30KK3ZhciByID0gbmV3IFIoImJheiIsImci
KTsKK3JldHVybiByIGluc3RhbmNlb2YgUiAmJiByIGluc3RhbmNlb2YgUmVnRXhwICYmIE9iamVj
dC5nZXRQcm90b3R5cGVPZihSKSA9PT0gUmVnRXhwOworICAgICAgCit9CisKK2lmICghdGVzdCgp
KQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHBfc3ludGF4X2V4dGVuc2lvbnNfaHlwaGVuc19p
bl9jaGFyYWN0ZXJfc2V0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L1JlZ0V4cF9zeW50YXhfZXh0ZW5zaW9uc19oeXBoZW5zX2luX2NoYXJhY3Rlcl9z
ZXRzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9S
ZWdFeHBfc3ludGF4X2V4dGVuc2lvbnNfaHlwaGVuc19pbl9jaGFyYWN0ZXJfc2V0cy5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiAv
W1x3LV9dLy5leGVjKCItIilbMF0gPT09ICItIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvUmVnRXhwX3N5bnRheF9leHRlbnNpb25zX2luY29tcGxldGVf
cGF0dGVybnNfYW5kX3F1YW50aWZpZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvUmVnRXhwX3N5bnRheF9leHRlbnNpb25zX2luY29tcGxldGVfcGF0
dGVybnNfYW5kX3F1YW50aWZpZXJzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHBfc3ludGF4X2V4dGVuc2lvbnNfaW5jb21wbGV0ZV9wYXR0
ZXJuc19hbmRfcXVhbnRpZmllcnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAor
ZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIC94ezEvLmV4ZWMoInh7MSIpWzBdID09PSAieHsx
IgorICAmJiAveF0xLy5leGVjKCJ4XTEiKVswXSA9PT0gInhdMSI7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cF9zeW50YXhfZXh0ZW5zaW9uc19p
bnZhbGlkX1VuaWNvZGVfZXNjYXBlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1JlZ0V4cF9zeW50YXhfZXh0ZW5zaW9uc19pbnZhbGlkX1VuaWNvZGVf
ZXNjYXBlcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvUmVnRXhwX3N5bnRheF9leHRlbnNpb25zX2ludmFsaWRfVW5pY29kZV9lc2NhcGVzLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVy
biAvXHUxLy5leGVjKCJ1MSIpWzBdID09PSAidTEiCisgICYmIC9bXHUxXS8uZXhlYygidSIpWzBd
ID09PSAidSI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9y
KCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L1JlZ0V4cF9zeW50YXhfZXh0ZW5zaW9uc19pbnZhbGlkX2JhY2tyZWZlcmVuY2VzX2JlY29tZV9v
Y3RhbF9lc2NhcGVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvUmVnRXhwX3N5bnRheF9leHRlbnNpb25zX2ludmFsaWRfYmFja3JlZmVyZW5jZXNfYmVj
b21lX29jdGFsX2VzY2FwZXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L1JlZ0V4cF9zeW50YXhfZXh0ZW5zaW9uc19pbnZhbGlkX2JhY2tyZWZlcmVu
Y2VzX2JlY29tZV9vY3RhbF9lc2NhcGVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAg
QEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiAvXDQxLy5leGVjKCIhIilbMF0gPT09ICIh
IgorICAmJiAvW1w0MV0vLmV4ZWMoIiEiKVswXSA9PT0gIiEiOworICAgICAgCit9CisKK2lmICgh
dGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHBfc3ludGF4X2V4dGVuc2lvbnNfaW52
YWxpZF9jaGFyYWN0ZXJfZXNjYXBlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1JlZ0V4cF9zeW50YXhfZXh0ZW5zaW9uc19pbnZhbGlkX2NoYXJhY3Rl
cl9lc2NhcGVzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9SZWdFeHBfc3ludGF4X2V4dGVuc2lvbnNfaW52YWxpZF9jaGFyYWN0ZXJfZXNjYXBlcy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCity
ZXR1cm4gL1x6Ly5leGVjKCJcXHoiKVswXSA9PT0gInoiCisgICYmIC9bXHpdLy5leGVjKCJbXFx6
XSIpWzBdID09PSAieiI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3
IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L1JlZ0V4cF9zeW50YXhfZXh0ZW5zaW9uc19pbnZhbGlkX2NvbnRyb2wtY2hhcmFjdGVy
X2VzY2FwZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9SZWdFeHBfc3ludGF4X2V4dGVuc2lvbnNfaW52YWxpZF9jb250cm9sLWNoYXJhY3Rlcl9lc2Nh
cGVzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9S
ZWdFeHBfc3ludGF4X2V4dGVuc2lvbnNfaW52YWxpZF9jb250cm9sLWNoYXJhY3Rlcl9lc2NhcGVz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwor
cmV0dXJuIC9cYzIvLmV4ZWMoIlxcYzIiKVswXSA9PT0gIlxcYzIiOworICAgICAgCit9CisKK2lm
ICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHBfc3ludGF4X2V4dGVuc2lvbnNf
aW52YWxpZF9oZXhhZGVjaW1hbF9lc2NhcGVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvUmVnRXhwX3N5bnRheF9leHRlbnNpb25zX2ludmFsaWRfaGV4
YWRlY2ltYWxfZXNjYXBlcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvUmVnRXhwX3N5bnRheF9leHRlbnNpb25zX2ludmFsaWRfaGV4YWRlY2ltYWxf
ZXNjYXBlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0
KCkgeworCityZXR1cm4gL1x4MS8uZXhlYygieDEiKVswXSA9PT0gIngxIgorICAmJiAvW1x4MV0v
LmV4ZWMoIngiKVswXSA9PT0gIngiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRo
cm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9SZWdFeHBfc3ludGF4X2V4dGVuc2lvbnNfb2N0YWxfZXNjYXBlX3NlcXVl
bmNlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Jl
Z0V4cF9zeW50YXhfZXh0ZW5zaW9uc19vY3RhbF9lc2NhcGVfc2VxdWVuY2VzLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHBfc3ludGF4X2V4
dGVuc2lvbnNfb2N0YWxfZXNjYXBlX3NlcXVlbmNlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gL1wwNDEvLmV4ZWMoIiEiKVsw
XSA9PT0gIiEiCisgICYmIC9bXDA0MV0vLmV4ZWMoIiEiKVswXSA9PT0gIiEiOworICAgICAgCit9
CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHBfeV9hbmRfdV9mbGFn
c191X2ZsYWcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9SZWdFeHBfeV9hbmRfdV9mbGFnc191X2ZsYWcuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cF95X2FuZF91X2ZsYWdzX3VfZmxhZy5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVy
biAi8KCutyIubWF0Y2goL14uJC91KVswXS5sZW5ndGggPT09IDI7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cF95X2FuZF91X2ZsYWdzX3VfZmxh
Z19Vbmljb2RlX2NvZGVfcG9pbnRfZXNjYXBlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cF95X2FuZF91X2ZsYWdzX3VfZmxhZ19Vbmljb2Rl
X2NvZGVfcG9pbnRfZXNjYXBlcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvUmVnRXhwX3lfYW5kX3VfZmxhZ3NfdV9mbGFnX1VuaWNvZGVfY29kZV9w
b2ludF9lc2NhcGVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24g
dGVzdCgpIHsKKworcmV0dXJuICLwnYyGIi5tYXRjaCgvXHV7MWQzMDZ9L3UpWzBdLmxlbmd0aCA9
PT0gMjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRl
c3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvUmVn
RXhwX3lfYW5kX3VfZmxhZ3NfeV9mbGFnLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvUmVnRXhwX3lfYW5kX3VfZmxhZ3NfeV9mbGFnLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHBfeV9hbmRfdV9m
bGFnc195X2ZsYWcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorZnVuY3Rpb24g
dGVzdCgpIHsKKwordmFyIHJlID0gbmV3IFJlZ0V4cCgnXFx3JywgJ3knKTsKK3JlLmV4ZWMoJ3h5
Jyk7CityZXR1cm4gKHJlLmV4ZWMoJ3h5JylbMF0gPT09ICd5Jyk7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1JlZ0V4cF95X2FuZF91X2ZsYWdzX3lfZmxh
Z19sYXN0SW5kZXguanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9SZWdFeHBfeV9hbmRfdV9mbGFnc195X2ZsYWdfbGFzdEluZGV4LmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9SZWdFeHBfeV9hbmRfdV9mbGFn
c195X2ZsYWdfbGFzdEluZGV4LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1
bmN0aW9uIHRlc3QoKSB7CisKK3ZhciByZSA9IG5ldyBSZWdFeHAoJ3l5JywgJ3knKTsKK3JlLmxh
c3RJbmRleCA9IDM7Cit2YXIgcmVzdWx0ID0gcmUuZXhlYygneHh4eXl4eCcpWzBdOworcmV0dXJu
IHJlc3VsdCA9PT0gJ3l5JyAmJiByZS5sYXN0SW5kZXggPT09IDU7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF8tMF9rZXlfY29udmVydHNfdG9fKzAu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRfLTBf
a2V5X2NvbnZlcnRzX3RvXyswLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9TZXRfLTBfa2V5X2NvbnZlcnRzX3RvXyswLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBzZXQgPSBuZXcgU2V0
KCk7CitzZXQuYWRkKC0wKTsKK3ZhciBrOworc2V0LmZvckVhY2goZnVuY3Rpb24gKHZhbHVlKSB7
CisgIGsgPSAxIC8gdmFsdWU7Cit9KTsKK3JldHVybiBrID09PSBJbmZpbml0eSAmJiBzZXQuaGFz
KCswKTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRl
c3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU2V0
X1NldC5wcm90b3R5cGUuYWRkX3JldHVybnNfdGhpcy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9TZXQucHJvdG90eXBlLmFkZF9yZXR1cm5zX3Ro
aXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1Nl
dF9TZXQucHJvdG90eXBlLmFkZF9yZXR1cm5zX3RoaXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIHNldCA9IG5ldyBTZXQoKTsKK3Jl
dHVybiBzZXQuYWRkKDApID09PSBzZXQ7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1NldF9TZXQucHJvdG90eXBlLmNsZWFyLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU2V0X1NldC5wcm90b3R5cGUuY2xlYXIu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9T
ZXQucHJvdG90eXBlLmNsZWFyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBTZXQucHJvdG90eXBlLmNsZWFyID09PSAi
ZnVuY3Rpb24iOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJv
cigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9TZXRfU2V0LnByb3RvdHlwZS5kZWxldGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRfU2V0LnByb3RvdHlwZS5kZWxldGUuanMJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9TZXQucHJvdG90eXBl
LmRlbGV0ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3Qo
KSB7CisKK3JldHVybiB0eXBlb2YgU2V0LnByb3RvdHlwZS5kZWxldGUgPT09ICJmdW5jdGlvbiI7
CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZh
aWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9TZXQu
cHJvdG90eXBlLmVudHJpZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9TZXRfU2V0LnByb3RvdHlwZS5lbnRyaWVzLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRfU2V0LnByb3RvdHlwZS5lbnRyaWVz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwor
cmV0dXJuIHR5cGVvZiBTZXQucHJvdG90eXBlLmVudHJpZXMgPT09ICJmdW5jdGlvbiI7CisgICAg
ICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIp
OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9TZXQucHJvdG90
eXBlLmZvckVhY2guanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9TZXRfU2V0LnByb3RvdHlwZS5mb3JFYWNoLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRfU2V0LnByb3RvdHlwZS5mb3JFYWNoLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJu
IHR5cGVvZiBTZXQucHJvdG90eXBlLmZvckVhY2ggPT09ICJmdW5jdGlvbiI7CisgICAgICAKK30K
KworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9TZXQucHJvdG90eXBlLmtl
eXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRf
U2V0LnByb3RvdHlwZS5rZXlzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9TZXRfU2V0LnByb3RvdHlwZS5rZXlzLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBTZXQucHJv
dG90eXBlLmtleXMgPT09ICJmdW5jdGlvbiI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisg
ICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1NldF9TZXQucHJvdG90eXBlLnNpemUuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRfU2V0LnByb3RvdHlwZS5zaXpl
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRf
U2V0LnByb3RvdHlwZS5zaXplLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK2Z1
bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBvYmogPSB7fTsKK3ZhciBzZXQgPSBuZXcgU2V0KCk7CisK
K3NldC5hZGQoMTIzKTsKK3NldC5hZGQoMTIzKTsKK3NldC5hZGQoNDU2KTsKKworcmV0dXJuIHNl
dC5zaXplID09PSAyOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBF
cnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9TZXRfU2V0LnByb3RvdHlwZS52YWx1ZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRfU2V0LnByb3RvdHlwZS52YWx1ZXMuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9TZXQucHJvdG90
eXBlLnZhbHVlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRl
c3QoKSB7CisKK3JldHVybiB0eXBlb2YgU2V0LnByb3RvdHlwZS52YWx1ZXMgPT09ICJmdW5jdGlv
biI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0
IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9T
ZXQucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0uanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRfU2V0LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3Jd
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRf
U2V0LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBTZXQucHJvdG90eXBl
W1N5bWJvbC5pdGVyYXRvcl0gPT09ICJmdW5jdGlvbiI7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9TZXRbU3ltYm9sLnNwZWNpZXNdLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU2V0X1NldFtTeW1ib2wu
c3BlY2llc10uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L1NldF9TZXRbU3ltYm9sLnNwZWNpZXNdLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTAgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBwcm9wID0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihTZXQsIFN5bWJvbC5zcGVjaWVzKTsKK3JldHVybiAnZ2V0JyBpbiBwcm9w
ICYmIFNldFtTeW1ib2wuc3BlY2llc10gPT09IFNldDsKKyAgICAgIAorfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU2V0X1NldF9pdGVyYXRvcl9wcm90b3R5cGVfY2hhaW4u
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRfU2V0
X2l0ZXJhdG9yX3Byb3RvdHlwZV9jaGFpbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvU2V0X1NldF9pdGVyYXRvcl9wcm90b3R5cGVfY2hhaW4uanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8g
SXRlcmF0b3IgaW5zdGFuY2UKK3ZhciBpdGVyYXRvciA9IG5ldyBTZXQoKVtTeW1ib2wuaXRlcmF0
b3JdKCk7CisvLyAlU2V0SXRlcmF0b3JQcm90b3R5cGUlCit2YXIgcHJvdG8xID0gT2JqZWN0Lmdl
dFByb3RvdHlwZU9mKGl0ZXJhdG9yKTsKKy8vICVJdGVyYXRvclByb3RvdHlwZSUKK3ZhciBwcm90
bzIgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8xKTsKKworcmV0dXJuIHByb3RvMi5oYXNP
d25Qcm9wZXJ0eShTeW1ib2wuaXRlcmF0b3IpICYmCisgICFwcm90bzEgICAgLmhhc093blByb3Bl
cnR5KFN5bWJvbC5pdGVyYXRvcikgJiYKKyAgIWl0ZXJhdG9yICAuaGFzT3duUHJvcGVydHkoU3lt
Ym9sLml0ZXJhdG9yKSAmJgorICBpdGVyYXRvcltTeW1ib2wuaXRlcmF0b3JdKCkgPT09IGl0ZXJh
dG9yOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVz
dCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRf
YmFzaWNfZnVuY3Rpb25hbGl0eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L1NldF9iYXNpY19mdW5jdGlvbmFsaXR5LmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRfYmFzaWNfZnVuY3Rpb25hbGl0eS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2
YXIgb2JqID0ge307Cit2YXIgc2V0ID0gbmV3IFNldCgpOworCitzZXQuYWRkKDEyMyk7CitzZXQu
YWRkKDEyMyk7CisKK3JldHVybiBzZXQuaGFzKDEyMyk7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9jb25zdHJ1Y3Rvcl9hY2NlcHRzX251bGwuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRfY29uc3Ry
dWN0b3JfYWNjZXB0c19udWxsLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9TZXRfY29uc3RydWN0b3JfYWNjZXB0c19udWxsLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK25ldyBTZXQobnVsbCk7
CityZXR1cm4gdHJ1ZTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcg
RXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvU2V0X2NvbnN0cnVjdG9yX2FyZ3VtZW50cy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9jb25zdHJ1Y3Rvcl9hcmd1bWVudHMuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9jb25zdHJ1
Y3Rvcl9hcmd1bWVudHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rp
b24gdGVzdCgpIHsKKwordmFyIG9iajEgPSB7fTsKK3ZhciBvYmoyID0ge307Cit2YXIgc2V0ID0g
bmV3IFNldChbb2JqMSwgb2JqMl0pOworCityZXR1cm4gc2V0LmhhcyhvYmoxKSAmJiBzZXQuaGFz
KG9iajIpOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigi
VGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9T
ZXRfY29uc3RydWN0b3JfaW52b2tlc19hZGQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRfY29uc3RydWN0b3JfaW52b2tlc19hZGQuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9jb25zdHJ1Y3Rv
cl9pbnZva2VzX2FkZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlv
biB0ZXN0KCkgeworCit2YXIgcGFzc2VkID0gZmFsc2U7Cit2YXIgX2FkZCA9IFNldC5wcm90b3R5
cGUuYWRkOworCitTZXQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uKHYpIHsKKyAgcGFzc2VkID0g
dHJ1ZTsKK307CisKK25ldyBTZXQoWzFdKTsKK1NldC5wcm90b3R5cGUuYWRkID0gX2FkZDsKKwor
cmV0dXJuIHBhc3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcg
RXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvU2V0X2NvbnN0cnVjdG9yX3JlcXVpcmVzX25ldy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9jb25zdHJ1Y3Rvcl9yZXF1aXJlc19uZXcu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1NldF9j
b25zdHJ1Y3Rvcl9yZXF1aXJlc19uZXcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBA
QAorZnVuY3Rpb24gdGVzdCgpIHsKKworbmV3IFNldCgpOwordHJ5IHsKKyAgU2V0KCk7CisgIHJl
dHVybiBmYWxzZTsKK30gY2F0Y2goZSkgeworICByZXR1cm4gdHJ1ZTsKK30KKyAgICAgIAorfQor
CitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU2V0X2l0ZXJhdG9yX2Nsb3Npbmcu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TZXRfaXRl
cmF0b3JfY2xvc2luZy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvU2V0X2l0ZXJhdG9yX2Nsb3NpbmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGNsb3NlZCA9IGZhbHNlOwordmFyIGl0
ZXIgPSBnbG9iYWwuX19jcmVhdGVJdGVyYWJsZU9iamVjdChbMSwgMiwgM10sIHsKKyAgJ3JldHVy
bic6IGZ1bmN0aW9uKCl7IGNsb3NlZCA9IHRydWU7IHJldHVybiB7fTsgfQorfSk7Cit2YXIgYWRk
ID0gU2V0LnByb3RvdHlwZS5hZGQ7CitTZXQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uKCl7IHRo
cm93IDAgfTsKK3RyeSB7CisgIG5ldyBTZXQoaXRlcik7Cit9IGNhdGNoKGUpe30KK1NldC5wcm90
b3R5cGUuYWRkID0gYWRkOworcmV0dXJuIGNsb3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3RyaW5nLnByb3RvdHlwZV9IVE1MX21ldGhvZHNfZXhp
c3RlbmNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
U3RyaW5nLnByb3RvdHlwZV9IVE1MX21ldGhvZHNfZXhpc3RlbmNlLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBlX0hUTUxf
bWV0aG9kc19leGlzdGVuY2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKwordmFyIGksIG5hbWVzID0gWyJhbmNob3IiLCAiYmlnIiwgImJvbGQi
LCAiZml4ZWQiLCAiZm9udGNvbG9yIiwgImZvbnRzaXplIiwKKyAgIml0YWxpY3MiLCAibGluayIs
ICJzbWFsbCIsICJzdHJpa2UiLCAic3ViIiwgInN1cCJdOworZm9yIChpID0gMDsgaSA8IG5hbWVz
Lmxlbmd0aDsgaSsrKSB7CisgIGlmICh0eXBlb2YgU3RyaW5nLnByb3RvdHlwZVtuYW1lc1tpXV0g
IT09ICdmdW5jdGlvbicpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KK30KK3JldHVybiB0cnVl
OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBm
YWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcu
cHJvdG90eXBlX0hUTUxfbWV0aG9kc19xdW90ZXNfaW5fYXJndW1lbnRzX2FyZV9lc2NhcGVkLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3RyaW5nLnBy
b3RvdHlwZV9IVE1MX21ldGhvZHNfcXVvdGVzX2luX2FyZ3VtZW50c19hcmVfZXNjYXBlZC5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3RyaW5nLnBy
b3RvdHlwZV9IVE1MX21ldGhvZHNfcXVvdGVzX2luX2FyZ3VtZW50c19hcmVfZXNjYXBlZC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIg
aSwgbmFtZXMgPSBbImFuY2hvciIsICJmb250Y29sb3IiLCAiZm9udHNpemUiLCAibGluayJdOwor
Zm9yIChpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7CisgIGlmICgiIltuYW1lc1tpXV0o
JyInKSAhPT0gIiJbbmFtZXNbaV1dKCcmJyArICdxdW90OycpKSB7CisgICAgcmV0dXJuIGZhbHNl
OworICB9Cit9CityZXR1cm4gdHJ1ZTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0
aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvU3RyaW5nLnByb3RvdHlwZV9IVE1MX21ldGhvZHNfdGFnc19uYW1lc19h
cmVfbG93ZXJjYXNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvU3RyaW5nLnByb3RvdHlwZV9IVE1MX21ldGhvZHNfdGFnc19uYW1lc19hcmVfbG93ZXJj
YXNlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9T
dHJpbmcucHJvdG90eXBlX0hUTUxfbWV0aG9kc190YWdzX25hbWVzX2FyZV9sb3dlcmNhc2UuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFy
IGksIG5hbWVzID0gWyJhbmNob3IiLCAiYmlnIiwgImJvbGQiLCAiZml4ZWQiLCAiZm9udGNvbG9y
IiwgImZvbnRzaXplIiwKKyAgIml0YWxpY3MiLCAibGluayIsICJzbWFsbCIsICJzdHJpa2UiLCAi
c3ViIiwgInN1cCJdOworZm9yIChpID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSsrKSB7CisgIGlm
ICgiIltuYW1lc1tpXV0oKS50b0xvd2VyQ2FzZSgpICE9PSAiIltuYW1lc1tpXV0oKSkgeworICAg
IHJldHVybiBmYWxzZTsKKyAgfQorfQorcmV0dXJuIHRydWU7CisgICAgICAKK30KKworaWYgKCF0
ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJp
bmcucHJvdG90eXBlLmNvZGVQb2ludEF0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2RzX1N0cmluZy5wcm90b3R5
cGUuY29kZVBvaW50QXQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90eXBlLmNvZGVQ
b2ludEF0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgp
IHsKKworcmV0dXJuIHR5cGVvZiBTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0ID09PSAnZnVu
Y3Rpb24nOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigi
VGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9T
dHJpbmcucHJvdG90eXBlX21ldGhvZHNfU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aC5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5
cGVfbWV0aG9kc19TdHJpbmcucHJvdG90eXBlLmVuZHNXaXRoLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBlX21ldGhvZHNf
U3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEw
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIFN0cmluZy5wcm90b3R5cGUu
ZW5kc1dpdGggPT09ICdmdW5jdGlvbicKKyAgJiYgImZvb2JhciIuZW5kc1dpdGgoImJhciIpOwor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJv
dG90eXBlX21ldGhvZHNfU3RyaW5nLnByb3RvdHlwZS5pbmNsdWRlcy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9k
c19TdHJpbmcucHJvdG90eXBlLmluY2x1ZGVzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBlX21ldGhvZHNfU3RyaW5nLnBy
b3RvdHlwZS5pbmNsdWRlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5j
dGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIFN0cmluZy5wcm90b3R5cGUuaW5jbHVkZXMg
PT09ICdmdW5jdGlvbicKKyAgJiYgImZvb2JhciIuaW5jbHVkZXMoIm9iYSIpOworICAgICAgCit9
CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBlX21l
dGhvZHNfU3RyaW5nLnByb3RvdHlwZS5ub3JtYWxpemUuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBlX21ldGhvZHNfU3RyaW5n
LnByb3RvdHlwZS5ub3JtYWxpemUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90eXBl
Lm5vcm1hbGl6ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIFN0cmluZy5wcm90b3R5cGUubm9ybWFsaXplID09PSAi
ZnVuY3Rpb24iCisgICYmICJjXHUwMzI3XHUwMzAxIi5ub3JtYWxpemUoIk5GQyIpID09PSAiXHUx
ZTA5IgorICAmJiAiXHUxZTA5Ii5ub3JtYWxpemUoIk5GRCIpID09PSAiY1x1MDMyN1x1MDMwMSI7
CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZh
aWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5w
cm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90eXBlLnJlcGVhdC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9k
c19TdHJpbmcucHJvdG90eXBlLnJlcGVhdC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2RzX1N0cmluZy5wcm90
b3R5cGUucmVwZWF0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9u
IHRlc3QoKSB7CisKK3JldHVybiB0eXBlb2YgU3RyaW5nLnByb3RvdHlwZS5yZXBlYXQgPT09ICdm
dW5jdGlvbicKKyAgJiYgImZvbyIucmVwZWF0KDMpID09PSAiZm9vZm9vZm9vIjsKKyAgICAgIAor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3RyaW5nLnByb3RvdHlwZV9t
ZXRob2RzX1N0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJp
bmcucHJvdG90eXBlLnN0YXJ0c1dpdGguanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90
eXBlLnN0YXJ0c1dpdGguanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rp
b24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGgg
PT09ICdmdW5jdGlvbicKKyAgJiYgImZvb2JhciIuc3RhcnRzV2l0aCgiZm9vIik7CisgICAgICAK
K30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOwor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVf
bWV0aG9kc19TdHJpbmcucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0uanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBlX21ldGhv
ZHNfU3RyaW5nLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBlX21ldGhvZHNf
U3RyaW5nLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBTdHJpbmcucHJv
dG90eXBlW1N5bWJvbC5pdGVyYXRvcl0gPT09ICdmdW5jdGlvbic7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19T
dHJpbmdfaXRlcmF0b3JfcHJvdG90eXBlX2NoYWluLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2RzX1N0cmluZ19p
dGVyYXRvcl9wcm90b3R5cGVfY2hhaW4uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJpbmdfaXRlcmF0
b3JfcHJvdG90eXBlX2NoYWluLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAKK2Z1
bmN0aW9uIHRlc3QoKSB7CisKKy8vIEl0ZXJhdG9yIGluc3RhbmNlCit2YXIgaXRlcmF0b3IgPSAn
J1tTeW1ib2wuaXRlcmF0b3JdKCk7CisvLyAlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlCit2YXIg
cHJvdG8xID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGl0ZXJhdG9yKTsKKy8vICVJdGVyYXRvclBy
b3RvdHlwZSUKK3ZhciBwcm90bzIgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8xKTsKKwor
cmV0dXJuIHByb3RvMi5oYXNPd25Qcm9wZXJ0eShTeW1ib2wuaXRlcmF0b3IpICYmCisgICFwcm90
bzEgICAgLmhhc093blByb3BlcnR5KFN5bWJvbC5pdGVyYXRvcikgJiYKKyAgIWl0ZXJhdG9yICAu
aGFzT3duUHJvcGVydHkoU3ltYm9sLml0ZXJhdG9yKSAmJgorICBpdGVyYXRvcltTeW1ib2wuaXRl
cmF0b3JdKCkgPT09IGl0ZXJhdG9yOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRo
cm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9TdHJpbmdfc3RhdGljX21ldGhvZHNfU3RyaW5nLmZyb21Db2RlUG9pbnQu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmdf
c3RhdGljX21ldGhvZHNfU3RyaW5nLmZyb21Db2RlUG9pbnQuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZ19zdGF0aWNfbWV0aG9kc19TdHJp
bmcuZnJvbUNvZGVQb2ludC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0
aW9uIHRlc3QoKSB7CisKK3JldHVybiB0eXBlb2YgU3RyaW5nLmZyb21Db2RlUG9pbnQgPT09ICdm
dW5jdGlvbic7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9y
KCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L1N0cmluZ19zdGF0aWNfbWV0aG9kc19TdHJpbmcucmF3LmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3RyaW5nX3N0YXRpY19tZXRob2RzX1N0cmluZy5y
YXcuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N0
cmluZ19zdGF0aWNfbWV0aG9kc19TdHJpbmcucmF3LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBTdHJpbmcucmF3ID09
PSAnZnVuY3Rpb24nOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBF
cnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9TeW1ib2xfSlNPTi5zdHJpbmdpZnlfaWdub3Jlc19zeW1ib2xzLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3ltYm9sX0pTT04uc3RyaW5naWZ5
X2lnbm9yZXNfc3ltYm9scy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvU3ltYm9sX0pTT04uc3RyaW5naWZ5X2lnbm9yZXNfc3ltYm9scy5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgb2Jq
ZWN0ID0ge2ZvbzogU3ltYm9sKCl9Oworb2JqZWN0W1N5bWJvbCgpXSA9IDE7Cit2YXIgYXJyYXkg
PSBbU3ltYm9sKCldOworcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iamVjdCkgPT09ICd7fScgJiYg
SlNPTi5zdHJpbmdpZnkoYXJyYXkpID09PSAnW251bGxdJyAmJiBKU09OLnN0cmluZ2lmeShTeW1i
b2woKSkgPT09IHVuZGVmaW5lZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvU3ltYm9sX09iamVjdC5kZWZpbmVQcm9wZXJ0eV9zdXBwb3J0LmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3ltYm9sX09iamVjdC5k
ZWZpbmVQcm9wZXJ0eV9zdXBwb3J0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9TeW1ib2xfT2JqZWN0LmRlZmluZVByb3BlcnR5X3N1cHBvcnQuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFy
IG9iamVjdCA9IHt9OwordmFyIHN5bWJvbCA9IFN5bWJvbCgpOwordmFyIHZhbHVlID0ge307CisK
K2lmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsKKyAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9i
amVjdCwgc3ltYm9sLCB7IHZhbHVlOiB2YWx1ZSB9KTsKKyAgcmV0dXJuIG9iamVjdFtzeW1ib2xd
ID09PSB2YWx1ZTsKK30KKworcmV0dXJuIHBhc3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3ltYm9sX09iamVjdHN5bWJvbC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N5bWJvbF9PYmplY3RzeW1ib2wu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N5bWJv
bF9PYmplY3RzeW1ib2wuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rp
b24gdGVzdCgpIHsKKwordmFyIHN5bWJvbCA9IFN5bWJvbCgpOwordmFyIHN5bWJvbE9iamVjdCA9
IE9iamVjdChzeW1ib2wpOworCityZXR1cm4gdHlwZW9mIHN5bWJvbE9iamVjdCA9PT0gIm9iamVj
dCIgJiYKKyAgc3ltYm9sT2JqZWN0ID09IHN5bWJvbCAmJgorICBzeW1ib2xPYmplY3QgIT09IHN5
bWJvbCAmJgorICBzeW1ib2xPYmplY3QudmFsdWVPZigpID09PSBzeW1ib2w7CisgICAgICAKK30K
KworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N5bWJvbF9iYXNpY19mdW5jdGlv
bmFsaXR5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
U3ltYm9sX2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N5bWJvbF9iYXNpY19mdW5jdGlvbmFsaXR5LmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBvYmpl
Y3QgPSB7fTsKK3ZhciBzeW1ib2wgPSBTeW1ib2woKTsKK3ZhciB2YWx1ZSA9IHt9Oworb2JqZWN0
W3N5bWJvbF0gPSB2YWx1ZTsKK3JldHVybiBvYmplY3Rbc3ltYm9sXSA9PT0gdmFsdWU7CisgICAg
ICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIp
OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N5bWJvbF9jYW5fY29u
dmVydF93aXRoX1N0cmluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L1N5bWJvbF9jYW5fY29udmVydF93aXRoX1N0cmluZy5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3ltYm9sX2Nhbl9jb252ZXJ0X3dp
dGhfU3RyaW5nLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVz
dCgpIHsKKworcmV0dXJuIFN0cmluZyhTeW1ib2woImZvbyIpKSA9PT0gIlN5bWJvbChmb28pIjsK
KyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFp
bGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3ltYm9sX2Nh
bm5vdF9jb2VyY2VfdG9fc3RyaW5nX29yX251bWJlci5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N5bWJvbF9jYW5ub3RfY29lcmNlX3RvX3N0cmluZ19v
cl9udW1iZXIuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L1N5bWJvbF9jYW5ub3RfY29lcmNlX3RvX3N0cmluZ19vcl9udW1iZXIuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwyMiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIHN5bWJvbCA9
IFN5bWJvbCgpOworCit0cnkgeworICBzeW1ib2wgKyAiIjsKKyAgcmV0dXJuIGZhbHNlOworfQor
Y2F0Y2goZSkge30KKwordHJ5IHsKKyAgc3ltYm9sICsgMDsKKyAgcmV0dXJuIGZhbHNlOworfSBj
YXRjaChlKSB7fQorCityZXR1cm4gdHJ1ZTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvU3ltYm9sX2dsb2JhbF9zeW1ib2xfcmVnaXN0cnkuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TeW1ib2xfZ2xvYmFsX3N5
bWJvbF9yZWdpc3RyeS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvU3ltYm9sX2dsb2JhbF9zeW1ib2xfcmVnaXN0cnkuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIHN5bWJvbCA9IFN5bWJv
bC5mb3IoJ2ZvbycpOworcmV0dXJuIFN5bWJvbC5mb3IoJ2ZvbycpID09PSBzeW1ib2wgJiYKKyAg
IFN5bWJvbC5rZXlGb3Ioc3ltYm9sKSA9PT0gJ2Zvbyc7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N5bWJvbF9uZXdfU3ltYm9sX3Rocm93cy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N5bWJvbF9uZXdfU3lt
Ym9sX3Rocm93cy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvU3ltYm9sX25ld19TeW1ib2xfdGhyb3dzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTQgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBzeW1ib2wgPSBTeW1ib2woKTsKK3Ry
eSB7CisgIG5ldyBTeW1ib2woKTsKK30gY2F0Y2goZSkgeworICByZXR1cm4gdHJ1ZTsKK30KKyAg
ICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVk
Iik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3ltYm9sX3N5bWJv
bF9rZXlzX2FyZV9oaWRkZW5fdG9fcHJlLUVTNl9jb2RlLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3ltYm9sX3N5bWJvbF9rZXlzX2FyZV9oaWRkZW5f
dG9fcHJlLUVTNl9jb2RlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9TeW1ib2xfc3ltYm9sX2tleXNfYXJlX2hpZGRlbl90b19wcmUtRVM2X2NvZGUu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwor
dmFyIG9iamVjdCA9IHt9OwordmFyIHN5bWJvbCA9IFN5bWJvbCgpOworb2JqZWN0W3N5bWJvbF0g
PSAxOworCitmb3IgKHZhciB4IGluIG9iamVjdCl7fQordmFyIHBhc3NlZCA9ICF4OworCitpZiAo
T2JqZWN0LmtleXMgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMpIHsKKyAgcGFzc2VkICY9
IE9iamVjdC5rZXlzKG9iamVjdCkubGVuZ3RoID09PSAwCisgICAgJiYgT2JqZWN0LmdldE93blBy
b3BlcnR5TmFtZXMob2JqZWN0KS5sZW5ndGggPT09IDA7Cit9CisKK3JldHVybiBwYXNzZWQ7Cisg
ICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxl
ZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N5bWJvbF90eXBl
b2Zfc3VwcG9ydC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L1N5bWJvbF90eXBlb2Zfc3VwcG9ydC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvU3ltYm9sX3R5cGVvZl9zdXBwb3J0LmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBT
eW1ib2woKSA9PT0gInN5bWJvbCI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhy
b3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L1VuaWNvZGVfY29kZV9wb2ludF9lc2NhcGVzX2luX2lkZW50aWZpZXJzLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvVW5pY29kZV9j
b2RlX3BvaW50X2VzY2FwZXNfaW5faWRlbnRpZmllcnMuanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1VuaWNvZGVfY29kZV9wb2ludF9lc2NhcGVzX2lu
X2lkZW50aWZpZXJzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9u
IHRlc3QoKSB7CisKK3ZhciBcdXsxMDJDMH0gPSB7IFx1ezEwMkMwfSA6IDIgfTsKK3JldHVybiBc
dXsxMDJDMH1bJ1x1ZDgwMFx1ZGVjMCddID09PSAyOworICAgICAgCit9CisKK2lmICghdGVzdCgp
KQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9Vbmljb2RlX2NvZGVfcG9pbnRfZXNjYXBlc19pbl9zdHJp
bmdzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvVW5p
Y29kZV9jb2RlX3BvaW50X2VzY2FwZXNfaW5fc3RyaW5ncy5qcwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvVW5pY29kZV9jb2RlX3BvaW50X2VzY2FwZXNf
aW5fc3RyaW5ncy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRl
c3QoKSB7CisKK3JldHVybiAnXHV7MWQzMDZ9JyA9PSAnXHVkODM0XHVkZjA2JzsKKyAgICAgIAor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvV2Vha01hcF9XZWFrTWFwLnBy
b3RvdHlwZS5kZWxldGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9XZWFrTWFwX1dlYWtNYXAucHJvdG90eXBlLmRlbGV0ZS5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvV2Vha01hcF9XZWFrTWFwLnByb3Rv
dHlwZS5kZWxldGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIFdlYWtNYXAucHJvdG90eXBlLmRlbGV0ZSA9PT0gImZ1
bmN0aW9uIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3Io
IlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
V2Vha01hcF9XZWFrTWFwLnByb3RvdHlwZS5zZXRfcmV0dXJuc190aGlzLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvV2Vha01hcF9XZWFrTWFwLnByb3Rv
dHlwZS5zZXRfcmV0dXJuc190aGlzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9XZWFrTWFwX1dlYWtNYXAucHJvdG90eXBlLnNldF9yZXR1cm5zX3Ro
aXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorZnVuY3Rpb24gdGVzdCgpIHsK
KwordmFyIHdlYWttYXAgPSBuZXcgV2Vha01hcCgpOwordmFyIGtleSA9IHt9OworcmV0dXJuIHdl
YWttYXAuc2V0KGtleSwgMCkgPT09IHdlYWttYXA7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkp
CisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L1dlYWtNYXBfYmFzaWNfZnVuY3Rpb25hbGl0eS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1dlYWtNYXBfYmFzaWNf
ZnVuY3Rpb25hbGl0eS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvV2Vha01hcF9iYXNpY19mdW5jdGlvbmFsaXR5LmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTQgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBrZXkgPSB7fTsKK3ZhciB3
ZWFrbWFwID0gbmV3IFdlYWtNYXAoKTsKKword2Vha21hcC5zZXQoa2V5LCAxMjMpOworCityZXR1
cm4gd2Vha21hcC5oYXMoa2V5KSAmJiB3ZWFrbWFwLmdldChrZXkpID09PSAxMjM7CisgICAgICAK
K30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOwor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1dlYWtNYXBfY29uc3RydWN0
b3JfYWNjZXB0c19udWxsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvV2Vha01hcF9jb25zdHJ1Y3Rvcl9hY2NlcHRzX251bGwuanMJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1dlYWtNYXBfY29uc3RydWN0b3Jf
YWNjZXB0c19udWxsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9u
IHRlc3QoKSB7CisKK25ldyBXZWFrTWFwKG51bGwpOworcmV0dXJuIHRydWU7CisgICAgICAKK30K
KworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1dlYWtNYXBfY29uc3RydWN0b3Jf
YXJndW1lbnRzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvV2Vha01hcF9jb25zdHJ1Y3Rvcl9hcmd1bWVudHMuanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1dlYWtNYXBfY29uc3RydWN0b3JfYXJndW1lbnRz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTQgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisK
K3ZhciBrZXkxID0ge307Cit2YXIga2V5MiA9IHt9OwordmFyIHdlYWttYXAgPSBuZXcgV2Vha01h
cChbW2tleTEsIDEyM10sIFtrZXkyLCA0NTZdXSk7CisKK3JldHVybiB3ZWFrbWFwLmhhcyhrZXkx
KSAmJiB3ZWFrbWFwLmdldChrZXkxKSA9PT0gMTIzICYmCisgICAgICAgd2Vha21hcC5oYXMoa2V5
MikgJiYgd2Vha21hcC5nZXQoa2V5MikgPT09IDQ1NjsKKyAgICAgIAorfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvV2Vha01hcF9jb25zdHJ1Y3Rvcl9pbnZva2VzX3NldC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1dlYWtNYXBf
Y29uc3RydWN0b3JfaW52b2tlc19zZXQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1dlYWtNYXBfY29uc3RydWN0b3JfaW52b2tlc19zZXQuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIHBh
c3NlZCA9IGZhbHNlOwordmFyIF9zZXQgPSBXZWFrTWFwLnByb3RvdHlwZS5zZXQ7CisKK1dlYWtN
YXAucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uKGssIHYpIHsKKyAgcGFzc2VkID0gdHJ1ZTsKK307
CisKK25ldyBXZWFrTWFwKFsgW3sgfSwgNDJdIF0pOworV2Vha01hcC5wcm90b3R5cGUuc2V0ID0g
X3NldDsKKworcmV0dXJuIHBhc3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0
aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvV2Vha01hcF9jb25zdHJ1Y3Rvcl9yZXF1aXJlc19uZXcuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9XZWFrTWFwX2NvbnN0cnVj
dG9yX3JlcXVpcmVzX25ldy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvV2Vha01hcF9jb25zdHJ1Y3Rvcl9yZXF1aXJlc19uZXcuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworbmV3IFdlYWtNYXAo
KTsKK3RyeSB7CisgIFdlYWtNYXAoKTsKKyAgcmV0dXJuIGZhbHNlOworfSBjYXRjaChlKSB7Cisg
IHJldHVybiB0cnVlOworfQorICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5l
dyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9XZWFrTWFwX2Zyb3plbl9vYmplY3RzX2FzX2tleXMuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9XZWFrTWFwX2Zyb3plbl9vYmplY3RzX2Fz
X2tleXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L1dlYWtNYXBfZnJvemVuX29iamVjdHNfYXNfa2V5cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDEyIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgZiA9IE9iamVjdC5mcmVlemUoe30p
OwordmFyIG0gPSBuZXcgV2Vha01hcDsKK20uc2V0KGYsIDQyKTsKK3JldHVybiBtLmdldChmKSA9
PT0gNDI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJU
ZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1dl
YWtNYXBfaXRlcmF0b3JfY2xvc2luZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1dlYWtNYXBfaXRlcmF0b3JfY2xvc2luZy5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvV2Vha01hcF9pdGVyYXRvcl9jbG9z
aW5nLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7
CisKK3ZhciBjbG9zZWQgPSBmYWxzZTsKK3ZhciBpdGVyID0gZ2xvYmFsLl9fY3JlYXRlSXRlcmFi
bGVPYmplY3QoWzEsIDIsIDNdLCB7CisgICdyZXR1cm4nOiBmdW5jdGlvbigpeyBjbG9zZWQgPSB0
cnVlOyByZXR1cm4ge307IH0KK30pOwordHJ5IHsKKyAgbmV3IFdlYWtNYXAoaXRlcik7Cit9IGNh
dGNoKGUpe30KK3JldHVybiBjbG9zZWQ7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L1dlYWtNYXBfbm9fV2Vha01hcC5wcm90b3R5cGUuY2xlYXJfbWV0aG9k
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvV2Vha01h
cF9ub19XZWFrTWFwLnByb3RvdHlwZS5jbGVhcl9tZXRob2QuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1dlYWtNYXBfbm9fV2Vha01hcC5wcm90b3R5
cGUuY2xlYXJfbWV0aG9kLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0
aW9uIHRlc3QoKSB7CisKK2lmICghKCJjbGVhciIgaW4gV2Vha01hcC5wcm90b3R5cGUpKSB7Cisg
IHJldHVybiB0cnVlOworfQordmFyIG0gPSBuZXcgV2Vha01hcCgpOwordmFyIGtleSA9IHt9Owor
bS5zZXQoa2V5LCAyKTsKK20uY2xlYXIoKTsKK3JldHVybiBtLmhhcyhrZXkpOworICAgICAgCit9
CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9XZWFrU2V0X1dlYWtTZXQucHJv
dG90eXBlLmFkZF9yZXR1cm5zX3RoaXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9XZWFrU2V0X1dlYWtTZXQucHJvdG90eXBlLmFkZF9yZXR1cm5zX3Ro
aXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1dl
YWtTZXRfV2Vha1NldC5wcm90b3R5cGUuYWRkX3JldHVybnNfdGhpcy5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgd2Vha3NldCA9IG5l
dyBXZWFrU2V0KCk7Cit2YXIgb2JqID0ge307CityZXR1cm4gd2Vha3NldC5hZGQob2JqKSA9PT0g
d2Vha3NldDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3Io
IlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
V2Vha1NldF9XZWFrU2V0LnByb3RvdHlwZS5kZWxldGUuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9XZWFrU2V0X1dlYWtTZXQucHJvdG90eXBlLmRlbGV0
ZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvV2Vh
a1NldF9XZWFrU2V0LnByb3RvdHlwZS5kZWxldGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw5IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIFdlYWtTZXQucHJvdG90
eXBlLmRlbGV0ZSA9PT0gImZ1bmN0aW9uIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvV2Vha1NldF9iYXNpY19mdW5jdGlvbmFsaXR5LmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvV2Vha1NldF9iYXNpY19mdW5j
dGlvbmFsaXR5LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9XZWFrU2V0X2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxNSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIG9iajEgPSB7fTsKK3ZhciB3ZWFr
c2V0ID0gbmV3IFdlYWtTZXQoKTsKKword2Vha3NldC5hZGQob2JqMSk7Cit3ZWFrc2V0LmFkZChv
YmoxKTsKKworcmV0dXJuIHdlYWtzZXQuaGFzKG9iajEpOworICAgICAgCit9CisKK2lmICghdGVz
dCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9XZWFrU2V0X2NvbnN0cnVjdG9yX2FjY2VwdHNfbnVs
bC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1dlYWtT
ZXRfY29uc3RydWN0b3JfYWNjZXB0c19udWxsLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9XZWFrU2V0X2NvbnN0cnVjdG9yX2FjY2VwdHNfbnVsbC5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitu
ZXcgV2Vha1NldChudWxsKTsKK3JldHVybiB0cnVlOworICAgICAgCit9CisKK2lmICghdGVzdCgp
KQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9XZWFrU2V0X2NvbnN0cnVjdG9yX2FyZ3VtZW50cy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1dlYWtTZXRfY29u
c3RydWN0b3JfYXJndW1lbnRzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9XZWFrU2V0X2NvbnN0cnVjdG9yX2FyZ3VtZW50cy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgb2JqMSA9IHt9
LCBvYmoyID0ge307Cit2YXIgd2Vha3NldCA9IG5ldyBXZWFrU2V0KFtvYmoxLCBvYmoyXSk7CisK
K3JldHVybiB3ZWFrc2V0LmhhcyhvYmoxKSAmJiB3ZWFrc2V0LmhhcyhvYmoyKTsKKyAgICAgIAor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvV2Vha1NldF9jb25zdHJ1Y3Rv
cl9pbnZva2VzX2FkZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L1dlYWtTZXRfY29uc3RydWN0b3JfaW52b2tlc19hZGQuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1dlYWtTZXRfY29uc3RydWN0b3JfaW52
b2tlc19hZGQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gdGVz
dCgpIHsKKwordmFyIHBhc3NlZCA9IGZhbHNlOwordmFyIF9hZGQgPSBXZWFrU2V0LnByb3RvdHlw
ZS5hZGQ7CisKK1dlYWtTZXQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uKHYpIHsKKyAgcGFzc2Vk
ID0gdHJ1ZTsKK307CisKK25ldyBXZWFrU2V0KFsgeyB9IF0pOworV2Vha1NldC5wcm90b3R5cGUu
YWRkID0gX2FkZDsKKworcmV0dXJuIHBhc3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvV2Vha1NldF9jb25zdHJ1Y3Rvcl9yZXF1aXJlc19uZXcuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9XZWFrU2V0X2Nv
bnN0cnVjdG9yX3JlcXVpcmVzX25ldy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvV2Vha1NldF9jb25zdHJ1Y3Rvcl9yZXF1aXJlc19uZXcuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworbmV3IFdl
YWtTZXQoKTsKK3RyeSB7CisgIFdlYWtTZXQoKTsKKyAgcmV0dXJuIGZhbHNlOworfSBjYXRjaChl
KSB7CisgIHJldHVybiB0cnVlOworfQorICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRo
cm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9XZWFrU2V0X2l0ZXJhdG9yX2Nsb3NpbmcuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9XZWFrU2V0X2l0ZXJhdG9yX2Nsb3Npbmcu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1dlYWtT
ZXRfaXRlcmF0b3JfY2xvc2luZy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACitm
dW5jdGlvbiB0ZXN0KCkgeworCit2YXIgY2xvc2VkID0gZmFsc2U7Cit2YXIgaXRlciA9IGdsb2Jh
bC5fX2NyZWF0ZUl0ZXJhYmxlT2JqZWN0KFsxLCAyLCAzXSwgeworICAncmV0dXJuJzogZnVuY3Rp
b24oKXsgY2xvc2VkID0gdHJ1ZTsgcmV0dXJuIHt9OyB9Cit9KTsKK3RyeSB7CisgIG5ldyBXZWFr
U2V0KGl0ZXIpOworfSBjYXRjaChlKXt9CityZXR1cm4gY2xvc2VkOworICAgICAgCit9CisKK2lm
ICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9XZWFrU2V0X25vX1dlYWtTZXQucHJvdG90
eXBlLmNsZWFyX21ldGhvZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L1dlYWtTZXRfbm9fV2Vha1NldC5wcm90b3R5cGUuY2xlYXJfbWV0aG9kLmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9XZWFrU2V0X25v
X1dlYWtTZXQucHJvdG90eXBlLmNsZWFyX21ldGhvZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDE2IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitpZiAoISgiY2xlYXIiIGluIFdlYWtTZXQu
cHJvdG90eXBlKSkgeworICByZXR1cm4gdHJ1ZTsKK30KK3ZhciBzID0gbmV3IFdlYWtTZXQoKTsK
K3ZhciBrZXkgPSB7fTsKK3MuYWRkKGtleSk7CitzLmNsZWFyKCk7CityZXR1cm4gcy5oYXMoa2V5
KTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3Qg
ZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvX19wcm90
b19fX2luX29iamVjdF9saXRlcmFsc19iYXNpY19zdXBwb3J0LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvX19wcm90b19fX2luX29iamVjdF9saXRlcmFs
c19iYXNpY19zdXBwb3J0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9fX3Byb3RvX19faW5fb2JqZWN0X2xpdGVyYWxzX2Jhc2ljX3N1cHBvcnQuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0
dXJuIHsgX19wcm90b19fIDogW10gfSBpbnN0YW5jZW9mIEFycmF5CisgICYmICEoeyBfX3Byb3Rv
X18gOiBudWxsIH0gaW5zdGFuY2VvZiBPYmplY3QpOworICAgICAgCit9CisKK2lmICghdGVzdCgp
KQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9fX3Byb3RvX19faW5fb2JqZWN0X2xpdGVyYWxzX211bHRp
cGxlX19fcHJvdG9fX19pc19hbl9lcnJvci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L19fcHJvdG9fX19pbl9vYmplY3RfbGl0ZXJhbHNfbXVsdGlwbGVf
X19wcm90b19fX2lzX2FuX2Vycm9yLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9fX3Byb3RvX19faW5fb2JqZWN0X2xpdGVyYWxzX211bHRpcGxlX19f
cHJvdG9fX19pc19hbl9lcnJvci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0IEBACitm
dW5jdGlvbiB0ZXN0KCkgeworCit0cnkgeworICBldmFsKCIoeyBfX3Byb3RvX18gOiBbXSwgX19w
cm90b19fOiB7fSB9KSIpOworfQorY2F0Y2goZSkgeworICByZXR1cm4gdHJ1ZTsKK30KKyAgICAg
IAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvX19wcm90b19fX2luX29i
amVjdF9saXRlcmFsc19ub3RfYV9jb21wdXRlZF9wcm9wZXJ0eS5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L19fcHJvdG9fX19pbl9vYmplY3RfbGl0ZXJh
bHNfbm90X2FfY29tcHV0ZWRfcHJvcGVydHkuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L19fcHJvdG9fX19pbl9vYmplY3RfbGl0ZXJhbHNfbm90X2Ff
Y29tcHV0ZWRfcHJvcGVydHkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKworaWYgKCEoeyBfX3Byb3RvX18gOiBbXSB9IGluc3RhbmNlb2YgQXJy
YXkpKSB7CisgIHJldHVybiBmYWxzZTsKK30KK3ZhciBhID0gIl9fcHJvdG9fXyI7CityZXR1cm4g
ISh7IFthXSA6IFtdIH0gaW5zdGFuY2VvZiBBcnJheSk7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L19fcHJvdG9fX19pbl9vYmplY3RfbGl0ZXJhbHNfbm90
X2Ffc2hvcnRoYW5kX21ldGhvZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L19fcHJvdG9fX19pbl9vYmplY3RfbGl0ZXJhbHNfbm90X2Ffc2hvcnRoYW5k
X21ldGhvZC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvX19wcm90b19fX2luX29iamVjdF9saXRlcmFsc19ub3RfYV9zaG9ydGhhbmRfbWV0aG9kLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK2lm
ICghKHsgX19wcm90b19fIDogW10gfSBpbnN0YW5jZW9mIEFycmF5KSkgeworICByZXR1cm4gZmFs
c2U7Cit9CityZXR1cm4gISh7IF9fcHJvdG9fXygpe30gfSBpbnN0YW5jZW9mIEZ1bmN0aW9uKTsK
KyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFp
bGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvX19wcm90b19f
X2luX29iamVjdF9saXRlcmFsc19ub3RfYV9zaG9ydGhhbmRfcHJvcGVydHkuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9fX3Byb3RvX19faW5fb2JqZWN0
X2xpdGVyYWxzX25vdF9hX3Nob3J0aGFuZF9wcm9wZXJ0eS5qcwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvX19wcm90b19fX2luX29iamVjdF9saXRlcmFs
c19ub3RfYV9zaG9ydGhhbmRfcHJvcGVydHkuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworaWYgKCEoeyBfX3Byb3RvX18gOiBbXSB9IGluc3Rh
bmNlb2YgQXJyYXkpKSB7CisgIHJldHVybiBmYWxzZTsKK30KK3ZhciBfX3Byb3RvX18gPSBbXTsK
K3JldHVybiAhKHsgX19wcm90b19fIH0gaW5zdGFuY2VvZiBBcnJheSk7CisgICAgICAKK30KKwor
aWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Fycm93X2Z1bmN0aW9uc18wX3BhcmFt
ZXRlcnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9h
cnJvd19mdW5jdGlvbnNfMF9wYXJhbWV0ZXJzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9hcnJvd19mdW5jdGlvbnNfMF9wYXJhbWV0ZXJzLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJu
ICgoKSA9PiA1KSgpID09PSA1OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93
IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9hcnJvd19mdW5jdGlvbnNfMV9wYXJhbWV0ZXJfbm9fYnJhY2tldHMuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9hcnJvd19mdW5jdGlv
bnNfMV9wYXJhbWV0ZXJfbm9fYnJhY2tldHMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Fycm93X2Z1bmN0aW9uc18xX3BhcmFtZXRlcl9ub19icmFj
a2V0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkg
eworCit2YXIgYiA9IHggPT4geCArICJmb28iOworcmV0dXJuIChiKCJmZWUgZmllIGZvZSAiKSA9
PT0gImZlZSBmaWUgZm9lIGZvbyIpOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRo
cm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9hcnJvd19mdW5jdGlvbnNfY2FudF9iZV9ib3VuZF9jYW5fYmVfY3Vycmll
ZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Fycm93
X2Z1bmN0aW9uc19jYW50X2JlX2JvdW5kX2Nhbl9iZV9jdXJyaWVkLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9hcnJvd19mdW5jdGlvbnNfY2FudF9i
ZV9ib3VuZF9jYW5fYmVfY3VycmllZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBA
CitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgZCA9IHsgeCA6ICJiYXIiLCB5IDogZnVuY3Rpb24o
KSB7IHJldHVybiB6ID0+IHRoaXMueCArIHo7IH19OwordmFyIGUgPSB7IHggOiAiYmF6IiB9Owor
cmV0dXJuIGQueSgpLmJpbmQoZSwgImxleSIpKCkgPT09ICJiYXJsZXkiOworICAgICAgCit9CisK
K2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9hcnJvd19mdW5jdGlvbnNfY29ycmVj
dF9wcmVjZWRlbmNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvYXJyb3dfZnVuY3Rpb25zX2NvcnJlY3RfcHJlY2VkZW5jZS5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvYXJyb3dfZnVuY3Rpb25zX2NvcnJl
Y3RfcHJlY2VkZW5jZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlv
biB0ZXN0KCkgeworCityZXR1cm4gKCgpID0+IHsKKyAgdHJ5IHsgRnVuY3Rpb24oIjAgfHwgKCkg
PT4gMiIpKCk7IH0gY2F0Y2goZSkgeyByZXR1cm4gdHJ1ZTsgfQorfSkoKTsKKyAgICAgIAorfQor
CitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvYXJyb3dfZnVuY3Rpb25zX2xleGlj
YWxfYXJndW1lbnRzX2JpbmRpbmcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9hcnJvd19mdW5jdGlvbnNfbGV4aWNhbF9hcmd1bWVudHNfYmluZGluZy5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvYXJyb3df
ZnVuY3Rpb25zX2xleGljYWxfYXJndW1lbnRzX2JpbmRpbmcuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGYgPSAoZnVuY3Rpb24oKSB7
IHJldHVybiB6ID0+IGFyZ3VtZW50c1swXTsgfSg1KSk7CityZXR1cm4gZig2KSA9PT0gNTsKKyAg
ICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVk
Iik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvYXJyb3dfZnVuY3Rp
b25zX2xleGljYWxfbmV3LnRhcmdldF9iaW5kaW5nLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvYXJyb3dfZnVuY3Rpb25zX2xleGljYWxfbmV3LnRhcmdl
dF9iaW5kaW5nLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9hcnJvd19mdW5jdGlvbnNfbGV4aWNhbF9uZXcudGFyZ2V0X2JpbmRpbmcuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworZnVuY3Rpb24g
QygpIHsKKyAgcmV0dXJuIHggPT4gbmV3LnRhcmdldDsKK30KK3JldHVybiBuZXcgQygpKCkgPT09
IEMgJiYgQygpKCkgPT09IHVuZGVmaW5lZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvYXJyb3dfZnVuY3Rpb25zX2xleGljYWxfc3VwZXJfYmluZGluZy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Fycm93X2Z1
bmN0aW9uc19sZXhpY2FsX3N1cGVyX2JpbmRpbmcuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Fycm93X2Z1bmN0aW9uc19sZXhpY2FsX3N1cGVyX2Jp
bmRpbmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMCBAQAorZnVuY3Rpb24gdGVzdCgp
IHsKKworY2xhc3MgQiB7CisgIHF1eCgpIHsKKyAgICByZXR1cm4gInF1dXgiOworICB9Cit9Citj
bGFzcyBDIGV4dGVuZHMgQiB7CisgIGJheigpIHsKKyAgICByZXR1cm4geCA9PiBzdXBlci5xdXgo
KTsKKyAgfQorfQordmFyIGFycm93ID0gbmV3IEMoKS5iYXooKTsKK3JldHVybiBhcnJvdygpID09
PSAicXV1eCI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9y
KCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L2Fycm93X2Z1bmN0aW9uc19sZXhpY2FsX3RoaXNfYmluZGluZy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Fycm93X2Z1bmN0aW9uc19sZXhpY2FsX3Ro
aXNfYmluZGluZy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvYXJyb3dfZnVuY3Rpb25zX2xleGljYWxfdGhpc19iaW5kaW5nLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBkID0geyB4IDog
ImJhciIsIHkgOiBmdW5jdGlvbigpIHsgcmV0dXJuIHogPT4gdGhpcy54ICsgejsgfX0ueSgpOwor
dmFyIGUgPSB7IHggOiAiYmF6IiwgeSA6IGQgfTsKK3JldHVybiBkKCJsZXkiKSA9PT0gImJhcmxl
eSIgJiYgZS55KCJsZXkiKSA9PT0gImJhcmxleSI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkp
CisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Fycm93X2Z1bmN0aW9uc19tdWx0aXBsZV9wYXJhbWV0ZXJz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvYXJyb3df
ZnVuY3Rpb25zX211bHRpcGxlX3BhcmFtZXRlcnMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Fycm93X2Z1bmN0aW9uc19tdWx0aXBsZV9wYXJhbWV0
ZXJzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7
CisKK3ZhciBjID0gKHYsIHcsIHgsIHksIHopID0+ICIiICsgdiArIHcgKyB4ICsgeSArIHo7City
ZXR1cm4gKGMoNiwgNSwgNCwgMywgMikgPT09ICI2NTQzMiIpOworICAgICAgCit9CisKK2lmICgh
dGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9hcnJvd19mdW5jdGlvbnNfbm9fbGluZV9icmVh
a19iZXR3ZWVuX3BhcmFtc19hbmRfY29kZV89X2NvZGUuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9hcnJvd19mdW5jdGlvbnNfbm9fbGluZV9icmVha19i
ZXR3ZWVuX3BhcmFtc19hbmRfY29kZV89X2NvZGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Fycm93X2Z1bmN0aW9uc19ub19saW5lX2JyZWFrX2Jl
dHdlZW5fcGFyYW1zX2FuZF9jb2RlXz1fY29kZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gKCgpID0+IHsKKyAgdHJ5IHsgRnVu
Y3Rpb24oInhcbiA9PiAyIikoKTsgfSBjYXRjaChlKSB7IHJldHVybiB0cnVlOyB9Cit9KSgpOwor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9hcnJvd19mdW5j
dGlvbnNfbm9fcHJvdG90eXBlX3Byb3BlcnR5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvYXJyb3dfZnVuY3Rpb25zX25vX3Byb3RvdHlwZV9wcm9wZXJ0
eS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvYXJy
b3dfZnVuY3Rpb25zX25vX3Byb3RvdHlwZV9wcm9wZXJ0eS5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgYSA9ICgpID0+IDU7CityZXR1
cm4gIWEuaGFzT3duUHJvcGVydHkoInByb3RvdHlwZSIpOworICAgICAgCit9CisKK2lmICghdGVz
dCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9hcnJvd19mdW5jdGlvbnNfdGhpc191bmNoYW5nZWRf
YnlfY2FsbF9vcl9hcHBseS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L2Fycm93X2Z1bmN0aW9uc190aGlzX3VuY2hhbmdlZF9ieV9jYWxsX29yX2FwcGx5
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9hcnJv
d19mdW5jdGlvbnNfdGhpc191bmNoYW5nZWRfYnlfY2FsbF9vcl9hcHBseS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgZCA9IHsgeCA6
ICJmb28iLCB5IDogZnVuY3Rpb24oKSB7IHJldHVybiAoKSA9PiB0aGlzLng7IH19OwordmFyIGUg
PSB7IHggOiAiYmFyIiB9OworcmV0dXJuIGQueSgpLmNhbGwoZSkgPT09ICJmb28iICYmIGQueSgp
LmFwcGx5KGUpID09PSAiZm9vIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvYmxvY2stbGV2ZWxfZnVuY3Rpb25fZGVjbGFyYXRpb24uanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9ibG9jay1sZXZlbF9mdW5jdGlv
bl9kZWNsYXJhdGlvbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvYmxvY2stbGV2ZWxfZnVuY3Rpb25fZGVjbGFyYXRpb24uanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxNCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworJ3VzZSBzdHJpY3QnOwor
ZnVuY3Rpb24gZigpIHsgcmV0dXJuIDE7IH0KK3sKKyAgZnVuY3Rpb24gZigpIHsgcmV0dXJuIDI7
IH0KK30KK3JldHVybiBmKCkgPT09IDE7CisgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvY2xhc3NfYWNjZXNzb3JfcHJvcGVydGllcy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2FjY2Vzc29yX3Byb3BlcnRpZXMu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNz
X2FjY2Vzc29yX3Byb3BlcnRpZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAor
ZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGJheiA9IGZhbHNlOworY2xhc3MgQyB7CisgIGdldCBm
b28oKSB7IHJldHVybiAiZm9vIjsgfQorICBzZXQgYmFyKHgpIHsgYmF6ID0geDsgfQorfQorbmV3
IEMoKS5iYXIgPSB0cnVlOworcmV0dXJuIG5ldyBDKCkuZm9vID09PSAiZm9vIiAmJiBiYXo7Cisg
ICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxl
ZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2Fub255
bW91c19jbGFzcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L2NsYXNzX2Fub255bW91c19jbGFzcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3NfYW5vbnltb3VzX2NsYXNzLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBj
bGFzcyB7fSA9PT0gImZ1bmN0aW9uIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0
aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvY2xhc3NfY2xhc3NfZXhwcmVzc2lvbi5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2NsYXNzX2V4cHJlc3Npb24uanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2Ns
YXNzX2V4cHJlc3Npb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlv
biB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIGNsYXNzIEMge30gPT09ICJmdW5jdGlvbiI7Cisg
ICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxl
ZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2NsYXNz
X25hbWVfaXNfbGV4aWNhbGx5X3Njb3BlZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2NsYXNzX25hbWVfaXNfbGV4aWNhbGx5X3Njb3BlZC5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3Nf
Y2xhc3NfbmFtZV9pc19sZXhpY2FsbHlfc2NvcGVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTQgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK2NsYXNzIEMgeworICBtZXRob2QoKSB7IHJl
dHVybiB0eXBlb2YgQyA9PT0gImZ1bmN0aW9uIjsgfQorfQordmFyIE0gPSBDLnByb3RvdHlwZS5t
ZXRob2Q7CitDID0gdW5kZWZpbmVkOworcmV0dXJuIEMgPT09IHVuZGVmaW5lZCAmJiBNKCk7Cisg
ICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxl
ZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2NsYXNz
X3N0YXRlbWVudC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L2NsYXNzX2NsYXNzX3N0YXRlbWVudC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3NfY2xhc3Nfc3RhdGVtZW50LmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK2NsYXNzIEMge30KK3Jl
dHVybiB0eXBlb2YgQyA9PT0gImZ1bmN0aW9uIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3NfY29tcHV0ZWRfYWNjZXNzb3JfcHJvcGVydGllcy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2Nv
bXB1dGVkX2FjY2Vzc29yX3Byb3BlcnRpZXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2NvbXB1dGVkX2FjY2Vzc29yX3Byb3BlcnRpZXMu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwor
dmFyIGdhcnBseSA9ICJmb28iLCBncmF1bHQgPSAiYmFyIiwgYmF6ID0gZmFsc2U7CitjbGFzcyBD
IHsKKyAgZ2V0IFtnYXJwbHldKCkgeyByZXR1cm4gImZvbyI7IH0KKyAgc2V0IFtncmF1bHRdKHgp
IHsgYmF6ID0geDsgfQorfQorbmV3IEMoKS5iYXIgPSB0cnVlOworcmV0dXJuIG5ldyBDKCkuZm9v
ID09PSAiZm9vIiAmJiBiYXo7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cg
bmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L2NsYXNzX2NvbXB1dGVkX25hbWVzX3RlbXBvcmFsX2RlYWRfem9uZS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2NvbXB1dGVk
X25hbWVzX3RlbXBvcmFsX2RlYWRfem9uZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3NfY29tcHV0ZWRfbmFtZXNfdGVtcG9yYWxfZGVhZF96
b25lLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7
CisKK3RyeSB7CisgIHZhciBCID0gY2xhc3MgQyB7CisgICAgW0NdKCl7fQorICB9Cit9IGNhdGNo
KGUpIHsKKyAgcmV0dXJuIHRydWU7Cit9CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L2NsYXNzX2NvbXB1dGVkX3Byb3RvdHlwZV9tZXRob2RzLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3NfY29tcHV0ZWRf
cHJvdG90eXBlX21ldGhvZHMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L2NsYXNzX2NvbXB1dGVkX3Byb3RvdHlwZV9tZXRob2RzLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTQgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBmb28gPSAi
bWV0aG9kIjsKK2NsYXNzIEMgeworICBbZm9vXSgpIHsgcmV0dXJuIDI7IH0KK30KK3JldHVybiB0
eXBlb2YgQy5wcm90b3R5cGUubWV0aG9kID09PSAiZnVuY3Rpb24iCisgICYmIG5ldyBDKCkubWV0
aG9kKCkgPT09IDI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVy
cm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L2NsYXNzX2NvbXB1dGVkX3N0YXRpY19hY2Nlc3Nvcl9wcm9wZXJ0aWVzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3NfY29tcHV0ZWRfc3Rh
dGljX2FjY2Vzc29yX3Byb3BlcnRpZXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2NvbXB1dGVkX3N0YXRpY19hY2Nlc3Nvcl9wcm9wZXJ0
aWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7
CisKK3ZhciBnYXJwbHkgPSAiZm9vIiwgZ3JhdWx0ID0gImJhciIsIGJheiA9IGZhbHNlOworY2xh
c3MgQyB7CisgIHN0YXRpYyBnZXQgW2dhcnBseV0oKSB7IHJldHVybiAiZm9vIjsgfQorICBzdGF0
aWMgc2V0IFtncmF1bHRdKHgpIHsgYmF6ID0geDsgfQorfQorQy5iYXIgPSB0cnVlOworcmV0dXJu
IEMuZm9vID09PSAiZm9vIiAmJiBiYXo7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L2NsYXNzX2NvbXB1dGVkX3N0YXRpY19tZXRob2RzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3NfY29tcHV0ZWRfc3Rh
dGljX21ldGhvZHMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L2NsYXNzX2NvbXB1dGVkX3N0YXRpY19tZXRob2RzLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTQgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBmb28gPSAibWV0aG9kIjsK
K2NsYXNzIEMgeworICBzdGF0aWMgW2Zvb10oKSB7IHJldHVybiAzOyB9Cit9CityZXR1cm4gdHlw
ZW9mIEMubWV0aG9kID09PSAiZnVuY3Rpb24iCisgICYmIEMubWV0aG9kKCkgPT09IDM7CisgICAg
ICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIp
OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2NvbnN0cnVj
dG9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY2xh
c3NfY29uc3RydWN0b3IuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L2NsYXNzX2NvbnN0cnVjdG9yLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK2NsYXNzIEMgeworICBjb25zdHJ1Y3RvcigpIHsg
dGhpcy54ID0gMTsgfQorfQorcmV0dXJuIEMucHJvdG90eXBlLmNvbnN0cnVjdG9yID09PSBDCisg
ICYmIG5ldyBDKCkueCA9PT0gMTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvY2xhc3NfY29uc3RydWN0b3JfcmVxdWlyZXNfbmV3LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3NfY29uc3RydWN0b3JfcmVx
dWlyZXNfbmV3LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9jbGFzc19jb25zdHJ1Y3Rvcl9yZXF1aXJlc19uZXcuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxNSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworY2xhc3MgQyB7fQordHJ5IHsKKyAg
QygpOworfQorY2F0Y2goZSkgeworICByZXR1cm4gdHJ1ZTsKK30KKyAgICAgIAorfQorCitpZiAo
IXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3NfZXh0ZW5kcy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2V4dGVuZHMuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2V4dGVu
ZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gdGVzdCgpIHsK
KworY2xhc3MgQiB7fQorY2xhc3MgQyBleHRlbmRzIEIge30KK3JldHVybiBuZXcgQygpIGluc3Rh
bmNlb2YgQgorICAmJiBCLmlzUHJvdG90eXBlT2YoQyk7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2V4dGVuZHNfZXhwcmVzc2lvbnMuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jbGFzc19leHRlbmRz
X2V4cHJlc3Npb25zLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9jbGFzc19leHRlbmRzX2V4cHJlc3Npb25zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTIgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBCOworY2xhc3MgQyBleHRlbmRz
IChCID0gY2xhc3Mge30pIHt9CityZXR1cm4gbmV3IEMoKSBpbnN0YW5jZW9mIEIKKyAgJiYgQi5p
c1Byb3RvdHlwZU9mKEMpOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5l
dyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9jbGFzc19leHRlbmRzX251bGwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9jbGFzc19leHRlbmRzX251bGwuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2V4dGVuZHNfbnVsbC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitjbGFz
cyBDIGV4dGVuZHMgbnVsbCB7CisgIGNvbnN0cnVjdG9yKCkgeyByZXR1cm4gT2JqZWN0LmNyZWF0
ZShudWxsKTsgfQorfQorcmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKEMp
CisgICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihDLnByb3RvdHlwZSkgPT09IG51bGw7CisgICAg
ICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIp
OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2ltcGxpY2l0
X3N0cmljdF9tb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvY2xhc3NfaW1wbGljaXRfc3RyaWN0X21vZGUuanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2ltcGxpY2l0X3N0cmljdF9tb2RlLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK2Ns
YXNzIEMgeworICBzdGF0aWMgbWV0aG9kKCkgeyByZXR1cm4gdGhpcyA9PT0gdW5kZWZpbmVkOyB9
Cit9CityZXR1cm4gKDAsQy5tZXRob2QpKCk7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisg
ICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2lzX2Jsb2NrLXNjb3BlZC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX2lzX2Jsb2NrLXNjb3BlZC5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3Nf
aXNfYmxvY2stc2NvcGVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0
aW9uIHRlc3QoKSB7CisKK2NsYXNzIEMge30KK3ZhciBjMSA9IEM7Cit7CisgIGNsYXNzIEMge30K
KyAgdmFyIGMyID0gQzsKK30KK3JldHVybiBDID09PSBjMTsKKyAgICAgIAorfQorCitpZiAoIXRl
c3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3NfbWV0aG9kc19hcmVudF9lbnVtZXJhYmxl
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3Nf
bWV0aG9kc19hcmVudF9lbnVtZXJhYmxlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9jbGFzc19tZXRob2RzX2FyZW50X2VudW1lcmFibGUuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworY2xhc3Mg
QyB7CisgIGZvbygpIHt9CisgIHN0YXRpYyBiYXIoKSB7fQorfQorcmV0dXJuICFDLnByb3RvdHlw
ZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgiZm9vIikgJiYgIUMucHJvcGVydHlJc0VudW1lcmFibGUo
ImJhciIpOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigi
VGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9j
bGFzc19uZXcudGFyZ2V0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvY2xhc3NfbmV3LnRhcmdldC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3NfbmV3LnRhcmdldC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDIxIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgcGFzc2VkID0gZmFsc2U7
CituZXcgZnVuY3Rpb24gZigpIHsKKyAgcGFzc2VkID0gbmV3LnRhcmdldCA9PT0gZjsKK30oKTsK
KworY2xhc3MgQSB7CisgIGNvbnN0cnVjdG9yKCkgeworICAgIHBhc3NlZCAmPSBuZXcudGFyZ2V0
ID09PSBCOworICB9Cit9CitjbGFzcyBCIGV4dGVuZHMgQSB7fQorbmV3IEIoKTsKK3JldHVybiBw
YXNzZWQ7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJU
ZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Ns
YXNzX3Byb3RvdHlwZV9tZXRob2RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvY2xhc3NfcHJvdG90eXBlX21ldGhvZHMuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX3Byb3RvdHlwZV9tZXRob2Rz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisK
K2NsYXNzIEMgeworICBtZXRob2QoKSB7IHJldHVybiAyOyB9Cit9CityZXR1cm4gdHlwZW9mIEMu
cHJvdG90eXBlLm1ldGhvZCA9PT0gImZ1bmN0aW9uIgorICAmJiBuZXcgQygpLm1ldGhvZCgpID09
PSAyOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVz
dCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jbGFz
c19zdGF0aWNfYWNjZXNzb3JfcHJvcGVydGllcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NsYXNzX3N0YXRpY19hY2Nlc3Nvcl9wcm9wZXJ0aWVzLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jbGFzc19z
dGF0aWNfYWNjZXNzb3JfcHJvcGVydGllcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgYmF6ID0gZmFsc2U7CitjbGFzcyBDIHsKKyAg
c3RhdGljIGdldCBmb28oKSB7IHJldHVybiAiZm9vIjsgfQorICBzdGF0aWMgc2V0IGJhcih4KSB7
IGJheiA9IHg7IH0KK30KK0MuYmFyID0gdHJ1ZTsKK3JldHVybiBDLmZvbyA9PT0gImZvbyIgJiYg
YmF6OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVz
dCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jbGFz
c19zdGF0aWNfbWV0aG9kcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L2NsYXNzX3N0YXRpY19tZXRob2RzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jbGFzc19zdGF0aWNfbWV0aG9kcy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitjbGFzcyBDIHsK
KyAgc3RhdGljIG1ldGhvZCgpIHsgcmV0dXJuIDM7IH0KK30KK3JldHVybiB0eXBlb2YgQy5tZXRo
b2QgPT09ICJmdW5jdGlvbiIKKyAgJiYgQy5tZXRob2QoKSA9PT0gMzsKKyAgICAgIAorfQorCitp
ZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY2xhc3Nfc3RyaW5nLWtleWVkX21ldGhv
ZHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jbGFz
c19zdHJpbmcta2V5ZWRfbWV0aG9kcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvY2xhc3Nfc3RyaW5nLWtleWVkX21ldGhvZHMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworY2xhc3MgQyB7Cisg
ICJmb28gYmFyIigpIHsgcmV0dXJuIDI7IH0KK30KK3JldHVybiB0eXBlb2YgQy5wcm90b3R5cGVb
ImZvbyBiYXIiXSA9PT0gImZ1bmN0aW9uIgorICAmJiBuZXcgQygpWyJmb28gYmFyIl0oKSA9PT0g
MjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3Qg
ZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY29uc3Rf
YmFzaWNfc3VwcG9ydC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L2NvbnN0X2Jhc2ljX3N1cHBvcnQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NvbnN0X2Jhc2ljX3N1cHBvcnQuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworY29uc3QgZm9vID0gMTIz
OworcmV0dXJuIChmb28gPT09IDEyMyk7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L2NvbnN0X2Jhc2ljX3N1cHBvcnRfc3RyaWN0X21vZGUuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jb25zdF9iYXNpY19zdXBw
b3J0X3N0cmljdF9tb2RlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9jb25zdF9iYXNpY19zdXBwb3J0X3N0cmljdF9tb2RlLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKyJ1c2Ugc3RyaWN0IjsK
K2NvbnN0IGZvbyA9IDEyMzsKK3JldHVybiAoZm9vID09PSAxMjMpOworICAgICAgCit9CisKK2lm
ICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jb25zdF9pc19ibG9jay1zY29wZWQuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jb25zdF9pc19i
bG9jay1zY29wZWQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L2NvbnN0X2lzX2Jsb2NrLXNjb3BlZC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitjb25zdCBiYXIgPSAxMjM7Cit7IGNvbnN0IGJh
ciA9IDQ1NjsgfQorcmV0dXJuIGJhciA9PT0gMTIzOworICAgICAgCit9CisKK2lmICghdGVzdCgp
KQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jb25zdF9pc19ibG9jay1zY29wZWRfc3RyaWN0X21vZGUu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jb25zdF9p
c19ibG9jay1zY29wZWRfc3RyaWN0X21vZGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L2NvbnN0X2lzX2Jsb2NrLXNjb3BlZF9zdHJpY3RfbW9kZS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCisn
dXNlIHN0cmljdCc7Citjb25zdCBiYXIgPSAxMjM7Cit7IGNvbnN0IGJhciA9IDQ1NjsgfQorcmV0
dXJuIGJhciA9PT0gMTIzOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5l
dyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9jb25zdF9yZWRlZmluaW5nX2FfY29uc3RfaXNfYW5fZXJyb3IuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jb25zdF9yZWRlZmluaW5nX2Ff
Y29uc3RfaXNfYW5fZXJyb3IuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L2NvbnN0X3JlZGVmaW5pbmdfYV9jb25zdF9pc19hbl9lcnJvci5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitjb25zdCBi
YXogPSAxOwordHJ5IHsKKyAgRnVuY3Rpb24oImNvbnN0IGZvbyA9IDE7IGZvbyA9IDI7IikoKTsK
K30gY2F0Y2goZSkgeworICByZXR1cm4gdHJ1ZTsKK30KKyAgICAgIAorfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY29uc3RfcmVkZWZpbmluZ19hX2NvbnN0X3N0cmljdF9t
b2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY29u
c3RfcmVkZWZpbmluZ19hX2NvbnN0X3N0cmljdF9tb2RlLmpzCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jb25zdF9yZWRlZmluaW5nX2FfY29uc3Rfc3Ry
aWN0X21vZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gdGVz
dCgpIHsKKworJ3VzZSBzdHJpY3QnOworY29uc3QgYmF6ID0gMTsKK3RyeSB7CisgIEZ1bmN0aW9u
KCIndXNlIHN0cmljdCc7IGNvbnN0IGZvbyA9IDE7IGZvbyA9IDI7IikoKTsKK30gY2F0Y2goZSkg
eworICByZXR1cm4gdHJ1ZTsKK30KKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvY29uc3RfdGVtcG9yYWxfZGVhZF96b25lLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY29uc3RfdGVtcG9yYWxfZGVhZF96b25lLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jb25zdF90
ZW1wb3JhbF9kZWFkX3pvbmUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKwordmFyIHBhc3NlZCA9IChmdW5jdGlvbigpeyB0cnkgeyBxdXg7IH0g
Y2F0Y2goZSkgeyByZXR1cm4gdHJ1ZTsgfX0oKSk7CitmdW5jdGlvbiBmbigpIHsgcGFzc2VkICY9
IHF1eCA9PT0gNDU2OyB9Citjb25zdCBxdXggPSA0NTY7CitmbigpOworcmV0dXJuIHBhc3NlZDsK
KyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFp
bGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvY29uc3RfdGVt
cG9yYWxfZGVhZF96b25lX3N0cmljdF9tb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvY29uc3RfdGVtcG9yYWxfZGVhZF96b25lX3N0cmljdF9tb2Rl
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9jb25z
dF90ZW1wb3JhbF9kZWFkX3pvbmVfc3RyaWN0X21vZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxNCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworJ3VzZSBzdHJpY3QnOwordmFyIHBhc3Nl
ZCA9IChmdW5jdGlvbigpeyB0cnkgeyBxdXg7IH0gY2F0Y2goZSkgeyByZXR1cm4gdHJ1ZTsgfX0o
KSk7CitmdW5jdGlvbiBmbigpIHsgcGFzc2VkICY9IHF1eCA9PT0gNDU2OyB9Citjb25zdCBxdXgg
PSA0NTY7CitmbigpOworcmV0dXJuIHBhc3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvZGVmYXVsdF9mdW5jdGlvbl9wYXJhbWV0ZXJzX2FyZ3VtZW50
c19vYmplY3RfaW50ZXJhY3Rpb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9kZWZhdWx0X2Z1bmN0aW9uX3BhcmFtZXRlcnNfYXJndW1lbnRzX29iamVj
dF9pbnRlcmFjdGlvbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvZGVmYXVsdF9mdW5jdGlvbl9wYXJhbWV0ZXJzX2FyZ3VtZW50c19vYmplY3RfaW50
ZXJhY3Rpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gdGVz
dCgpIHsKKworcmV0dXJuIChmdW5jdGlvbiAoYSA9ICJiYXoiLCBiID0gInF1eCIsIGMgPSAicXV1
eCIpIHsKKyAgYSA9ICJjb3JnZSI7CisgIC8vIFRoZSBhcmd1bWVudHMgb2JqZWN0IGlzIG5vdCBt
YXBwZWQgdG8gdGhlCisgIC8vIHBhcmFtZXRlcnMsIGV2ZW4gb3V0c2lkZSBvZiBzdHJpY3QgbW9k
ZS4KKyAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPT09IDIKKyAgICAmJiBhcmd1bWVudHNbMF0g
PT09ICJmb28iCisgICAgJiYgYXJndW1lbnRzWzFdID09PSAiYmFyIjsKK30oImZvbyIsICJiYXIi
KSk7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0
IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2RlZmF1
bHRfZnVuY3Rpb25fcGFyYW1ldGVyc19iYXNpY19mdW5jdGlvbmFsaXR5LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVmYXVsdF9mdW5jdGlvbl9wYXJh
bWV0ZXJzX2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L2RlZmF1bHRfZnVuY3Rpb25fcGFyYW1ldGVyc19iYXNpY19m
dW5jdGlvbmFsaXR5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24g
dGVzdCgpIHsKKworcmV0dXJuIChmdW5jdGlvbiAoYSA9IDEsIGIgPSAyKSB7IHJldHVybiBhID09
PSAzICYmIGIgPT09IDI7IH0oMykpOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRo
cm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9kZWZhdWx0X2Z1bmN0aW9uX3BhcmFtZXRlcnNfZGVmYXVsdHNfY2FuX3Jl
ZmVyX3RvX3ByZXZpb3VzX3BhcmFtcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L2RlZmF1bHRfZnVuY3Rpb25fcGFyYW1ldGVyc19kZWZhdWx0c19jYW5f
cmVmZXJfdG9fcHJldmlvdXNfcGFyYW1zLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9kZWZhdWx0X2Z1bmN0aW9uX3BhcmFtZXRlcnNfZGVmYXVsdHNf
Y2FuX3JlZmVyX3RvX3ByZXZpb3VzX3BhcmFtcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiAoZnVuY3Rpb24gKGEsIGIgPSBhKSB7
IHJldHVybiBiID09PSA1OyB9KDUpKTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0
aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvZGVmYXVsdF9mdW5jdGlvbl9wYXJhbWV0ZXJzX2V4cGxpY2l0X3VuZGVm
aW5lZF9kZWZlcnNfdG9fdGhlX2RlZmF1bHQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9kZWZhdWx0X2Z1bmN0aW9uX3BhcmFtZXRlcnNfZXhwbGljaXRf
dW5kZWZpbmVkX2RlZmVyc190b190aGVfZGVmYXVsdC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVmYXVsdF9mdW5jdGlvbl9wYXJhbWV0ZXJzX2V4
cGxpY2l0X3VuZGVmaW5lZF9kZWZlcnNfdG9fdGhlX2RlZmF1bHQuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gKGZ1bmN0aW9uIChh
ID0gMSwgYiA9IDIpIHsgcmV0dXJuIGEgPT09IDEgJiYgYiA9PT0gMzsgfSh1bmRlZmluZWQsIDMp
KTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3Qg
ZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVmYXVs
dF9mdW5jdGlvbl9wYXJhbWV0ZXJzX25ld19GdW5jdGlvbl9zdXBwb3J0LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVmYXVsdF9mdW5jdGlvbl9wYXJh
bWV0ZXJzX25ld19GdW5jdGlvbl9zdXBwb3J0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZWZhdWx0X2Z1bmN0aW9uX3BhcmFtZXRlcnNfbmV3X0Z1
bmN0aW9uX3N1cHBvcnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorZnVuY3Rp
b24gdGVzdCgpIHsKKworcmV0dXJuIG5ldyBGdW5jdGlvbigiYSA9IDEiLCAiYiA9IDIiLAorICAi
cmV0dXJuIGEgPT09IDMgJiYgYiA9PT0gMjsiCispKDMpOworICAgICAgCit9CisKK2lmICghdGVz
dCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZWZhdWx0X2Z1bmN0aW9uX3BhcmFtZXRlcnNfc2Vw
YXJhdGVfc2NvcGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9kZWZhdWx0X2Z1bmN0aW9uX3BhcmFtZXRlcnNfc2VwYXJhdGVfc2NvcGUuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2RlZmF1bHRfZnVuY3Rp
b25fcGFyYW1ldGVyc19zZXBhcmF0ZV9zY29wZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDE0IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gKGZ1bmN0aW9uKGE9ZnVuY3Rpb24o
KXsKKyAgcmV0dXJuIHR5cGVvZiBiID09PSAndW5kZWZpbmVkJzsKK30peworICB2YXIgYiA9IDE7
CisgIHJldHVybiBhKCk7Cit9KCkpOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRo
cm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9kZWZhdWx0X2Z1bmN0aW9uX3BhcmFtZXRlcnNfdGVtcG9yYWxfZGVhZF96
b25lLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVm
YXVsdF9mdW5jdGlvbl9wYXJhbWV0ZXJzX3RlbXBvcmFsX2RlYWRfem9uZS5qcwkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVmYXVsdF9mdW5jdGlvbl9w
YXJhbWV0ZXJzX3RlbXBvcmFsX2RlYWRfem9uZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDE5IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gKGZ1bmN0aW9uKHggPSAxKSB7Cisg
IHRyeSB7CisgICAgZXZhbCgiKGZ1bmN0aW9uKGE9YSl7fSgpKSIpOworICAgIHJldHVybiBmYWxz
ZTsKKyAgfSBjYXRjaChlKSB7fQorICB0cnkgeworICAgIGV2YWwoIihmdW5jdGlvbihhPWIsYil7
fSgpKSIpOworICAgIHJldHVybiBmYWxzZTsKKyAgfSBjYXRjaChlKSB7fQorICByZXR1cm4gdHJ1
ZTsKK30oKSk7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9y
KCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L2Rlc3RydWN0dXJpbmdfY2hhaW5lZF9pdGVyYWJsZV9kZXN0cnVjdHVyaW5nLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19jaGFp
bmVkX2l0ZXJhYmxlX2Rlc3RydWN0dXJpbmcuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfY2hhaW5lZF9pdGVyYWJsZV9kZXN0
cnVjdHVyaW5nLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRl
c3QoKSB7CisKK3ZhciBhLGIsYyxkOworW2EsYl0gPSBbYyxkXSA9IFsxLDJdOworcmV0dXJuIGEg
PT09IDEgJiYgYiA9PT0gMiAmJiBjID09PSAxICYmIGQgPT09IDI7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfY2hhaW5lZF9vYmpl
Y3RfZGVzdHJ1Y3R1cmluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfY2hhaW5lZF9vYmplY3RfZGVzdHJ1Y3R1cmluZy5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1
cmluZ19jaGFpbmVkX29iamVjdF9kZXN0cnVjdHVyaW5nLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBhLGIsYyxkOworKHthLGJ9ID0g
e2MsZH0gPSB7YToxLGI6MixjOjMsZDo0fSk7CityZXR1cm4gYSA9PT0gMSAmJiBiID09PSAyICYm
IGMgPT09IDMgJiYgZCA9PT0gNDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19jb21wdXRlZF9wcm9wZXJ0aWVzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19jb21w
dXRlZF9wcm9wZXJ0aWVzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2NvbXB1dGVkX3Byb3BlcnRpZXMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIHF1eCA9ICJj
b3JnZSI7Cit2YXIgeyBbcXV4XTogZ3JhdWx0IH0gPSB7IGNvcmdlOiAiZ2FycGx5IiB9OworcmV0
dXJuIGdyYXVsdCA9PT0gImdhcnBseSI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfZGVmYXVsdHMuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2RlZmF1bHRzLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVj
dHVyaW5nX2RlZmF1bHRzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0
aW9uIHRlc3QoKSB7CisKK3ZhciB7YSA9IDEsIGIgPSAwLCB6OmMgPSAzfSA9IHtiOjIsIHo6dW5k
ZWZpbmVkfTsKK3ZhciBbZCA9IDAsIGUgPSA1LCBmID0gNl0gPSBbNCwsdW5kZWZpbmVkXTsKK3Jl
dHVybiBhID09PSAxICYmIGIgPT09IDIgJiYgYyA9PT0gMworICAmJiBkID09PSA0ICYmIGUgPT09
IDUgJiYgZiA9PT0gNjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcg
RXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvZGVzdHJ1Y3R1cmluZ19kZWZhdWx0c19pbl9wYXJhbWV0ZXJzLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19kZWZhdWx0
c19pbl9wYXJhbWV0ZXJzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2RlZmF1bHRzX2luX3BhcmFtZXRlcnMuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIChm
dW5jdGlvbih7YSA9IDEsIGIgPSAwLCBjID0gMywgeDpkID0gMCwgeTplID0gNX0sCisgICAgW2Yg
PSA2LCBnID0gMCwgaCA9IDhdKSB7CisgIHJldHVybiBhID09PSAxICYmIGIgPT09IDIgJiYgYyA9
PT0gMyAmJiBkID09PSA0ICYmCisgICAgZSA9PT0gNSAmJiBmID09PSA2ICYmIGcgPT09IDcgJiYg
aCA9PT0gODsKK30oe2I6MiwgYzp1bmRlZmluZWQsIHg6NH0sWywgNywgdW5kZWZpbmVkXSkpOwor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVy
aW5nX2RlZmF1bHRzX2luX3BhcmFtZXRlcnNfbmV3X0Z1bmN0aW9uX3N1cHBvcnQuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2Rl
ZmF1bHRzX2luX3BhcmFtZXRlcnNfbmV3X0Z1bmN0aW9uX3N1cHBvcnQuanMJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfZGVmYXVs
dHNfaW5fcGFyYW1ldGVyc19uZXdfRnVuY3Rpb25fc3VwcG9ydC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gbmV3IEZ1bmN0aW9u
KCJ7YSA9IDEsIGIgPSAwLCBjID0gMywgeDpkID0gMCwgeTplID0gNX0iLAorICAicmV0dXJuIGEg
PT09IDEgJiYgYiA9PT0gMiAmJiBjID09PSAzICYmIGQgPT09IDQgJiYgZSA9PT0gNTsiCispKHti
OjIsIGM6dW5kZWZpbmVkLCB4OjR9KTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0
aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19kZWZhdWx0c19pbl9wYXJhbWV0ZXJzX3NlcGFy
YXRlX3Njb3BlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvZGVzdHJ1Y3R1cmluZ19kZWZhdWx0c19pbl9wYXJhbWV0ZXJzX3NlcGFyYXRlX3Njb3BlLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVj
dHVyaW5nX2RlZmF1bHRzX2luX3BhcmFtZXRlcnNfc2VwYXJhdGVfc2NvcGUuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxNCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIChmdW5j
dGlvbih7YT1mdW5jdGlvbigpeworICByZXR1cm4gdHlwZW9mIGIgPT09ICd1bmRlZmluZWQnOwor
fX0peworICB2YXIgYiA9IDE7CisgIHJldHVybiBhKCk7Cit9KHt9KSk7CisgICAgICAKK30KKwor
aWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfZGVmYXVsdHNf
bGV0X3RlbXBvcmFsX2RlYWRfem9uZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfZGVmYXVsdHNfbGV0X3RlbXBvcmFsX2RlYWRf
em9uZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
ZGVzdHJ1Y3R1cmluZ19kZWZhdWx0c19sZXRfdGVtcG9yYWxfZGVhZF96b25lLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciB7YSwgYiA9
IDJ9ID0ge2E6MX07Cit0cnkgeworICBldmFsKCJsZXQge2MgPSBjfSA9IHt9OyIpOworICByZXR1
cm4gZmFsc2U7Cit9IGNhdGNoKGUpe30KK3RyeSB7CisgIGV2YWwoImxldCB7YyA9IGQsIGR9ID0g
e2Q6MX07Iik7CisgIHJldHVybiBmYWxzZTsKK30gY2F0Y2goZSl7fQorcmV0dXJuIGEgPT09IDEg
JiYgYiA9PT0gMjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJy
b3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvZGVzdHJ1Y3R1cmluZ19lbXB0eV9wYXR0ZXJucy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfZW1wdHlfcGF0dGVybnMuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0
dXJpbmdfZW1wdHlfcGF0dGVybnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAor
ZnVuY3Rpb24gdGVzdCgpIHsKKworW10gPSBbMSwyXTsKKyh7fSA9IHthOjEsYjoyfSk7CityZXR1
cm4gdHJ1ZTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3Io
IlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
ZGVzdHJ1Y3R1cmluZ19lbXB0eV9wYXR0ZXJuc19pbl9wYXJhbWV0ZXJzLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19lbXB0eV9w
YXR0ZXJuc19pbl9wYXJhbWV0ZXJzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2VtcHR5X3BhdHRlcm5zX2luX3BhcmFtZXRl
cnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorZnVuY3Rpb24gdGVzdCgpIHsK
KworcmV0dXJuIGZ1bmN0aW9uIChbXSx7fSl7CisgIHJldHVybiBhcmd1bWVudHNbMF0gKyAnJyA9
PT0gIjMsNCIgJiYgYXJndW1lbnRzWzFdLnggPT09ICJmb28iOworfShbMyw0XSx7eDoiZm9vIn0p
OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBm
YWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVj
dHVyaW5nX2luX2Zvci1pbl9sb29wX2hlYWRzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19pbl9mb3ItaW5fbG9vcF9oZWFkcy5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1
Y3R1cmluZ19pbl9mb3ItaW5fbG9vcF9oZWFkcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitmb3IodmFyIFtpLCBqLCBrXSBpbiB7IHF1eDog
MSB9KSB7CisgIHJldHVybiBpID09PSAicSIgJiYgaiA9PT0gInUiICYmIGsgPT09ICJ4IjsKK30K
KyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFp
bGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1
cmluZ19pbl9mb3Itb2ZfbG9vcF9oZWFkcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfaW5fZm9yLW9mX2xvb3BfaGVhZHMuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0
dXJpbmdfaW5fZm9yLW9mX2xvb3BfaGVhZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworZm9yKHZhciBbaSwgaiwga10gb2YgW1sxLDIsM11d
KSB7CisgIHJldHVybiBpID09PSAxICYmIGogPT09IDIgJiYgayA9PT0gMzsKK30KKyAgICAgIAor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19pbl9w
YXJhbWV0ZXJzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvZGVzdHJ1Y3R1cmluZ19pbl9wYXJhbWV0ZXJzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2luX3BhcmFtZXRlcnMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0
dXJuIChmdW5jdGlvbih7YSwgeDpiLCB5OmV9LCBbYywgZF0pIHsKKyAgcmV0dXJuIGEgPT09IDEg
JiYgYiA9PT0gMiAmJiBjID09PSAzICYmCisgICAgZCA9PT0gNCAmJiBlID09PSB1bmRlZmluZWQ7
Cit9KHthOjEsIHg6Mn0sIFszLCA0XSkpOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2luX3BhcmFtZXRlcnNfYXJndW1lbnRzX2lu
dGVyYWN0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvZGVzdHJ1Y3R1cmluZ19pbl9wYXJhbWV0ZXJzX2FyZ3VtZW50c19pbnRlcmFjdGlvbi5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1
cmluZ19pbl9wYXJhbWV0ZXJzX2FyZ3VtZW50c19pbnRlcmFjdGlvbi5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gKGZ1bmN0aW9u
KHthLCB4OmIsIHk6ZX0sIFtjLCBkXSkgeworICByZXR1cm4gYXJndW1lbnRzWzBdLmEgPT09IDEg
JiYgYXJndW1lbnRzWzBdLnggPT09IDIKKyAgICAmJiAhKCJ5IiBpbiBhcmd1bWVudHNbMF0pICYm
IGFyZ3VtZW50c1sxXSArICcnID09PSAiMyw0IjsKK30oe2E6MSwgeDoyfSwgWzMsIDRdKSk7Cisg
ICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxl
ZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJp
bmdfaW5fcGFyYW1ldGVyc19mdW5jdGlvbl9sZW5ndGhfcHJvcGVydHkuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2luX3BhcmFt
ZXRlcnNfZnVuY3Rpb25fbGVuZ3RoX3Byb3BlcnR5LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2luX3BhcmFtZXRlcnNfZnVu
Y3Rpb25fbGVuZ3RoX3Byb3BlcnR5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAor
ZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIGZ1bmN0aW9uKHthLCBifSwgW2MsIGRdKXt9Lmxl
bmd0aCA9PT0gMjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJy
b3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvZGVzdHJ1Y3R1cmluZ19pbl9wYXJhbWV0ZXJzX25ld19GdW5jdGlvbl9zdXBwb3J0LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmlu
Z19pbl9wYXJhbWV0ZXJzX25ld19GdW5jdGlvbl9zdXBwb3J0LmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2luX3BhcmFtZXRl
cnNfbmV3X0Z1bmN0aW9uX3N1cHBvcnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBA
QAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIG5ldyBGdW5jdGlvbigie2EsIHg6YiwgeTpl
fSIsIltjLCBkXSIsCisgICJyZXR1cm4gYSA9PT0gMSAmJiBiID09PSAyICYmIGMgPT09IDMgJiYg
IgorICArICJkID09PSA0ICYmIGUgPT09IHVuZGVmaW5lZDsiCispKHthOjEsIHg6Mn0sIFszLCA0
XSk7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0
IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3Ry
dWN0dXJpbmdfaXRlcmFibGVfZGVzdHJ1Y3R1cmluZ19leHByZXNzaW9uLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19pdGVyYWJs
ZV9kZXN0cnVjdHVyaW5nX2V4cHJlc3Npb24uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfaXRlcmFibGVfZGVzdHJ1Y3R1cmlu
Z19leHByZXNzaW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9u
IHRlc3QoKSB7CisKK3ZhciBhLCBiLCBpdGVyYWJsZSA9IFsxLDJdOworcmV0dXJuIChbYSwgYl0g
PSBpdGVyYWJsZSkgPT09IGl0ZXJhYmxlOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2l0ZXJhdG9yX2Nsb3NpbmcuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2l0
ZXJhdG9yX2Nsb3NpbmcuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfaXRlcmF0b3JfY2xvc2luZy5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgY2xvc2VkID0gZmFs
c2U7Cit2YXIgaXRlciA9IGdsb2JhbC5fX2NyZWF0ZUl0ZXJhYmxlT2JqZWN0KFsxLCAyLCAzXSwg
eworICAncmV0dXJuJzogZnVuY3Rpb24oKXsgY2xvc2VkID0gdHJ1ZTsgcmV0dXJuIHt9OyB9Cit9
KTsKK3ZhciBbYSwgYl0gPSBpdGVyOworcmV0dXJuIGNsb3NlZDsKKyAgICAgIAorfQorCitpZiAo
IXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19tdWx0aXBsZXNfaW5f
YV9zaW5nbGVfdmFyX3N0YXRlbWVudC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfbXVsdGlwbGVzX2luX2Ffc2luZ2xlX3Zhcl9z
dGF0ZW1lbnQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L2Rlc3RydWN0dXJpbmdfbXVsdGlwbGVzX2luX2Ffc2luZ2xlX3Zhcl9zdGF0ZW1lbnQuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFy
IFthLGJdID0gWzUsNl0sIHtjLGR9ID0ge2M6NyxkOjh9OworcmV0dXJuIGEgPT09IDUgJiYgYiA9
PT0gNiAmJiBjID09PSA3ICYmIGQgPT09IDg7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisg
ICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfbmVzdGVkLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19uZXN0ZWQuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0
dXJpbmdfbmVzdGVkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9u
IHRlc3QoKSB7CisKK3ZhciBbZSwge3g6ZiwgZ31dID0gWzksIHt4OjEwfV07Cit2YXIge2gsIHg6
W2ldfSA9IHtoOjExLCB4OlsxMl19OworcmV0dXJuIGUgPT09IDkgJiYgZiA9PT0gMTAgJiYgZyA9
PT0gdW5kZWZpbmVkCisgICYmIGggPT09IDExICYmIGkgPT09IDEyOworICAgICAgCit9CisKK2lm
ICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX25lc3RlZF9yZXN0
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1
Y3R1cmluZ19uZXN0ZWRfcmVzdC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19uZXN0ZWRfcmVzdC5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgYSA9IFsxLCAyLCAz
XSwgZmlyc3QsIGxhc3Q7CitbZmlyc3QsIC4uLlthWzJdLCBsYXN0XV0gPSBhOworcmV0dXJuIGZp
cnN0ID09PSAxICYmIGxhc3QgPT09IDMgJiYgKGEgKyAiIikgPT09ICIxLDIsMiI7CisgICAgICAK
K30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOwor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfb2Jq
ZWN0X2Rlc3RydWN0dXJpbmdfZXhwcmVzc2lvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfb2JqZWN0X2Rlc3RydWN0dXJpbmdf
ZXhwcmVzc2lvbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvZGVzdHJ1Y3R1cmluZ19vYmplY3RfZGVzdHJ1Y3R1cmluZ19leHByZXNzaW9uLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBh
LCBiLCBvYmogPSB7IGE6MSwgYjoyIH07CityZXR1cm4gKHthLGJ9ID0gb2JqKSA9PT0gb2JqOwor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVy
aW5nX29iamVjdF9kZXN0cnVjdHVyaW5nX3dpdGhfcHJpbWl0aXZlcy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfb2JqZWN0X2Rl
c3RydWN0dXJpbmdfd2l0aF9wcmltaXRpdmVzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX29iamVjdF9kZXN0cnVjdHVyaW5n
X3dpdGhfcHJpbWl0aXZlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACitmdW5j
dGlvbiB0ZXN0KCkgeworCit2YXIge3RvRml4ZWR9ID0gMjsKK3ZhciB7c2xpY2V9ID0gJyc7Cit2
YXIgdG9TdHJpbmcsIG1hdGNoOworKHt0b1N0cmluZ30gPSAyKTsKKyh7bWF0Y2h9ID0gJycpOwor
cmV0dXJuIHRvRml4ZWQgPT09IE51bWJlci5wcm90b3R5cGUudG9GaXhlZAorICAmJiB0b1N0cmlu
ZyA9PT0gTnVtYmVyLnByb3RvdHlwZS50b1N0cmluZworICAmJiBzbGljZSA9PT0gU3RyaW5nLnBy
b3RvdHlwZS5zbGljZQorICAmJiBtYXRjaCA9PT0gU3RyaW5nLnByb3RvdHlwZS5tYXRjaDsKKyAg
ICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVk
Iik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmlu
Z19wYXJlbnRoZXNpc2VkX2xlZnQtaGFuZC1zaWRlX2lzX2Ffc3ludGF4X2Vycm9yLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19w
YXJlbnRoZXNpc2VkX2xlZnQtaGFuZC1zaWRlX2lzX2Ffc3ludGF4X2Vycm9yLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX3Bh
cmVudGhlc2lzZWRfbGVmdC1oYW5kLXNpZGVfaXNfYV9zeW50YXhfZXJyb3IuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGEsIGI7Ciso
e2EsYn0gPSB7YToxLGI6Mn0pOwordHJ5IHsKKyAgZXZhbCgiKHthLGJ9KSA9IHthOjMsYjo0fTsi
KTsKK30KK2NhdGNoKGUpIHsKKyAgcmV0dXJuIGEgPT09IDEgJiYgYiA9PT0gMjsKK30KKyAgICAg
IAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19y
ZXN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVz
dHJ1Y3R1cmluZ19yZXN0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX3Jlc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxMiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIFthLCAuLi5iXSA9IFszLCA0LCA1XTsK
K3ZhciBbYywgLi4uZF0gPSBbNl07CityZXR1cm4gYSA9PT0gMyAmJiBiIGluc3RhbmNlb2YgQXJy
YXkgJiYgKGIgKyAiIikgPT09ICI0LDUiICYmCisgICBjID09PSA2ICYmIGQgaW5zdGFuY2VvZiBB
cnJheSAmJiBkLmxlbmd0aCA9PT0gMDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0
aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ190aHJvd3Nfb25fbnVsbF9hbmRfdW5kZWZpbmVk
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1
Y3R1cmluZ190aHJvd3Nfb25fbnVsbF9hbmRfdW5kZWZpbmVkLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX3Rocm93c19vbl9u
dWxsX2FuZF91bmRlZmluZWQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKwordHJ5IHsKKyAgdmFyIHthfSA9IG51bGw7CisgIHJldHVybiBmYWxz
ZTsKK30gY2F0Y2goZSkge30KK3RyeSB7CisgIHZhciB7Yn0gPSB1bmRlZmluZWQ7CisgIHJldHVy
biBmYWxzZTsKK30gY2F0Y2goZSkge30KK3JldHVybiB0cnVlOworICAgICAgCit9CisKK2lmICgh
dGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX3RyYWlsaW5nX2NvbW1h
c19pbl9pdGVyYWJsZV9wYXR0ZXJucy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfdHJhaWxpbmdfY29tbWFzX2luX2l0ZXJhYmxl
X3BhdHRlcm5zLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9kZXN0cnVjdHVyaW5nX3RyYWlsaW5nX2NvbW1hc19pbl9pdGVyYWJsZV9wYXR0ZXJucy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2
YXIgW2EsXSA9IFsxXTsKK3JldHVybiBhID09PSAxOworICAgICAgCit9CisKK2lmICghdGVzdCgp
KQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX3RyYWlsaW5nX2NvbW1hc19pbl9v
YmplY3RfcGF0dGVybnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9kZXN0cnVjdHVyaW5nX3RyYWlsaW5nX2NvbW1hc19pbl9vYmplY3RfcGF0dGVybnMu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3Ry
dWN0dXJpbmdfdHJhaWxpbmdfY29tbWFzX2luX29iamVjdF9wYXR0ZXJucy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIge2EsfSA9IHth
OjF9OworcmV0dXJuIGEgPT09IDE7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhy
b3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfd2l0aF9hcnJheXMuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX3dpdGhfYXJyYXlz
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0
cnVjdHVyaW5nX3dpdGhfYXJyYXlzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAK
K2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBbYSwgLCBbYl0sIGNdID0gWzUsIG51bGwsIFs2XV07
Cit2YXIgZCwgZTsKK1tkLGVdID0gWzcsOF07CityZXR1cm4gYSA9PT0gNSAmJiBiID09PSA2ICYm
IGMgPT09IHVuZGVmaW5lZAorICAmJiBkID09PSA3ICYmIGUgPT09IDg7CisgICAgICAKK30KKwor
aWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfd2l0aF9hc3Ry
YWxfcGxhbmVfc3RyaW5ncy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfd2l0aF9hc3RyYWxfcGxhbmVfc3RyaW5ncy5qcwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmlu
Z193aXRoX2FzdHJhbF9wbGFuZV9zdHJpbmdzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBjOworW2NdID0gIvCgrrfwoK62IjsKK3Jl
dHVybiBjID09PSAi8KCutyI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cg
bmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfd2l0aF9nZW5lcmF0b3JfaW5zdGFuY2VzLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ193
aXRoX2dlbmVyYXRvcl9pbnN0YW5jZXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfd2l0aF9nZW5lcmF0b3JfaW5zdGFuY2Vz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisK
K3ZhciBbYSwgYiwgY10gPSAoZnVuY3Rpb24qKCl7IHlpZWxkIDE7IHlpZWxkIDI7IH0oKSk7Cit2
YXIgZCwgZTsKK1tkLCBlXSA9IChmdW5jdGlvbiooKXsgeWllbGQgMzsgeWllbGQgNDsgfSgpKTsK
K3JldHVybiBhID09PSAxICYmIGIgPT09IDIgJiYgYyA9PT0gdW5kZWZpbmVkCisgICYmIGQgPT09
IDMgJiYgZSA9PT0gNDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcg
RXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvZGVzdHJ1Y3R1cmluZ193aXRoX2dlbmVyaWNfaXRlcmFibGVzLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ193aXRoX2dl
bmVyaWNfaXRlcmFibGVzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX3dpdGhfZ2VuZXJpY19pdGVyYWJsZXMuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIFthLCBi
LCBjXSA9IGdsb2JhbC5fX2NyZWF0ZUl0ZXJhYmxlT2JqZWN0KFsxLCAyXSk7Cit2YXIgZCwgZTsK
K1tkLCBlXSA9IGdsb2JhbC5fX2NyZWF0ZUl0ZXJhYmxlT2JqZWN0KFszLCA0XSk7CityZXR1cm4g
YSA9PT0gMSAmJiBiID09PSAyICYmIGMgPT09IHVuZGVmaW5lZAorICAmJiBkID09PSAzICYmIGUg
PT09IDQ7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJU
ZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rl
c3RydWN0dXJpbmdfd2l0aF9pbnN0YW5jZXNfb2ZfZ2VuZXJpY19pdGVyYWJsZXMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX3dp
dGhfaW5zdGFuY2VzX29mX2dlbmVyaWNfaXRlcmFibGVzLmpzCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX3dpdGhfaW5zdGFuY2Vz
X29mX2dlbmVyaWNfaXRlcmFibGVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAK
K2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBbYSwgYiwgY10gPSBPYmplY3QuY3JlYXRlKGdsb2Jh
bC5fX2NyZWF0ZUl0ZXJhYmxlT2JqZWN0KFsxLCAyXSkpCit2YXIgZCwgZTsKK1tkLCBlXSA9IE9i
amVjdC5jcmVhdGUoZ2xvYmFsLl9fY3JlYXRlSXRlcmFibGVPYmplY3QoWzMsIDRdKSk7CityZXR1
cm4gYSA9PT0gMSAmJiBiID09PSAyICYmIGMgPT09IHVuZGVmaW5lZAorICAmJiBkID09PSAzICYm
IGUgPT09IDQ7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9y
KCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L2Rlc3RydWN0dXJpbmdfd2l0aF9vYmplY3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ193aXRoX29iamVjdHMuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdf
d2l0aF9vYmplY3RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9u
IHRlc3QoKSB7CisKK3ZhciB7YywgeDpkLCBlfSA9IHtjOjcsIHg6OH07Cit2YXIgZiwgZzsKKyh7
ZixnfSA9IHtmOjksZzoxMH0pOworcmV0dXJuIGMgPT09IDcgJiYgZCA9PT0gOCAmJiBlID09PSB1
bmRlZmluZWQKKyAgJiYgZiA9PT0gOSAmJiBnID09PSAxMDsKKyAgICAgIAorfQorCitpZiAoIXRl
c3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ193aXRoX3NwYXJzZV9hcnJh
eXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9kZXN0
cnVjdHVyaW5nX3dpdGhfc3BhcnNlX2FycmF5cy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ193aXRoX3NwYXJzZV9hcnJheXMu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwor
dmFyIFthLCBiXSA9IFssLF07CityZXR1cm4gYSA9PT0gdW5kZWZpbmVkICYmIGIgPT09IHVuZGVm
aW5lZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRl
c3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVz
dHJ1Y3R1cmluZ193aXRoX3N0cmluZ3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX3dpdGhfc3RyaW5ncy5qcwkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ193aXRo
X3N0cmluZ3MuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVz
dCgpIHsKKwordmFyIFthLCBiLCBjXSA9ICJhYiI7Cit2YXIgZCwgZTsKK1tkLGVdID0gImRlIjsK
K3JldHVybiBhID09PSAiYSIgJiYgYiA9PT0gImIiICYmIGMgPT09IHVuZGVmaW5lZAorICAmJiBk
ID09PSAiZCIgJiYgZSA9PT0gImUiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRo
cm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9mb3IuLm9mX2xvb3BzX2l0ZXJhdG9yX2Nsb3NpbmdfYnJlYWsuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9mb3IuLm9mX2xvb3Bz
X2l0ZXJhdG9yX2Nsb3NpbmdfYnJlYWsuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L2Zvci4ub2ZfbG9vcHNfaXRlcmF0b3JfY2xvc2luZ19icmVhay5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2
YXIgY2xvc2VkID0gZmFsc2U7Cit2YXIgaXRlciA9IF9fY3JlYXRlSXRlcmFibGVPYmplY3QoWzEs
IDIsIDNdLCB7CisgICdyZXR1cm4nOiBmdW5jdGlvbigpeyBjbG9zZWQgPSB0cnVlOyByZXR1cm4g
e307IH0KK30pOworZm9yICh2YXIgaXQgb2YgaXRlcikgYnJlYWs7CityZXR1cm4gY2xvc2VkOwor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9mb3IuLm9mX2xv
b3BzX2l0ZXJhdG9yX2Nsb3NpbmdfdGhyb3cuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9mb3IuLm9mX2xvb3BzX2l0ZXJhdG9yX2Nsb3NpbmdfdGhyb3cu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Zvci4u
b2ZfbG9vcHNfaXRlcmF0b3JfY2xvc2luZ190aHJvdy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDE2IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgY2xvc2VkID0gZmFsc2U7Cit2YXIg
aXRlciA9IF9fY3JlYXRlSXRlcmFibGVPYmplY3QoWzEsIDIsIDNdLCB7CisgICdyZXR1cm4nOiBm
dW5jdGlvbigpeyBjbG9zZWQgPSB0cnVlOyByZXR1cm4ge307IH0KK30pOwordHJ5IHsKKyAgZm9y
ICh2YXIgaXQgb2YgaXRlcikgdGhyb3cgMDsKK30gY2F0Y2goZSl7fQorcmV0dXJuIGNsb3NlZDsK
KyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFp
bGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZm9yLi5vZl9s
b29wc193aXRoX2FycmF5cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L2Zvci4ub2ZfbG9vcHNfd2l0aF9hcnJheXMuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Zvci4ub2ZfbG9vcHNfd2l0aF9hcnJheXMu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwor
dmFyIGFyciA9IFs1XTsKK2ZvciAodmFyIGl0ZW0gb2YgYXJyKQorICByZXR1cm4gaXRlbSA9PT0g
NTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3Qg
ZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZm9yLi5v
Zl9sb29wc193aXRoX2FzdHJhbF9wbGFuZV9zdHJpbmdzLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZm9yLi5vZl9sb29wc193aXRoX2FzdHJhbF9wbGFu
ZV9zdHJpbmdzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9mb3IuLm9mX2xvb3BzX3dpdGhfYXN0cmFsX3BsYW5lX3N0cmluZ3MuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIHN0ciA9ICIi
OworZm9yICh2YXIgaXRlbSBvZiAi8KCut/CgrrYiKQorICBzdHIgKz0gaXRlbSArICIgIjsKK3Jl
dHVybiBzdHIgPT09ICLwoK63IPCgrrYgIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvZm9yLi5vZl9sb29wc193aXRoX2dlbmVyYXRvcl9pbnN0YW5jZXMu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9mb3IuLm9m
X2xvb3BzX3dpdGhfZ2VuZXJhdG9yX2luc3RhbmNlcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZm9yLi5vZl9sb29wc193aXRoX2dlbmVyYXRvcl9p
bnN0YW5jZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNCBAQAorZnVuY3Rpb24gdGVz
dCgpIHsKKwordmFyIHJlc3VsdCA9ICIiOwordmFyIGl0ZXJhYmxlID0gKGZ1bmN0aW9uKigpeyB5
aWVsZCAxOyB5aWVsZCAyOyB5aWVsZCAzOyB9KCkpOworZm9yICh2YXIgaXRlbSBvZiBpdGVyYWJs
ZSkgeworICByZXN1bHQgKz0gaXRlbTsKK30KK3JldHVybiByZXN1bHQgPT09ICIxMjMiOworICAg
ICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQi
KTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9mb3IuLm9mX2xvb3Bz
X3dpdGhfZ2VuZXJpY19pdGVyYWJsZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9mb3IuLm9mX2xvb3BzX3dpdGhfZ2VuZXJpY19pdGVyYWJsZXMuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Zvci4ub2Zf
bG9vcHNfd2l0aF9nZW5lcmljX2l0ZXJhYmxlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDE0IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgcmVzdWx0ID0gIiI7Cit2YXIgaXRlcmFi
bGUgPSBnbG9iYWwuX19jcmVhdGVJdGVyYWJsZU9iamVjdChbMSwgMiwgM10pOworZm9yICh2YXIg
aXRlbSBvZiBpdGVyYWJsZSkgeworICByZXN1bHQgKz0gaXRlbTsKK30KK3JldHVybiByZXN1bHQg
PT09ICIxMjMiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJv
cigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9mb3IuLm9mX2xvb3BzX3dpdGhfaW5zdGFuY2VzX29mX2dlbmVyaWNfaXRlcmFibGVzLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZm9yLi5vZl9sb29w
c193aXRoX2luc3RhbmNlc19vZl9nZW5lcmljX2l0ZXJhYmxlcy5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZm9yLi5vZl9sb29wc193aXRoX2luc3Rh
bmNlc19vZl9nZW5lcmljX2l0ZXJhYmxlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgcmVzdWx0ID0gIiI7Cit2YXIgaXRlcmFibGUg
PSBnbG9iYWwuX19jcmVhdGVJdGVyYWJsZU9iamVjdChbMSwgMiwgM10pOworZm9yICh2YXIgaXRl
bSBvZiBPYmplY3QuY3JlYXRlKGl0ZXJhYmxlKSkgeworICByZXN1bHQgKz0gaXRlbTsKK30KK3Jl
dHVybiByZXN1bHQgPT09ICIxMjMiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRo
cm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9mb3IuLm9mX2xvb3BzX3dpdGhfc3BhcnNlX2FycmF5cy5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Zvci4ub2ZfbG9vcHNfd2l0
aF9zcGFyc2VfYXJyYXlzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9mb3IuLm9mX2xvb3BzX3dpdGhfc3BhcnNlX2FycmF5cy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgYXJyID0gWyws
XTsKK3ZhciBjb3VudCA9IDA7Citmb3IgKHZhciBpdGVtIG9mIGFycikKKyAgY291bnQgKz0gKGl0
ZW0gPT09IHVuZGVmaW5lZCk7CityZXR1cm4gY291bnQgPT09IDI7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Zvci4ub2ZfbG9vcHNfd2l0aF9zdHJpbmdz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZm9yLi5v
Zl9sb29wc193aXRoX3N0cmluZ3MuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L2Zvci4ub2ZfbG9vcHNfd2l0aF9zdHJpbmdzLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBzdHIgPSAiIjsK
K2ZvciAodmFyIGl0ZW0gb2YgImZvbyIpCisgIHN0ciArPSBpdGVtOworcmV0dXJuIHN0ciA9PT0g
ImZvbyI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJU
ZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Z1
bmN0aW9uX25hbWVfcHJvcGVydHlfYWNjZXNzb3JfcHJvcGVydGllcy5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlf
YWNjZXNzb3JfcHJvcGVydGllcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9hY2Nlc3Nvcl9wcm9wZXJ0aWVz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisK
K3ZhciBvID0geyBnZXQgZm9vKCl7fSwgc2V0IGZvbyh4KXt9IH07Cit2YXIgZGVzY3JpcHRvciA9
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobywgImZvbyIpOworcmV0dXJuIGRlc2Ny
aXB0b3IuZ2V0Lm5hbWUgPT09ICJnZXQgZm9vIiAmJgorICAgICAgIGRlc2NyaXB0b3Iuc2V0Lm5h
bWUgPT09ICJzZXQgZm9vIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBu
ZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9ib3VuZF9mdW5jdGlvbnMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9mdW5jdGlvbl9uYW1lX3By
b3BlcnR5X2JvdW5kX2Z1bmN0aW9ucy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9ib3VuZF9mdW5jdGlvbnMu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwor
ZnVuY3Rpb24gZm9vKCkge307CityZXR1cm4gZm9vLmJpbmQoe30pLm5hbWUgPT09ICJib3VuZCBm
b28iICYmCisgIChmdW5jdGlvbigpe30pLmJpbmQoe30pLm5hbWUgPT09ICJib3VuZCAiOworICAg
ICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQi
KTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9mdW5jdGlvbl9uYW1l
X3Byb3BlcnR5X2NsYXNzX2V4cHJlc3Npb25zLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9jbGFzc19leHByZXNz
aW9ucy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
ZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9jbGFzc19leHByZXNzaW9ucy5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gY2xhc3MgZm9v
IHt9Lm5hbWUgPT09ICJmb28iICYmCisgIHR5cGVvZiBjbGFzcyBiYXIgeyBzdGF0aWMgbmFtZSgp
IHt9IH0ubmFtZSA9PT0gImZ1bmN0aW9uIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9jbGFzc19wcm90b3R5cGVf
bWV0aG9kcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlfY2xhc3NfcHJvdG90eXBlX21ldGhvZHMuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Z1bmN0aW9uX25hbWVf
cHJvcGVydHlfY2xhc3NfcHJvdG90eXBlX21ldGhvZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworY2xhc3MgQyB7IGZvbygpe30gfTsKK3Jl
dHVybiAobmV3IEMpLmZvby5uYW1lID09PSAiZm9vIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9jbGFzc19zdGF0
ZW1lbnRzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
ZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9jbGFzc19zdGF0ZW1lbnRzLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5
X2NsYXNzX3N0YXRlbWVudHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKworY2xhc3MgZm9vIHt9OworY2xhc3MgYmFyIHsgc3RhdGljIG5hbWUo
KSB7fSB9OworcmV0dXJuIGZvby5uYW1lID09PSAiZm9vIiAmJgorICB0eXBlb2YgYmFyLm5hbWUg
PT09ICJmdW5jdGlvbiI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3
IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlfY2xhc3Nfc3RhdGljX21ldGhvZHMuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9mdW5jdGlvbl9uYW1l
X3Byb3BlcnR5X2NsYXNzX3N0YXRpY19tZXRob2RzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X2NsYXNzX3N0
YXRpY19tZXRob2RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9u
IHRlc3QoKSB7CisKK2NsYXNzIEMgeyBzdGF0aWMgZm9vKCl7fSB9OworcmV0dXJuIEMuZm9vLm5h
bWUgPT09ICJmb28iOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBF
cnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X2Z1bmN0aW9uX2V4cHJlc3Npb25zLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9w
cm9wZXJ0eV9mdW5jdGlvbl9leHByZXNzaW9ucy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9mdW5jdGlvbl9l
eHByZXNzaW9ucy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCityZXR1cm4gKGZ1bmN0aW9uIGZvbygpe30pLm5hbWUgPT09ICdmb28nICYmCisg
IChmdW5jdGlvbigpe30pLm5hbWUgPT09ICcnOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQor
ICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X2Z1bmN0aW9uX3N0YXRl
bWVudHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9m
dW5jdGlvbl9uYW1lX3Byb3BlcnR5X2Z1bmN0aW9uX3N0YXRlbWVudHMuanMJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVy
dHlfZnVuY3Rpb25fc3RhdGVtZW50cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBA
CitmdW5jdGlvbiB0ZXN0KCkgeworCitmdW5jdGlvbiBmb28oKXt9OworcmV0dXJuIGZvby5uYW1l
ID09PSAnZm9vJyAmJgorICAoZnVuY3Rpb24oKXt9KS5uYW1lID09PSAnJzsKKyAgICAgIAorfQor
CitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0
eV9pc250X3dyaXRhYmxlX2lzX2NvbmZpZ3VyYWJsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlfaXNudF93cml0
YWJsZV9pc19jb25maWd1cmFibGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlfaXNudF93cml0YWJsZV9pc19j
b25maWd1cmFibGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24g
dGVzdCgpIHsKKwordmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGZ1bmN0aW9uIGYoKXt9LCJuYW1lIik7CityZXR1cm4gZGVzY3JpcHRvci5lbnVtZXJhYmxl
ICAgPT09IGZhbHNlICYmCisgICAgICAgZGVzY3JpcHRvci53cml0YWJsZSAgICAgPT09IGZhbHNl
ICYmCisgICAgICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPT09IHRydWU7CisgICAgICAKK30K
KworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVy
dHlfbmV3X0Z1bmN0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9uZXdfRnVuY3Rpb24uanMJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Z1bmN0aW9uX25hbWVfcHJv
cGVydHlfbmV3X0Z1bmN0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIChuZXcgRnVuY3Rpb24pLm5hbWUgPT09ICJhbm9ueW1v
dXMiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVz
dCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9mdW5j
dGlvbl9uYW1lX3Byb3BlcnR5X29iamVjdF9tZXRob2RzX2NsYXNzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9v
YmplY3RfbWV0aG9kc19jbGFzcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9vYmplY3RfbWV0aG9kc19jbGFz
cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0ZXN0KCkgewor
Cit2YXIgbyA9IHsgZm9vOiBjbGFzcyB7fSwgYmFyOiBjbGFzcyBiYXoge319Oworby5xdXggPSBj
bGFzcyB7fTsKK3JldHVybiBvLmZvby5uYW1lID09PSAiZm9vIiAmJgorICAgICAgIG8uYmFyLm5h
bWUgPT09ICJiYXoiICYmCisgICAgICAgby5xdXgubmFtZSA9PT0gIiI7CisgICAgICAKK30KKwor
aWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlf
b2JqZWN0X21ldGhvZHNfZnVuY3Rpb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X29iamVjdF9tZXRob2RzX2Z1
bmN0aW9uLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X29iamVjdF9tZXRob2RzX2Z1bmN0aW9uLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBvID0g
eyBmb286IGZ1bmN0aW9uKCl7fSwgYmFyOiBmdW5jdGlvbiBiYXooKXt9fTsKK28ucXV4ID0gZnVu
Y3Rpb24oKXt9OworcmV0dXJuIG8uZm9vLm5hbWUgPT09ICJmb28iICYmCisgICAgICAgby5iYXIu
bmFtZSA9PT0gImJheiIgJiYKKyAgICAgICBvLnF1eC5uYW1lID09PSAiIjsKKyAgICAgIAorfQor
CitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0
eV9zaG9ydGhhbmRfbWV0aG9kcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlfc2hvcnRoYW5kX21ldGhvZHMuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Z1bmN0aW9u
X25hbWVfcHJvcGVydHlfc2hvcnRoYW5kX21ldGhvZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIG8gPSB7IGZvbygpe30gfTsKK3Jl
dHVybiBvLmZvby5uYW1lID09PSAiZm9vIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9zaG9ydGhhbmRfbWV0aG9k
c19ub19sZXhpY2FsX2JpbmRpbmcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X3Nob3J0aGFuZF9tZXRob2RzX25v
X2xleGljYWxfYmluZGluZy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9zaG9ydGhhbmRfbWV0aG9kc19ub19s
ZXhpY2FsX2JpbmRpbmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rp
b24gdGVzdCgpIHsKKwordmFyIGYgPSAiZm9vIjsKK3JldHVybiAoe2YoKSB7IHJldHVybiBmOyB9
fSkuZigpID09PSAiZm9vIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBu
ZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV9zeW1ib2wta2V5ZWRfbWV0aG9kcy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Z1bmN0aW9uX25h
bWVfcHJvcGVydHlfc3ltYm9sLWtleWVkX21ldGhvZHMuanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Z1bmN0aW9uX25hbWVfcHJvcGVydHlfc3ltYm9s
LWtleWVkX21ldGhvZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorZnVuY3Rp
b24gdGVzdCgpIHsKKwordmFyIHN5bTEgPSBTeW1ib2woImZvbyIpOwordmFyIHN5bTIgPSBTeW1i
b2woKTsKK3ZhciBvID0geworICBbc3ltMV06IGZ1bmN0aW9uKCl7fSwKKyAgW3N5bTJdOiBmdW5j
dGlvbigpe30KK307CisKK3JldHVybiBvW3N5bTFdLm5hbWUgPT09ICJbZm9vXSIgJiYKKyAgICAg
ICBvW3N5bTJdLm5hbWUgPT09ICIiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRo
cm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X3ZhcmlhYmxlc19jbGFzcy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Z1bmN0aW9uX25h
bWVfcHJvcGVydHlfdmFyaWFibGVzX2NsYXNzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9mdW5jdGlvbl9uYW1lX3Byb3BlcnR5X3ZhcmlhYmxlc19j
bGFzcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiB0ZXN0KCkg
eworCit2YXIgZm9vID0gY2xhc3Mge307Cit2YXIgYmFyID0gY2xhc3MgYmF6IHt9OwordmFyIHF1
eCA9IGNsYXNzIHsgc3RhdGljIG5hbWUoKSB7fSB9OworcmV0dXJuIGZvby5uYW1lID09PSAiZm9v
IiAmJgorICAgICAgIGJhci5uYW1lID09PSAiYmF6IiAmJgorICAgICAgIHR5cGVvZiBxdXgubmFt
ZSA9PT0gImZ1bmN0aW9uIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBu
ZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV92YXJpYWJsZXNfZnVuY3Rpb24uanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9mdW5jdGlvbl9uYW1l
X3Byb3BlcnR5X3ZhcmlhYmxlc19mdW5jdGlvbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZnVuY3Rpb25fbmFtZV9wcm9wZXJ0eV92YXJpYWJsZXNf
ZnVuY3Rpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorZnVuY3Rpb24gdGVz
dCgpIHsKKwordmFyIGZvbyA9IGZ1bmN0aW9uKCkge307Cit2YXIgYmFyID0gZnVuY3Rpb24gYmF6
KCkge307CityZXR1cm4gZm9vLm5hbWUgPT09ICJmb28iICYmIGJhci5uYW1lID09PSAiYmF6IjsK
KyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFp
bGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZ2VuZXJhdG9y
c18lR2VuZXJhdG9yUHJvdG90eXBlJS5jb25zdHJ1Y3Rvci5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfJUdlbmVyYXRvclByb3RvdHlw
ZSUuY29uc3RydWN0b3IuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L2dlbmVyYXRvcnNfJUdlbmVyYXRvclByb3RvdHlwZSUuY29uc3RydWN0b3IuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworZnVu
Y3Rpb24gKiBnICgpe30KK3ZhciBpdGVyYXRvciA9IG5ldyBnLmNvbnN0cnVjdG9yKCJhIiwiYiIs
ImMiLCJ5aWVsZCBhOyB5aWVsZCBiOyB5aWVsZCBjOyIpKDUsNiw3KTsKK3ZhciBpdGVtID0gaXRl
cmF0b3IubmV4dCgpOwordmFyIHBhc3NlZCA9IGl0ZW0udmFsdWUgPT09IDUgJiYgaXRlbS5kb25l
ID09PSBmYWxzZTsKK2l0ZW0gPSBpdGVyYXRvci5uZXh0KCk7CitwYXNzZWQgICAgJj0gaXRlbS52
YWx1ZSA9PT0gNiAmJiBpdGVtLmRvbmUgPT09IGZhbHNlOworaXRlbSA9IGl0ZXJhdG9yLm5leHQo
KTsKK3Bhc3NlZCAgICAmPSBpdGVtLnZhbHVlID09PSA3ICYmIGl0ZW0uZG9uZSA9PT0gZmFsc2U7
CitpdGVtID0gaXRlcmF0b3IubmV4dCgpOworcGFzc2VkICAgICY9IGl0ZW0udmFsdWUgPT09IHVu
ZGVmaW5lZCAmJiBpdGVtLmRvbmUgPT09IHRydWU7CityZXR1cm4gcGFzc2VkOworICAgICAgCit9
CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3JzXyVHZW5lcmF0
b3JQcm90b3R5cGUlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvZ2VuZXJhdG9yc18lR2VuZXJhdG9yUHJvdG90eXBlJS5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZ2VuZXJhdG9yc18lR2VuZXJhdG9yUHJv
dG90eXBlJS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE4IEBACitmdW5jdGlvbiB0ZXN0
KCkgeworCitmdW5jdGlvbiAqIGdlbmVyYXRvckZuKCl7fQordmFyIG93blByb3RvID0gT2JqZWN0
LmdldFByb3RvdHlwZU9mKGdlbmVyYXRvckZuKCkpOwordmFyIHBhc3NlZCA9IG93blByb3RvID09
PSBnZW5lcmF0b3JGbi5wcm90b3R5cGU7CisKK3ZhciBzaGFyZWRQcm90byA9IE9iamVjdC5nZXRQ
cm90b3R5cGVPZihvd25Qcm90byk7CitwYXNzZWQgJj0gc2hhcmVkUHJvdG8gIT09IE9iamVjdC5w
cm90b3R5cGUgJiYKKyAgc2hhcmVkUHJvdG8gPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZihmdW5j
dGlvbiooKXt9LnByb3RvdHlwZSkgJiYKKyAgc2hhcmVkUHJvdG8uaGFzT3duUHJvcGVydHkoJ25l
eHQnKTsKKworcmV0dXJuIHBhc3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0
aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvZ2VuZXJhdG9yc18lR2VuZXJhdG9yUHJvdG90eXBlJS5yZXR1cm4uanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3Jz
XyVHZW5lcmF0b3JQcm90b3R5cGUlLnJldHVybi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZ2VuZXJhdG9yc18lR2VuZXJhdG9yUHJvdG90eXBlJS5y
ZXR1cm4uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOSBAQAorZnVuY3Rpb24gdGVzdCgp
IHsKKworZnVuY3Rpb24gKiBnZW5lcmF0b3IoKXsKKyAgeWllbGQgNTsgeWllbGQgNjsKK307Cit2
YXIgaXRlcmF0b3IgPSBnZW5lcmF0b3IoKTsKK3ZhciBpdGVtID0gaXRlcmF0b3IubmV4dCgpOwor
dmFyIHBhc3NlZCA9IGl0ZW0udmFsdWUgPT09IDUgJiYgaXRlbS5kb25lID09PSBmYWxzZTsKK2l0
ZW0gPSBpdGVyYXRvci5yZXR1cm4oInF1eHF1dXgiKTsKK3Bhc3NlZCAgICAmPSBpdGVtLnZhbHVl
ID09PSAicXV4cXV1eCIgJiYgaXRlbS5kb25lID09PSB0cnVlOworaXRlbSA9IGl0ZXJhdG9yLm5l
eHQoKTsKK3Bhc3NlZCAgICAmPSBpdGVtLnZhbHVlID09PSB1bmRlZmluZWQgJiYgaXRlbS5kb25l
ID09PSB0cnVlOworcmV0dXJuIHBhc3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvZ2VuZXJhdG9yc18lR2VuZXJhdG9yUHJvdG90eXBlJS50aHJvdy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRv
cnNfJUdlbmVyYXRvclByb3RvdHlwZSUudGhyb3cuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfJUdlbmVyYXRvclByb3RvdHlwZSUu
dGhyb3cuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMCBAQAorZnVuY3Rpb24gdGVzdCgp
IHsKKwordmFyIHBhc3NlZCA9IGZhbHNlOworZnVuY3Rpb24gKiBnZW5lcmF0b3IoKXsKKyAgdHJ5
IHsKKyAgICB5aWVsZCA1OyB5aWVsZCA2OworICB9IGNhdGNoKGUpIHsKKyAgICBwYXNzZWQgPSAo
ZSA9PT0gImZvbyIpOworICB9Cit9OwordmFyIGl0ZXJhdG9yID0gZ2VuZXJhdG9yKCk7CitpdGVy
YXRvci5uZXh0KCk7CitpdGVyYXRvci50aHJvdygiZm9vIik7CityZXR1cm4gcGFzc2VkOworICAg
ICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQi
KTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3JzX2Jh
c2ljX2Z1bmN0aW9uYWxpdHkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9nZW5lcmF0b3JzX2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanMJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfYmFzaWNfZnVu
Y3Rpb25hbGl0eS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCitmdW5jdGlvbiAqIGdlbmVyYXRvcigpeworICB5aWVsZCA1OyB5aWVsZCA2Owor
fTsKK3ZhciBpdGVyYXRvciA9IGdlbmVyYXRvcigpOwordmFyIGl0ZW0gPSBpdGVyYXRvci5uZXh0
KCk7Cit2YXIgcGFzc2VkID0gaXRlbS52YWx1ZSA9PT0gNSAmJiBpdGVtLmRvbmUgPT09IGZhbHNl
OworaXRlbSA9IGl0ZXJhdG9yLm5leHQoKTsKK3Bhc3NlZCAgICAmPSBpdGVtLnZhbHVlID09PSA2
ICYmIGl0ZW0uZG9uZSA9PT0gZmFsc2U7CitpdGVtID0gaXRlcmF0b3IubmV4dCgpOworcGFzc2Vk
ICAgICY9IGl0ZW0udmFsdWUgPT09IHVuZGVmaW5lZCAmJiBpdGVtLmRvbmUgPT09IHRydWU7City
ZXR1cm4gcGFzc2VkOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBF
cnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9nZW5lcmF0b3JzX2NhbnRfdXNlX3RoaXNfd2l0aF9uZXcuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3JzX2NhbnRfdXNlX3RoaXNf
d2l0aF9uZXcuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L2dlbmVyYXRvcnNfY2FudF91c2VfdGhpc193aXRoX25ldy5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitmdW5jdGlvbiAqIGdlbmVyYXRv
cigpeworICB5aWVsZCB0aGlzLng7IHlpZWxkIHRoaXMueTsKK307Cit0cnkgeworICAobmV3IGdl
bmVyYXRvcigpKS5uZXh0KCk7Cit9CitjYXRjaCAoZSkgeworICByZXR1cm4gdHJ1ZTsKK30KKyAg
ICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVk
Iik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZ2VuZXJhdG9yc19j
b21wdXRlZF9zaG9ydGhhbmRfZ2VuZXJhdG9ycy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfY29tcHV0ZWRfc2hvcnRoYW5kX2dlbmVy
YXRvcnMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L2dlbmVyYXRvcnNfY29tcHV0ZWRfc2hvcnRoYW5kX2dlbmVyYXRvcnMuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwyMiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGdhcnBseSA9ICJn
ZW5lcmF0b3IiOwordmFyIG8gPSB7CisgICogW2dhcnBseV0gKCkgeworICAgIHlpZWxkIDU7IHlp
ZWxkIDY7CisgIH0sCit9OwordmFyIGl0ZXJhdG9yID0gby5nZW5lcmF0b3IoKTsKK3ZhciBpdGVt
ID0gaXRlcmF0b3IubmV4dCgpOwordmFyIHBhc3NlZCA9IGl0ZW0udmFsdWUgPT09IDUgJiYgaXRl
bS5kb25lID09PSBmYWxzZTsKK2l0ZW0gPSBpdGVyYXRvci5uZXh0KCk7CitwYXNzZWQgICAgJj0g
aXRlbS52YWx1ZSA9PT0gNiAmJiBpdGVtLmRvbmUgPT09IGZhbHNlOworaXRlbSA9IGl0ZXJhdG9y
Lm5leHQoKTsKK3Bhc3NlZCAgICAmPSBpdGVtLnZhbHVlID09PSB1bmRlZmluZWQgJiYgaXRlbS5k
b25lID09PSB0cnVlOworcmV0dXJuIHBhc3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvZ2VuZXJhdG9yc19jb21wdXRlZF9zaG9ydGhhbmRfZ2VuZXJh
dG9yc19jbGFzc2VzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvZ2VuZXJhdG9yc19jb21wdXRlZF9zaG9ydGhhbmRfZ2VuZXJhdG9yc19jbGFzc2VzLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0
b3JzX2NvbXB1dGVkX3Nob3J0aGFuZF9nZW5lcmF0b3JzX2NsYXNzZXMuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwyMiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGdhcnBseSA9ICJn
ZW5lcmF0b3IiOworY2xhc3MgQyB7CisgICogW2dhcnBseV0gKCkgeworICAgIHlpZWxkIDU7IHlp
ZWxkIDY7CisgIH0KK30KK3ZhciBpdGVyYXRvciA9IG5ldyBDKCkuZ2VuZXJhdG9yKCk7Cit2YXIg
aXRlbSA9IGl0ZXJhdG9yLm5leHQoKTsKK3ZhciBwYXNzZWQgPSBpdGVtLnZhbHVlID09PSA1ICYm
IGl0ZW0uZG9uZSA9PT0gZmFsc2U7CitpdGVtID0gaXRlcmF0b3IubmV4dCgpOworcGFzc2VkICAg
ICY9IGl0ZW0udmFsdWUgPT09IDYgJiYgaXRlbS5kb25lID09PSBmYWxzZTsKK2l0ZW0gPSBpdGVy
YXRvci5uZXh0KCk7CitwYXNzZWQgICAgJj0gaXRlbS52YWx1ZSA9PT0gdW5kZWZpbmVkICYmIGl0
ZW0uZG9uZSA9PT0gdHJ1ZTsKK3JldHVybiBwYXNzZWQ7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfY29ycmVjdF90aGlzX2JpbmRpbmcu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0
b3JzX2NvcnJlY3RfdGhpc19iaW5kaW5nLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3JzX2NvcnJlY3RfdGhpc19iaW5kaW5nLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK2Z1bmN0
aW9uICogZ2VuZXJhdG9yKCl7CisgIHlpZWxkIHRoaXMueDsgeWllbGQgdGhpcy55OworfTsKK3Zh
ciBpdGVyYXRvciA9IHsgZzogZ2VuZXJhdG9yLCB4OiA1LCB5OiA2IH0uZygpOwordmFyIGl0ZW0g
PSBpdGVyYXRvci5uZXh0KCk7Cit2YXIgcGFzc2VkID0gaXRlbS52YWx1ZSA9PT0gNSAmJiBpdGVt
LmRvbmUgPT09IGZhbHNlOworaXRlbSA9IGl0ZXJhdG9yLm5leHQoKTsKK3Bhc3NlZCAgICAmPSBp
dGVtLnZhbHVlID09PSA2ICYmIGl0ZW0uZG9uZSA9PT0gZmFsc2U7CitpdGVtID0gaXRlcmF0b3Iu
bmV4dCgpOworcGFzc2VkICAgICY9IGl0ZW0udmFsdWUgPT09IHVuZGVmaW5lZCAmJiBpdGVtLmRv
bmUgPT09IHRydWU7CityZXR1cm4gcGFzc2VkOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQor
ICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3JzX2dlbmVyYXRvcl9mdW5jdGlvbl9leHByZXNz
aW9ucy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dl
bmVyYXRvcnNfZ2VuZXJhdG9yX2Z1bmN0aW9uX2V4cHJlc3Npb25zLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3JzX2dlbmVyYXRvcl9m
dW5jdGlvbl9leHByZXNzaW9ucy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACitm
dW5jdGlvbiB0ZXN0KCkgeworCit2YXIgZ2VuZXJhdG9yID0gZnVuY3Rpb24gKiAoKXsKKyAgeWll
bGQgNTsgeWllbGQgNjsKK307Cit2YXIgaXRlcmF0b3IgPSBnZW5lcmF0b3IoKTsKK3ZhciBpdGVt
ID0gaXRlcmF0b3IubmV4dCgpOwordmFyIHBhc3NlZCA9IGl0ZW0udmFsdWUgPT09IDUgJiYgaXRl
bS5kb25lID09PSBmYWxzZTsKK2l0ZW0gPSBpdGVyYXRvci5uZXh0KCk7CitwYXNzZWQgICAgJj0g
aXRlbS52YWx1ZSA9PT0gNiAmJiBpdGVtLmRvbmUgPT09IGZhbHNlOworaXRlbSA9IGl0ZXJhdG9y
Lm5leHQoKTsKK3Bhc3NlZCAgICAmPSBpdGVtLnZhbHVlID09PSB1bmRlZmluZWQgJiYgaXRlbS5k
b25lID09PSB0cnVlOworcmV0dXJuIHBhc3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvZ2VuZXJhdG9yc19zZW5kaW5nLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZ2VuZXJhdG9yc19zZW5kaW5nLmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3Jz
X3NlbmRpbmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24gdGVz
dCgpIHsKKwordmFyIHNlbnQ7CitmdW5jdGlvbiAqIGdlbmVyYXRvcigpeworICBzZW50ID0gW3lp
ZWxkIDUsIHlpZWxkIDZdOworfTsKK3ZhciBpdGVyYXRvciA9IGdlbmVyYXRvcigpOworaXRlcmF0
b3IubmV4dCgpOworaXRlcmF0b3IubmV4dCgiZm9vIik7CitpdGVyYXRvci5uZXh0KCJiYXIiKTsK
K3JldHVybiBzZW50WzBdID09PSAiZm9vIiAmJiBzZW50WzFdID09PSAiYmFyIjsKKyAgICAgIAor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZ2VuZXJhdG9yc19zaG9ydGhh
bmRfZ2VuZXJhdG9yX21ldGhvZHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3JzX3Nob3J0aGFuZF9nZW5lcmF0b3JfbWV0aG9kcy5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZ2VuZXJhdG9y
c19zaG9ydGhhbmRfZ2VuZXJhdG9yX21ldGhvZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwyMSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIG8gPSB7CisgICogZ2VuZXJhdG9yKCkg
eworICAgIHlpZWxkIDU7IHlpZWxkIDY7CisgIH0sCit9OwordmFyIGl0ZXJhdG9yID0gby5nZW5l
cmF0b3IoKTsKK3ZhciBpdGVtID0gaXRlcmF0b3IubmV4dCgpOwordmFyIHBhc3NlZCA9IGl0ZW0u
dmFsdWUgPT09IDUgJiYgaXRlbS5kb25lID09PSBmYWxzZTsKK2l0ZW0gPSBpdGVyYXRvci5uZXh0
KCk7CitwYXNzZWQgICAgJj0gaXRlbS52YWx1ZSA9PT0gNiAmJiBpdGVtLmRvbmUgPT09IGZhbHNl
OworaXRlbSA9IGl0ZXJhdG9yLm5leHQoKTsKK3Bhc3NlZCAgICAmPSBpdGVtLnZhbHVlID09PSB1
bmRlZmluZWQgJiYgaXRlbS5kb25lID09PSB0cnVlOworcmV0dXJuIHBhc3NlZDsKKyAgICAgIAor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZ2VuZXJhdG9yc19zaG9ydGhh
bmRfZ2VuZXJhdG9yX21ldGhvZHNfY2xhc3Nlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfc2hvcnRoYW5kX2dlbmVyYXRvcl9tZXRo
b2RzX2NsYXNzZXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L2dlbmVyYXRvcnNfc2hvcnRoYW5kX2dlbmVyYXRvcl9tZXRob2RzX2NsYXNzZXMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworY2xh
c3MgQyB7CisgICogZ2VuZXJhdG9yKCkgeworICAgIHlpZWxkIDU7IHlpZWxkIDY7CisgIH0KK307
Cit2YXIgaXRlcmF0b3IgPSBuZXcgQygpLmdlbmVyYXRvcigpOwordmFyIGl0ZW0gPSBpdGVyYXRv
ci5uZXh0KCk7Cit2YXIgcGFzc2VkID0gaXRlbS52YWx1ZSA9PT0gNSAmJiBpdGVtLmRvbmUgPT09
IGZhbHNlOworaXRlbSA9IGl0ZXJhdG9yLm5leHQoKTsKK3Bhc3NlZCAgICAmPSBpdGVtLnZhbHVl
ID09PSA2ICYmIGl0ZW0uZG9uZSA9PT0gZmFsc2U7CitpdGVtID0gaXRlcmF0b3IubmV4dCgpOwor
cGFzc2VkICAgICY9IGl0ZW0udmFsdWUgPT09IHVuZGVmaW5lZCAmJiBpdGVtLmRvbmUgPT09IHRy
dWU7CityZXR1cm4gcGFzc2VkOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93
IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9nZW5lcmF0b3JzX3N0cmluZy1rZXllZF9zaG9ydGhhbmRfZ2VuZXJhdG9yX21l
dGhvZHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9n
ZW5lcmF0b3JzX3N0cmluZy1rZXllZF9zaG9ydGhhbmRfZ2VuZXJhdG9yX21ldGhvZHMuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNf
c3RyaW5nLWtleWVkX3Nob3J0aGFuZF9nZW5lcmF0b3JfbWV0aG9kcy5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDIxIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgbyA9IHsKKyAgKiAi
Zm9vIGJhciIoKSB7CisgICAgeWllbGQgNTsgeWllbGQgNjsKKyAgfSwKK307Cit2YXIgaXRlcmF0
b3IgPSBvWyJmb28gYmFyIl0oKTsKK3ZhciBpdGVtID0gaXRlcmF0b3IubmV4dCgpOwordmFyIHBh
c3NlZCA9IGl0ZW0udmFsdWUgPT09IDUgJiYgaXRlbS5kb25lID09PSBmYWxzZTsKK2l0ZW0gPSBp
dGVyYXRvci5uZXh0KCk7CitwYXNzZWQgICAgJj0gaXRlbS52YWx1ZSA9PT0gNiAmJiBpdGVtLmRv
bmUgPT09IGZhbHNlOworaXRlbSA9IGl0ZXJhdG9yLm5leHQoKTsKK3Bhc3NlZCAgICAmPSBpdGVt
LnZhbHVlID09PSB1bmRlZmluZWQgJiYgaXRlbS5kb25lID09PSB0cnVlOworcmV0dXJuIHBhc3Nl
ZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3Qg
ZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZ2VuZXJh
dG9yc195aWVsZF8qX2FycmF5cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWllbGRfKl9hcnJheXMuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWllbGRfKl9hcnJh
eXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorZnVuY3Rpb24gdGVzdCgpIHsK
KwordmFyIGl0ZXJhdG9yID0gKGZ1bmN0aW9uICogZ2VuZXJhdG9yKCkgeworICB5aWVsZCAqIFs1
LCA2XTsKK30oKSk7Cit2YXIgaXRlbSA9IGl0ZXJhdG9yLm5leHQoKTsKK3ZhciBwYXNzZWQgPSBp
dGVtLnZhbHVlID09PSA1ICYmIGl0ZW0uZG9uZSA9PT0gZmFsc2U7CitpdGVtID0gaXRlcmF0b3Iu
bmV4dCgpOworcGFzc2VkICAgICY9IGl0ZW0udmFsdWUgPT09IDYgJiYgaXRlbS5kb25lID09PSBm
YWxzZTsKK2l0ZW0gPSBpdGVyYXRvci5uZXh0KCk7CitwYXNzZWQgICAgJj0gaXRlbS52YWx1ZSA9
PT0gdW5kZWZpbmVkICYmIGl0ZW0uZG9uZSA9PT0gdHJ1ZTsKK3JldHVybiBwYXNzZWQ7CisgICAg
ICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIp
OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWll
bGRfKl9hc3RyYWxfcGxhbmVfc3RyaW5ncy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWllbGRfKl9hc3RyYWxfcGxhbmVfc3RyaW5n
cy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZ2Vu
ZXJhdG9yc195aWVsZF8qX2FzdHJhbF9wbGFuZV9zdHJpbmdzLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTggQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBpdGVyYXRvciA9IChmdW5j
dGlvbiAqIGdlbmVyYXRvcigpIHsKKyAgeWllbGQgKiAi8KCut/CgrrYiOworfSgpKTsKK3ZhciBp
dGVtID0gaXRlcmF0b3IubmV4dCgpOwordmFyIHBhc3NlZCA9IGl0ZW0udmFsdWUgPT09ICLwoK63
IiAmJiBpdGVtLmRvbmUgPT09IGZhbHNlOworaXRlbSA9IGl0ZXJhdG9yLm5leHQoKTsKK3Bhc3Nl
ZCAgICAmPSBpdGVtLnZhbHVlID09PSAi8KCutiIgJiYgaXRlbS5kb25lID09PSBmYWxzZTsKK2l0
ZW0gPSBpdGVyYXRvci5uZXh0KCk7CitwYXNzZWQgICAgJj0gaXRlbS52YWx1ZSA9PT0gdW5kZWZp
bmVkICYmIGl0ZW0uZG9uZSA9PT0gdHJ1ZTsKK3JldHVybiBwYXNzZWQ7CisgICAgICAKK30KKwor
aWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWllbGRfKl9nZW5l
cmF0b3JfaW5zdGFuY2VzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvZ2VuZXJhdG9yc195aWVsZF8qX2dlbmVyYXRvcl9pbnN0YW5jZXMuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWll
bGRfKl9nZW5lcmF0b3JfaW5zdGFuY2VzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjAg
QEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBpdGVyYXRvciA9IChmdW5jdGlvbiAqIGdlbmVy
YXRvcigpIHsKKyAgeWllbGQgKiAoZnVuY3Rpb24qKCl7IHlpZWxkIDU7IHlpZWxkIDY7IHlpZWxk
IDc7IH0oKSk7Cit9KCkpOwordmFyIGl0ZW0gPSBpdGVyYXRvci5uZXh0KCk7Cit2YXIgcGFzc2Vk
ID0gaXRlbS52YWx1ZSA9PT0gNSAmJiBpdGVtLmRvbmUgPT09IGZhbHNlOworaXRlbSA9IGl0ZXJh
dG9yLm5leHQoKTsKK3Bhc3NlZCAgICAmPSBpdGVtLnZhbHVlID09PSA2ICYmIGl0ZW0uZG9uZSA9
PT0gZmFsc2U7CitpdGVtID0gaXRlcmF0b3IubmV4dCgpOworcGFzc2VkICAgICY9IGl0ZW0udmFs
dWUgPT09IDcgJiYgaXRlbS5kb25lID09PSBmYWxzZTsKK2l0ZW0gPSBpdGVyYXRvci5uZXh0KCk7
CitwYXNzZWQgICAgJj0gaXRlbS52YWx1ZSA9PT0gdW5kZWZpbmVkICYmIGl0ZW0uZG9uZSA9PT0g
dHJ1ZTsKK3JldHVybiBwYXNzZWQ7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhy
b3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWllbGRfKl9nZW5lcmljX2l0ZXJhYmxlcy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWll
bGRfKl9nZW5lcmljX2l0ZXJhYmxlcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvZ2VuZXJhdG9yc195aWVsZF8qX2dlbmVyaWNfaXRlcmFibGVzLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjAgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3Zh
ciBpdGVyYXRvciA9IChmdW5jdGlvbiAqIGdlbmVyYXRvcigpIHsKKyAgeWllbGQgKiBnbG9iYWwu
X19jcmVhdGVJdGVyYWJsZU9iamVjdChbNSwgNiwgN10pOworfSgpKTsKK3ZhciBpdGVtID0gaXRl
cmF0b3IubmV4dCgpOwordmFyIHBhc3NlZCA9IGl0ZW0udmFsdWUgPT09IDUgJiYgaXRlbS5kb25l
ID09PSBmYWxzZTsKK2l0ZW0gPSBpdGVyYXRvci5uZXh0KCk7CitwYXNzZWQgICAgJj0gaXRlbS52
YWx1ZSA9PT0gNiAmJiBpdGVtLmRvbmUgPT09IGZhbHNlOworaXRlbSA9IGl0ZXJhdG9yLm5leHQo
KTsKK3Bhc3NlZCAgICAmPSBpdGVtLnZhbHVlID09PSA3ICYmIGl0ZW0uZG9uZSA9PT0gZmFsc2U7
CitpdGVtID0gaXRlcmF0b3IubmV4dCgpOworcGFzc2VkICAgICY9IGl0ZW0udmFsdWUgPT09IHVu
ZGVmaW5lZCAmJiBpdGVtLmRvbmUgPT09IHRydWU7CityZXR1cm4gcGFzc2VkOworICAgICAgCit9
CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3JzX3lpZWxkXypf
aW5zdGFuY2VzX29mX2l0ZXJhYmxlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWllbGRfKl9pbnN0YW5jZXNfb2ZfaXRlcmFibGVz
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5l
cmF0b3JzX3lpZWxkXypfaW5zdGFuY2VzX29mX2l0ZXJhYmxlcy5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDIwIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgaXRlcmF0b3IgPSAoZnVu
Y3Rpb24gKiBnZW5lcmF0b3IoKSB7CisgIHlpZWxkICogT2JqZWN0LmNyZWF0ZShfX2NyZWF0ZUl0
ZXJhYmxlT2JqZWN0KFs1LCA2LCA3XSkpOworfSgpKTsKK3ZhciBpdGVtID0gaXRlcmF0b3IubmV4
dCgpOwordmFyIHBhc3NlZCA9IGl0ZW0udmFsdWUgPT09IDUgJiYgaXRlbS5kb25lID09PSBmYWxz
ZTsKK2l0ZW0gPSBpdGVyYXRvci5uZXh0KCk7CitwYXNzZWQgICAgJj0gaXRlbS52YWx1ZSA9PT0g
NiAmJiBpdGVtLmRvbmUgPT09IGZhbHNlOworaXRlbSA9IGl0ZXJhdG9yLm5leHQoKTsKK3Bhc3Nl
ZCAgICAmPSBpdGVtLnZhbHVlID09PSA3ICYmIGl0ZW0uZG9uZSA9PT0gZmFsc2U7CitpdGVtID0g
aXRlcmF0b3IubmV4dCgpOworcGFzc2VkICAgICY9IGl0ZW0udmFsdWUgPT09IHVuZGVmaW5lZCAm
JiBpdGVtLmRvbmUgPT09IHRydWU7CityZXR1cm4gcGFzc2VkOworICAgICAgCit9CisKK2lmICgh
dGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3JzX3lpZWxkXypfaXRlcmF0b3Jf
Y2xvc2luZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L2dlbmVyYXRvcnNfeWllbGRfKl9pdGVyYXRvcl9jbG9zaW5nLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3JzX3lpZWxkXypfaXRlcmF0
b3JfY2xvc2luZy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI1IEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCit2YXIgY2xvc2VkID0gJyc7Cit2YXIgaXRlciA9IF9fY3JlYXRlSXRlcmFibGVP
YmplY3QoWzEsIDIsIDNdLCB7CisgICdyZXR1cm4nOiBmdW5jdGlvbigpeworICAgIGNsb3NlZCAr
PSAnYSc7CisgICAgcmV0dXJuIHtkb25lOiB0cnVlfTsKKyAgfQorfSk7Cit2YXIgZ2VuID0gKGZ1
bmN0aW9uKiBnZW5lcmF0b3IoKXsKKyAgdHJ5IHsKKyAgICB5aWVsZCAqaXRlcjsKKyAgfSBmaW5h
bGx5IHsKKyAgICBjbG9zZWQgKz0gJ2InOworICB9Cit9KSgpOworZ2VuLm5leHQoKTsKK2dlblsn
cmV0dXJuJ10oKTsKK3JldHVybiBjbG9zZWQgPT09ICdhYic7CisgICAgICAKK30KKworaWYgKCF0
ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWllbGRfKl9pdGVyYXRvcl9j
bG9zaW5nX3ZpYV90aHJvdy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L2dlbmVyYXRvcnNfeWllbGRfKl9pdGVyYXRvcl9jbG9zaW5nX3ZpYV90aHJvdy5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZ2VuZXJh
dG9yc195aWVsZF8qX2l0ZXJhdG9yX2Nsb3NpbmdfdmlhX3Rocm93LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMjQgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBjbG9zZWQgPSBmYWxz
ZTsKK3ZhciBpdGVyID0gZ2xvYmFsLl9fY3JlYXRlSXRlcmFibGVPYmplY3QoWzEsIDIsIDNdLCB7
CisgICd0aHJvdyc6IHVuZGVmaW5lZCwKKyAgJ3JldHVybic6IGZ1bmN0aW9uKCkgeworICAgIGNs
b3NlZCA9IHRydWU7CisgICAgcmV0dXJuIHtkb25lOiB0cnVlfTsKKyAgfQorfSk7Cit2YXIgZ2Vu
ID0gKGZ1bmN0aW9uKigpeworICB0cnkgeworICAgIHlpZWxkICppdGVyOworICB9IGNhdGNoKGUp
e30KK30pKCk7CitnZW4ubmV4dCgpOworZ2VuWyd0aHJvdyddKCk7CityZXR1cm4gY2xvc2VkOwor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3Jz
X3lpZWxkXypfb25fbm9uLWl0ZXJhYmxlc19pc19hX3J1bnRpbWVfZXJyb3IuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3JzX3lpZWxkXypf
b25fbm9uLWl0ZXJhYmxlc19pc19hX3J1bnRpbWVfZXJyb3IuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWllbGRfKl9vbl9ub24t
aXRlcmFibGVzX2lzX2FfcnVudGltZV9lcnJvci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDIxIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgaXRlcmF0b3IgPSAoZnVuY3Rpb24gKiBn
ZW5lcmF0b3IoKSB7CisgIHlpZWxkICogWzVdOworfSgpKTsKK3ZhciBpdGVtID0gaXRlcmF0b3Iu
bmV4dCgpOwordmFyIHBhc3NlZCA9IGl0ZW0udmFsdWUgPT09IDUgJiYgaXRlbS5kb25lID09PSBm
YWxzZTsKK2l0ZXJhdG9yID0gKGZ1bmN0aW9uICogZ2VuZXJhdG9yKCkgeworICB5aWVsZCAqIDU7
Cit9KCkpOwordHJ5IHsKKyAgaXRlcmF0b3IubmV4dCgpOworfSBjYXRjaCAoZSkgeworICByZXR1
cm4gcGFzc2VkOworfQorICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBF
cnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9nZW5lcmF0b3JzX3lpZWxkXypfc3BhcnNlX2FycmF5cy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWllbGRfKl9zcGFyc2Vf
YXJyYXlzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9nZW5lcmF0b3JzX3lpZWxkXypfc3BhcnNlX2FycmF5cy5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDE4IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgaXRlcmF0b3IgPSAoZnVuY3Rp
b24gKiBnZW5lcmF0b3IoKSB7CisgIHlpZWxkICogWywsXTsKK30oKSk7Cit2YXIgaXRlbSA9IGl0
ZXJhdG9yLm5leHQoKTsKK3ZhciBwYXNzZWQgPSBpdGVtLnZhbHVlID09PSB1bmRlZmluZWQgJiYg
aXRlbS5kb25lID09PSBmYWxzZTsKK2l0ZW0gPSBpdGVyYXRvci5uZXh0KCk7CitwYXNzZWQgICAg
Jj0gaXRlbS52YWx1ZSA9PT0gdW5kZWZpbmVkICYmIGl0ZW0uZG9uZSA9PT0gZmFsc2U7CitpdGVt
ID0gaXRlcmF0b3IubmV4dCgpOworcGFzc2VkICAgICY9IGl0ZW0udmFsdWUgPT09IHVuZGVmaW5l
ZCAmJiBpdGVtLmRvbmUgPT09IHRydWU7CityZXR1cm4gcGFzc2VkOworICAgICAgCit9CisKK2lm
ICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3JzX3lpZWxkXypfc3RyaW5n
cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVy
YXRvcnNfeWllbGRfKl9zdHJpbmdzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3JzX3lpZWxkXypfc3RyaW5ncy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE4IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgaXRlcmF0b3Ig
PSAoZnVuY3Rpb24gKiBnZW5lcmF0b3IoKSB7CisgIHlpZWxkICogIjU2IjsKK30oKSk7Cit2YXIg
aXRlbSA9IGl0ZXJhdG9yLm5leHQoKTsKK3ZhciBwYXNzZWQgPSBpdGVtLnZhbHVlID09PSAiNSIg
JiYgaXRlbS5kb25lID09PSBmYWxzZTsKK2l0ZW0gPSBpdGVyYXRvci5uZXh0KCk7CitwYXNzZWQg
ICAgJj0gaXRlbS52YWx1ZSA9PT0gIjYiICYmIGl0ZW0uZG9uZSA9PT0gZmFsc2U7CitpdGVtID0g
aXRlcmF0b3IubmV4dCgpOworcGFzc2VkICAgICY9IGl0ZW0udmFsdWUgPT09IHVuZGVmaW5lZCAm
JiBpdGVtLmRvbmUgPT09IHRydWU7CityZXR1cm4gcGFzc2VkOworICAgICAgCit9CisKK2lmICgh
dGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9nZW5lcmF0b3JzX3lpZWxkX29wZXJhdG9yX3By
ZWNlZGVuY2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9nZW5lcmF0b3JzX3lpZWxkX29wZXJhdG9yX3ByZWNlZGVuY2UuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2dlbmVyYXRvcnNfeWllbGRfb3BlcmF0
b3JfcHJlY2VkZW5jZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlv
biB0ZXN0KCkgeworCit2YXIgcGFzc2VkOworZnVuY3Rpb24gKiBnZW5lcmF0b3IoKXsKKyAgcGFz
c2VkID0geWllbGQgMCA/IHRydWUgOiBmYWxzZTsKK307Cit2YXIgaXRlcmF0b3IgPSBnZW5lcmF0
b3IoKTsKK2l0ZXJhdG9yLm5leHQoKTsKK2l0ZXJhdG9yLm5leHQodHJ1ZSk7CityZXR1cm4gcGFz
c2VkOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVz
dCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9sZXRf
YmFzaWNfc3VwcG9ydC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L2xldF9iYXNpY19zdXBwb3J0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9sZXRfYmFzaWNfc3VwcG9ydC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitsZXQgZm9vID0gMTIzOworcmV0
dXJuIChmb28gPT09IDEyMyk7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cg
bmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L2xldF9iYXNpY19zdXBwb3J0X3N0cmljdF9tb2RlLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbGV0X2Jhc2ljX3N1cHBvcnRfc3RyaWN0
X21vZGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L2xldF9iYXNpY19zdXBwb3J0X3N0cmljdF9tb2RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKyd1c2Ugc3RyaWN0JzsKK2xldCBmb28gPSAx
MjM7CityZXR1cm4gKGZvbyA9PT0gMTIzKTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvbGV0X2Zvci1sb29wX2l0ZXJhdGlvbl9zY29wZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2xldF9mb3ItbG9vcF9pdGVy
YXRpb25fc2NvcGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L2xldF9mb3ItbG9vcF9pdGVyYXRpb25fc2NvcGUuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwyMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworbGV0IHNjb3BlcyA9IFtdOworZm9y
KGxldCBpID0gMDsgaSA8IDI7IGkrKykgeworICBzY29wZXMucHVzaChmdW5jdGlvbigpeyByZXR1
cm4gaTsgfSk7Cit9CitsZXQgcGFzc2VkID0gKHNjb3Blc1swXSgpID09PSAwICYmIHNjb3Blc1sx
XSgpID09PSAxKTsKKworc2NvcGVzID0gW107Citmb3IobGV0IGkgaW4geyBhOjEsIGI6MSB9KSB7
CisgIHNjb3Blcy5wdXNoKGZ1bmN0aW9uKCl7IHJldHVybiBpOyB9KTsKK30KK3Bhc3NlZCAmPSAo
c2NvcGVzWzBdKCkgPT09ICJhIiAmJiBzY29wZXNbMV0oKSA9PT0gImIiKTsKK3JldHVybiBwYXNz
ZWQ7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0
IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2xldF9m
b3ItbG9vcF9pdGVyYXRpb25fc2NvcGVfc3RyaWN0X21vZGUuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9sZXRfZm9yLWxvb3BfaXRlcmF0aW9uX3Njb3Bl
X3N0cmljdF9tb2RlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9sZXRfZm9yLWxvb3BfaXRlcmF0aW9uX3Njb3BlX3N0cmljdF9tb2RlLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKyd1c2Ugc3Ry
aWN0JzsKK2xldCBzY29wZXMgPSBbXTsKK2ZvcihsZXQgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAg
c2NvcGVzLnB1c2goZnVuY3Rpb24oKXsgcmV0dXJuIGk7IH0pOworfQorbGV0IHBhc3NlZCA9IChz
Y29wZXNbMF0oKSA9PT0gMCAmJiBzY29wZXNbMV0oKSA9PT0gMSk7CisKK3Njb3BlcyA9IFtdOwor
Zm9yKGxldCBpIGluIHsgYToxLCBiOjEgfSkgeworICBzY29wZXMucHVzaChmdW5jdGlvbigpeyBy
ZXR1cm4gaTsgfSk7Cit9CitwYXNzZWQgJj0gKHNjb3Blc1swXSgpID09PSAiYSIgJiYgc2NvcGVz
WzFdKCkgPT09ICJiIik7CityZXR1cm4gcGFzc2VkOworICAgICAgCit9CisKK2lmICghdGVzdCgp
KQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9sZXRfZm9yLWxvb3Bfc3RhdGVtZW50X3Njb3BlLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbGV0X2Zvci1sb29w
X3N0YXRlbWVudF9zY29wZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvbGV0X2Zvci1sb29wX3N0YXRlbWVudF9zY29wZS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitsZXQgYmF6ID0gMTsKK2Zv
cihsZXQgYmF6ID0gMDsgZmFsc2U7IGZhbHNlKSB7fQorcmV0dXJuIGJheiA9PT0gMTsKKyAgICAg
IAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbGV0X2Zvci1sb29wX3N0
YXRlbWVudF9zY29wZV9zdHJpY3RfbW9kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L2xldF9mb3ItbG9vcF9zdGF0ZW1lbnRfc2NvcGVfc3RyaWN0X21v
ZGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2xl
dF9mb3ItbG9vcF9zdGF0ZW1lbnRfc2NvcGVfc3RyaWN0X21vZGUuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworJ3VzZSBzdHJpY3QnOworbGV0
IGJheiA9IDE7Citmb3IobGV0IGJheiA9IDA7IGZhbHNlOyBmYWxzZSkge30KK3JldHVybiBiYXog
PT09IDE7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJU
ZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2xl
dF9pc19ibG9jay1zY29wZWQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9sZXRfaXNfYmxvY2stc2NvcGVkLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9sZXRfaXNfYmxvY2stc2NvcGVkLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK2xldCBiYXIgPSAx
MjM7Cit7IGxldCBiYXIgPSA0NTY7IH0KK3JldHVybiBiYXIgPT09IDEyMzsKKyAgICAgIAorfQor
CitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbGV0X2lzX2Jsb2NrLXNjb3BlZF9z
dHJpY3RfbW9kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L2xldF9pc19ibG9jay1zY29wZWRfc3RyaWN0X21vZGUuanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2xldF9pc19ibG9jay1zY29wZWRfc3RyaWN0
X21vZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gdGVzdCgp
IHsKKworJ3VzZSBzdHJpY3QnOworbGV0IGJhciA9IDEyMzsKK3sgbGV0IGJhciA9IDQ1NjsgfQor
cmV0dXJuIGJhciA9PT0gMTIzOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93
IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9sZXRfdGVtcG9yYWxfZGVhZF96b25lLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbGV0X3RlbXBvcmFsX2RlYWRfem9uZS5qcwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbGV0X3RlbXBvcmFs
X2RlYWRfem9uZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCit2YXIgcGFzc2VkID0gKGZ1bmN0aW9uKCl7IHRyeSB7ICBxdXg7IH0gY2F0Y2go
ZSkgeyByZXR1cm4gdHJ1ZTsgfX0oKSk7CitmdW5jdGlvbiBmbigpIHsgcGFzc2VkICY9IHF1eCA9
PT0gNDU2OyB9CitsZXQgcXV4ID0gNDU2OworZm4oKTsKK3JldHVybiBwYXNzZWQ7CisgICAgICAK
K30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOwor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2xldF90ZW1wb3JhbF9kZWFk
X3pvbmVfc3RyaWN0X21vZGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9sZXRfdGVtcG9yYWxfZGVhZF96b25lX3N0cmljdF9tb2RlLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9sZXRfdGVtcG9yYWxfZGVh
ZF96b25lX3N0cmljdF9tb2RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTQgQEAKK2Z1
bmN0aW9uIHRlc3QoKSB7CisKKyd1c2Ugc3RyaWN0JzsKK3ZhciBwYXNzZWQgPSAoZnVuY3Rpb24o
KXsgdHJ5IHsgIHF1eDsgfSBjYXRjaChlKSB7IHJldHVybiB0cnVlOyB9fSgpKTsKK2Z1bmN0aW9u
IGZuKCkgeyBwYXNzZWQgJj0gcXV4ID09PSA0NTY7IH0KK2xldCBxdXggPSA0NTY7CitmbigpOwor
cmV0dXJuIHBhc3NlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcg
RXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvbWlzY2VsbGFuZW91c19JbnZhbGlkX0RhdGUuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9taXNjZWxsYW5lb3VzX0ludmFsaWRfRGF0ZS5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbWlzY2VsbGFu
ZW91c19JbnZhbGlkX0RhdGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5j
dGlvbiB0ZXN0KCkgeworCityZXR1cm4gbmV3IERhdGUoTmFOKSArICIiID09PSAiSW52YWxpZCBE
YXRlIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRl
c3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbWlz
Y2VsbGFuZW91c19SZWdFeHBfY29uc3RydWN0b3JfY2FuX2FsdGVyX2ZsYWdzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbWlzY2VsbGFuZW91c19SZWdF
eHBfY29uc3RydWN0b3JfY2FuX2FsdGVyX2ZsYWdzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9taXNjZWxsYW5lb3VzX1JlZ0V4cF9jb25zdHJ1Y3Rv
cl9jYW5fYWx0ZXJfZmxhZ3MuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5j
dGlvbiB0ZXN0KCkgeworCityZXR1cm4gbmV3IFJlZ0V4cCgvLi9pbSwgImciKS5nbG9iYWwgPT09
IHRydWU7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJU
ZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L21p
c2NlbGxhbmVvdXNfU3RyaW5nLnByb3RvdHlwZV9jYXNlX21ldGhvZHNfVW5pY29kZV9zdXBwb3J0
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbWlzY2Vs
bGFuZW91c19TdHJpbmcucHJvdG90eXBlX2Nhc2VfbWV0aG9kc19Vbmljb2RlX3N1cHBvcnQuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L21pc2NlbGxh
bmVvdXNfU3RyaW5nLnByb3RvdHlwZV9jYXNlX21ldGhvZHNfVW5pY29kZV9zdXBwb3J0LmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJu
ICLwkJCYIi50b0xvd2VyQ2FzZSgpID09PSAi8JCRgCIgJiYgIvCQkYAiLnRvVXBwZXJDYXNlKCkg
PT09ICLwkJCYIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJy
b3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvbWlzY2VsbGFuZW91c19hY2Nlc3NvcnNfYXJlbnRfY29uc3RydWN0b3JzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbWlzY2VsbGFuZW91c19hY2Nl
c3NvcnNfYXJlbnRfY29uc3RydWN0b3JzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9taXNjZWxsYW5lb3VzX2FjY2Vzc29yc19hcmVudF9jb25zdHJ1
Y3RvcnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVzdCgp
IHsKKwordHJ5IHsKKyAgbmV3IChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHtnZXQg
YSgpe319LCAnYScpKS5nZXQ7Cit9IGNhdGNoKGUpIHsKKyAgcmV0dXJuIHRydWU7Cit9CisgICAg
ICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIp
OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L21pc2NlbGxhbmVvdXNf
YnVpbHQtaW5fcHJvdG90eXBlc19hcmVfbm90X2luc3RhbmNlcy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L21pc2NlbGxhbmVvdXNfYnVpbHQtaW5fcHJv
dG90eXBlc19hcmVfbm90X2luc3RhbmNlcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvbWlzY2VsbGFuZW91c19idWlsdC1pbl9wcm90b3R5cGVzX2Fy
ZV9ub3RfaW5zdGFuY2VzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0
aW9uIHRlc3QoKSB7CisKK3RyeSB7CisgIFJlZ0V4cC5wcm90b3R5cGUuc291cmNlOyByZXR1cm4g
ZmFsc2U7Cit9IGNhdGNoKGUpIHt9Cit0cnkgeworICBEYXRlLnByb3RvdHlwZS52YWx1ZU9mKCk7
IHJldHVybiBmYWxzZTsKK30gY2F0Y2goZSkge30KK3JldHVybiB0cnVlOworICAgICAgCit9CisK
K2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9taXNjZWxsYW5lb3VzX2R1cGxpY2F0
ZV9wcm9wZXJ0eV9uYW1lc19pbl9zdHJpY3RfbW9kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L21pc2NlbGxhbmVvdXNfZHVwbGljYXRlX3Byb3BlcnR5
X25hbWVzX2luX3N0cmljdF9tb2RlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9taXNjZWxsYW5lb3VzX2R1cGxpY2F0ZV9wcm9wZXJ0eV9uYW1lc19p
bl9zdHJpY3RfbW9kZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlv
biB0ZXN0KCkgeworCisndXNlIHN0cmljdCc7CityZXR1cm4gdGhpcyA9PT0gdW5kZWZpbmVkICYm
ICh7IGE6MSwgYToxIH0pLmEgPT09IDE7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L21pc2NlbGxhbmVvdXNfZnVuY3Rpb25fbGVuZ3RoX2lzX2NvbmZpZ3Vy
YWJsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L21p
c2NlbGxhbmVvdXNfZnVuY3Rpb25fbGVuZ3RoX2lzX2NvbmZpZ3VyYWJsZS5qcwkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbWlzY2VsbGFuZW91c19mdW5j
dGlvbl9sZW5ndGhfaXNfY29uZmlndXJhYmxlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTcgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBmbiA9IGZ1bmN0aW9uKGEsIGIpIHt9Owor
Cit2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZm4sICJsZW5ndGgi
KTsKK2lmIChkZXNjLmNvbmZpZ3VyYWJsZSkgeworICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZm4s
ICJsZW5ndGgiLCB7IHZhbHVlOiAxIH0pOworICByZXR1cm4gZm4ubGVuZ3RoID09PSAxOworfQor
CityZXR1cm4gZmFsc2U7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3
IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L21pc2NlbGxhbmVvdXNfbm9fYXNzaWdubWVudHNfYWxsb3dlZF9pbl9mb3ItaW5faGVh
ZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L21pc2Nl
bGxhbmVvdXNfbm9fYXNzaWdubWVudHNfYWxsb3dlZF9pbl9mb3ItaW5faGVhZC5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbWlzY2VsbGFuZW91c19u
b19hc3NpZ25tZW50c19hbGxvd2VkX2luX2Zvci1pbl9oZWFkLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTQgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3RyeSB7CisgIGV2YWwoJ2ZvciAo
dmFyIGkgPSAwIGluIHt9KSB7fScpOworfQorY2F0Y2goZSkgeworICByZXR1cm4gdHJ1ZTsKK30K
KyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFp
bGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbWlzY2VsbGFu
ZW91c19ub19lc2NhcGVkX3Jlc2VydmVkX3dvcmRzX2FzX2lkZW50aWZpZXJzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbWlzY2VsbGFuZW91c19ub19l
c2NhcGVkX3Jlc2VydmVkX3dvcmRzX2FzX2lkZW50aWZpZXJzLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9taXNjZWxsYW5lb3VzX25vX2VzY2FwZWRf
cmVzZXJ2ZWRfd29yZHNfYXNfaWRlbnRpZmllcnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxNCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIFx1MDA2MTsKK3RyeSB7CisgIGV2YWwo
J3ZhciB2XFx1MDA2MXInKTsKK30gY2F0Y2goZSkgeworICByZXR1cm4gdHJ1ZTsKK30KKyAgICAg
IAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbWlzY2VsbGFuZW91c19u
b19zZW1pY29sb25fbmVlZGVkX2FmdGVyX2RvLXdoaWxlLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbWlzY2VsbGFuZW91c19ub19zZW1pY29sb25fbmVl
ZGVkX2FmdGVyX2RvLXdoaWxlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9taXNjZWxsYW5lb3VzX25vX3NlbWljb2xvbl9uZWVkZWRfYWZ0ZXJfZG8t
d2hpbGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5jdGlvbiB0ZXN0KCkg
eworCitkbyB7fSB3aGlsZSAoZmFsc2UpIHJldHVybiB0cnVlOworICAgICAgCit9CisKK2lmICgh
dGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9taXNjZWxsYW5lb3VzX3N1YmNsYXNzYWJsZXNf
Qm9vbGVhbl9pc19zdWJjbGFzc2FibGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9taXNjZWxsYW5lb3VzX3N1YmNsYXNzYWJsZXNfQm9vbGVhbl9pc19z
dWJjbGFzc2FibGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L21pc2NlbGxhbmVvdXNfc3ViY2xhc3NhYmxlc19Cb29sZWFuX2lzX3N1YmNsYXNzYWJs
ZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiB0ZXN0KCkgewor
CitjbGFzcyBDIGV4dGVuZHMgQm9vbGVhbiB7fQordmFyIGMgPSBuZXcgQyh0cnVlKTsKK3JldHVy
biBjIGluc3RhbmNlb2YgQm9vbGVhbgorICAmJiBjID09IHRydWU7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L21pc2NlbGxhbmVvdXNfc3ViY2xhc3NhYmxl
c19NYXBfaXNfc3ViY2xhc3NhYmxlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvbWlzY2VsbGFuZW91c19zdWJjbGFzc2FibGVzX01hcF9pc19zdWJjbGFz
c2FibGUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L21pc2NlbGxhbmVvdXNfc3ViY2xhc3NhYmxlc19NYXBfaXNfc3ViY2xhc3NhYmxlLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBrZXkg
PSB7fTsKK2NsYXNzIE0gZXh0ZW5kcyBNYXAge30KK3ZhciBtYXAgPSBuZXcgTSgpOworCittYXAu
c2V0KGtleSwgMTIzKTsKKworcmV0dXJuIG1hcC5oYXMoa2V5KSAmJiBtYXAuZ2V0KGtleSkgPT09
IDEyMzsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRl
c3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbWlz
Y2VsbGFuZW91c19zdWJjbGFzc2FibGVzX051bWJlcl9pc19zdWJjbGFzc2FibGUuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9taXNjZWxsYW5lb3VzX3N1
YmNsYXNzYWJsZXNfTnVtYmVyX2lzX3N1YmNsYXNzYWJsZS5qcwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbWlzY2VsbGFuZW91c19zdWJjbGFzc2FibGVz
X051bWJlcl9pc19zdWJjbGFzc2FibGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBA
QAorZnVuY3Rpb24gdGVzdCgpIHsKKworY2xhc3MgQyBleHRlbmRzIE51bWJlciB7fQordmFyIGMg
PSBuZXcgQyg2KTsKK3JldHVybiBjIGluc3RhbmNlb2YgTnVtYmVyCisgICYmICtjID09PSA2Owor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9taXNjZWxsYW5l
b3VzX3N1YmNsYXNzYWJsZXNfU2V0X2lzX3N1YmNsYXNzYWJsZS5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L21pc2NlbGxhbmVvdXNfc3ViY2xhc3NhYmxl
c19TZXRfaXNfc3ViY2xhc3NhYmxlLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9taXNjZWxsYW5lb3VzX3N1YmNsYXNzYWJsZXNfU2V0X2lzX3N1YmNs
YXNzYWJsZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlvbiB0ZXN0
KCkgeworCit2YXIgb2JqID0ge307CitjbGFzcyBTIGV4dGVuZHMgU2V0IHt9Cit2YXIgc2V0ID0g
bmV3IFMoKTsKKworc2V0LmFkZCgxMjMpOworc2V0LmFkZCgxMjMpOworCityZXR1cm4gc2V0Lmhh
cygxMjMpOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigi
VGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9t
aXNjZWxsYW5lb3VzX3N1YmNsYXNzYWJsZXNfU3RyaW5nX2lzX3N1YmNsYXNzYWJsZS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L21pc2NlbGxhbmVvdXNf
c3ViY2xhc3NhYmxlc19TdHJpbmdfaXNfc3ViY2xhc3NhYmxlLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9taXNjZWxsYW5lb3VzX3N1YmNsYXNzYWJs
ZXNfU3RyaW5nX2lzX3N1YmNsYXNzYWJsZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitjbGFzcyBDIGV4dGVuZHMgU3RyaW5nIHt9Cit2YXIg
YyA9IG5ldyBDKCJnb2xseSIpOworcmV0dXJuIGMgaW5zdGFuY2VvZiBTdHJpbmcKKyAgJiYgYyAr
ICcnID09PSAiZ29sbHkiCisgICYmIGNbMF0gPT09ICJnIgorICAmJiBjLmxlbmd0aCA9PT0gNTsK
KyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFp
bGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbmV3LnRhcmdl
dF9hc3NpZ25tZW50X2lzX2FuX2Vhcmx5X2Vycm9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbmV3LnRhcmdldF9hc3NpZ25tZW50X2lzX2FuX2Vhcmx5
X2Vycm9yLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9uZXcudGFyZ2V0X2Fzc2lnbm1lbnRfaXNfYW5fZWFybHlfZXJyb3IuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxOCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIHBhc3NlZCA9IGZh
bHNlOworbmV3IGZ1bmN0aW9uIGYoKSB7CisgIHBhc3NlZCA9IChuZXcudGFyZ2V0ID09PSBmKTsK
K30oKTsKKwordHJ5IHsKKyAgRnVuY3Rpb24oIm5ldy50YXJnZXQgPSBmdW5jdGlvbigpe307Iik7
Cit9IGNhdGNoKGUpIHsKKyAgcmV0dXJuIHBhc3NlZDsKK30KKyAgICAgIAorfQorCitpZiAoIXRl
c3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbmV3LnRhcmdldF9pbl9jb25zdHJ1Y3RvcnMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9uZXcudGFyZ2V0
X2luX2NvbnN0cnVjdG9ycy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvbmV3LnRhcmdldF9pbl9jb25zdHJ1Y3RvcnMuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIHBhc3NlZCA9IGZhbHNl
OworbmV3IGZ1bmN0aW9uIGYoKSB7CisgIHBhc3NlZCA9IChuZXcudGFyZ2V0ID09PSBmKTsKK30o
KTsKKyhmdW5jdGlvbigpIHsKKyAgcGFzc2VkICY9IChuZXcudGFyZ2V0ID09PSB1bmRlZmluZWQp
OworfSgpKTsKK3JldHVybiBwYXNzZWQ7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L25vbi1zdHJpY3RfZnVuY3Rpb25fc2VtYW50aWNzX2Z1bmN0aW9uX3N0
YXRlbWVudHNfaW5faWYtc3RhdGVtZW50X2NsYXVzZXMuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9ub24tc3RyaWN0X2Z1bmN0aW9uX3NlbWFudGljc19m
dW5jdGlvbl9zdGF0ZW1lbnRzX2luX2lmLXN0YXRlbWVudF9jbGF1c2VzLmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9ub24tc3RyaWN0X2Z1bmN0aW9u
X3NlbWFudGljc19mdW5jdGlvbl9zdGF0ZW1lbnRzX2luX2lmLXN0YXRlbWVudF9jbGF1c2VzLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKKy8v
IE5vdGU6IG9ubHkgYXZhaWxhYmxlIG91dHNpZGUgb2Ygc3RyaWN0IG1vZGUuCitpZiAoIXRoaXMp
IHJldHVybiBmYWxzZTsKKworaWYodHJ1ZSkgZnVuY3Rpb24gZm9vKCkgeyByZXR1cm4gMjsgfQor
aWYoZmFsc2UpIHt9IGVsc2UgZnVuY3Rpb24gYmFyKCkgeyByZXR1cm4gMzsgfQoraWYodHJ1ZSkg
ZnVuY3Rpb24gYmF6KCkgeyByZXR1cm4gNDsgfSBlbHNlIHt9CitpZihmYWxzZSkgZnVuY3Rpb24g
cXV4KCkgeyByZXR1cm4gNTsgfSBlbHNlIGZ1bmN0aW9uIHF1eCgpIHsgcmV0dXJuIDY7IH0KK3Jl
dHVybiBmb28oKSA9PT0gMiAmJiBiYXIoKSA9PT0gMyAmJiBiYXooKSA9PT0gNCAmJiBxdXgoKSA9
PT0gNjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRl
c3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvbm9u
LXN0cmljdF9mdW5jdGlvbl9zZW1hbnRpY3NfaG9pc3RlZF9ibG9jay1sZXZlbF9mdW5jdGlvbl9k
ZWNsYXJhdGlvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L25vbi1zdHJpY3RfZnVuY3Rpb25fc2VtYW50aWNzX2hvaXN0ZWRfYmxvY2stbGV2ZWxfZnVu
Y3Rpb25fZGVjbGFyYXRpb24uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L25vbi1zdHJpY3RfZnVuY3Rpb25fc2VtYW50aWNzX2hvaXN0ZWRfYmxvY2st
bGV2ZWxfZnVuY3Rpb25fZGVjbGFyYXRpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwy
MyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworLy8gTm90ZTogb25seSBhdmFpbGFibGUgb3V0c2lk
ZSBvZiBzdHJpY3QgbW9kZS4KK2lmICghdGhpcykgcmV0dXJuIGZhbHNlOwordmFyIHBhc3NlZCA9
IGYoKSA9PT0gMTsKK2Z1bmN0aW9uIGYoKSB7IHJldHVybiAxOyB9CisKK3Bhc3NlZCAmPSB0eXBl
b2YgZyA9PT0gJ3VuZGVmaW5lZCc7Cit7IGZ1bmN0aW9uIGcoKSB7IHJldHVybiAxOyB9IH0KK3Bh
c3NlZCAmPSBnKCkgPT09IDE7CisKK3Bhc3NlZCAmPSBoKCkgPT09IDI7Cit7IGZ1bmN0aW9uIGgo
KSB7IHJldHVybiAxOyB9IH0KK2Z1bmN0aW9uIGgoKSB7IHJldHVybiAyOyB9CitwYXNzZWQgJj0g
aCgpID09PSAxOworCityZXR1cm4gcGFzc2VkOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQor
ICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9ub24tc3RyaWN0X2Z1bmN0aW9uX3NlbWFudGljc19sYWJlbGVk
X2Z1bmN0aW9uX3N0YXRlbWVudHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9ub24tc3RyaWN0X2Z1bmN0aW9uX3NlbWFudGljc19sYWJlbGVkX2Z1bmN0
aW9uX3N0YXRlbWVudHMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L25vbi1zdHJpY3RfZnVuY3Rpb25fc2VtYW50aWNzX2xhYmVsZWRfZnVuY3Rpb25f
c3RhdGVtZW50cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCisvLyBOb3RlOiBvbmx5IGF2YWlsYWJsZSBvdXRzaWRlIG9mIHN0cmljdCBtb2Rl
LgoraWYgKCF0aGlzKSByZXR1cm4gZmFsc2U7CisKK2xhYmVsOiBmdW5jdGlvbiBmb28oKSB7IHJl
dHVybiAyOyB9CityZXR1cm4gZm9vKCkgPT09IDI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkp
CisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L29iamVjdF9saXRlcmFsX2V4dGVuc2lvbnNfY29tcHV0ZWRf
YWNjZXNzb3JzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvb2JqZWN0X2xpdGVyYWxfZXh0ZW5zaW9uc19jb21wdXRlZF9hY2Nlc3NvcnMuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L29iamVjdF9saXRlcmFs
X2V4dGVuc2lvbnNfY29tcHV0ZWRfYWNjZXNzb3JzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTYgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciB4ID0gJ3knLAorICAgIHZhbHVlU2V0
LAorICAgIG9iaiA9IHsKKyAgICAgIGdldCBbeF0gKCkgeyByZXR1cm4gMSB9LAorICAgICAgc2V0
IFt4XSAodmFsdWUpIHsgdmFsdWVTZXQgPSB2YWx1ZSB9CisgICAgfTsKK29iai55ID0gJ2Zvbyc7
CityZXR1cm4gb2JqLnkgPT09IDEgJiYgdmFsdWVTZXQgPT09ICdmb28nOworICAgICAgCit9CisK
K2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9vYmplY3RfbGl0ZXJhbF9leHRlbnNp
b25zX2NvbXB1dGVkX3Byb3BlcnRpZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9vYmplY3RfbGl0ZXJhbF9leHRlbnNpb25zX2NvbXB1dGVkX3Byb3Bl
cnRpZXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L29iamVjdF9saXRlcmFsX2V4dGVuc2lvbnNfY29tcHV0ZWRfcHJvcGVydGllcy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgeCA9ICd5
JzsKK3JldHVybiAoeyBbeF06IDEgfSkueSA9PT0gMTsKKyAgICAgIAorfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvb2JqZWN0X2xpdGVyYWxfZXh0ZW5zaW9uc19jb21wdXRl
ZF9zaG9ydGhhbmRfbWV0aG9kcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L29iamVjdF9saXRlcmFsX2V4dGVuc2lvbnNfY29tcHV0ZWRfc2hvcnRoYW5k
X21ldGhvZHMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L29iamVjdF9saXRlcmFsX2V4dGVuc2lvbnNfY29tcHV0ZWRfc2hvcnRoYW5kX21ldGhvZHMu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwor
dmFyIHggPSAneSc7CityZXR1cm4gKHsgW3hdKCl7IHJldHVybiAxIH0gfSkueSgpID09PSAxOwor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9vYmplY3RfbGl0
ZXJhbF9leHRlbnNpb25zX3Nob3J0aGFuZF9tZXRob2RzLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvb2JqZWN0X2xpdGVyYWxfZXh0ZW5zaW9uc19zaG9y
dGhhbmRfbWV0aG9kcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvb2JqZWN0X2xpdGVyYWxfZXh0ZW5zaW9uc19zaG9ydGhhbmRfbWV0aG9kcy5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVy
biAoeyB5KCkgeyByZXR1cm4gMjsgfSB9KS55KCkgPT09IDI7CisgICAgICAKK30KKworaWYgKCF0
ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L29iamVjdF9saXRlcmFsX2V4dGVuc2lvbnNfc2hv
cnRoYW5kX3Byb3BlcnRpZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9vYmplY3RfbGl0ZXJhbF9leHRlbnNpb25zX3Nob3J0aGFuZF9wcm9wZXJ0aWVz
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9vYmpl
Y3RfbGl0ZXJhbF9leHRlbnNpb25zX3Nob3J0aGFuZF9wcm9wZXJ0aWVzLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBhID0gNywgYiA9
IDgsIGMgPSB7YSxifTsKK3JldHVybiBjLmEgPT09IDcgJiYgYy5iID09PSA4OworICAgICAgCit9
CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9vYmplY3RfbGl0ZXJhbF9leHRl
bnNpb25zX3N0cmluZy1rZXllZF9zaG9ydGhhbmRfbWV0aG9kcy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L29iamVjdF9saXRlcmFsX2V4dGVuc2lvbnNf
c3RyaW5nLWtleWVkX3Nob3J0aGFuZF9tZXRob2RzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9vYmplY3RfbGl0ZXJhbF9leHRlbnNpb25zX3N0cmlu
Zy1rZXllZF9zaG9ydGhhbmRfbWV0aG9kcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkg
QEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiAoeyAiZm9vIGJhciIoKSB7IHJldHVybiA0
OyB9IH0pWyJmb28gYmFyIl0oKSA9PT0gNDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvb2N0YWxfYW5kX2JpbmFyeV9saXRlcmFsc19iaW5hcnlfbGl0ZXJh
bHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9vY3Rh
bF9hbmRfYmluYXJ5X2xpdGVyYWxzX2JpbmFyeV9saXRlcmFscy5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvb2N0YWxfYW5kX2JpbmFyeV9saXRlcmFs
c19iaW5hcnlfbGl0ZXJhbHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5IEBACitmdW5j
dGlvbiB0ZXN0KCkgeworCityZXR1cm4gMGIxMCA9PT0gMiAmJiAwQjEwID09PSAyOworICAgICAg
Cit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9vY3RhbF9hbmRfYmluYXJ5
X2xpdGVyYWxzX2JpbmFyeV9zdXBwb3J0ZWRfYnlfTnVtYmVyLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvb2N0YWxfYW5kX2JpbmFyeV9saXRlcmFsc19i
aW5hcnlfc3VwcG9ydGVkX2J5X051bWJlci5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvb2N0YWxfYW5kX2JpbmFyeV9saXRlcmFsc19iaW5hcnlfc3Vw
cG9ydGVkX2J5X051bWJlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0
aW9uIHRlc3QoKSB7CisKK3JldHVybiBOdW1iZXIoJzBiMScpID09PSAxOworICAgICAgCit9CisK
K2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9vY3RhbF9hbmRfYmluYXJ5X2xpdGVy
YWxzX29jdGFsX2xpdGVyYWxzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvb2N0YWxfYW5kX2JpbmFyeV9saXRlcmFsc19vY3RhbF9saXRlcmFscy5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvb2N0YWxfYW5k
X2JpbmFyeV9saXRlcmFsc19vY3RhbF9saXRlcmFscy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiAwbzEwID09PSA4ICYmIDBPMTAg
PT09IDg7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJU
ZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L29j
dGFsX2FuZF9iaW5hcnlfbGl0ZXJhbHNfb2N0YWxfc3VwcG9ydGVkX2J5X051bWJlci5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L29jdGFsX2FuZF9iaW5h
cnlfbGl0ZXJhbHNfb2N0YWxfc3VwcG9ydGVkX2J5X051bWJlci5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvb2N0YWxfYW5kX2JpbmFyeV9saXRlcmFs
c19vY3RhbF9zdXBwb3J0ZWRfYnlfTnVtYmVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
OSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIE51bWJlcignMG8xJykgPT09IDE7Cisg
ICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxl
ZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L293bl9wcm9wZXJ0
eV9vcmRlcl9KU09OLnBhcnNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvb3duX3Byb3BlcnR5X29yZGVyX0pTT04ucGFyc2UuanMJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L293bl9wcm9wZXJ0eV9vcmRlcl9K
U09OLnBhcnNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHRl
c3QoKSB7CisKK3ZhciByZXN1bHQgPSAnJzsKK0pTT04ucGFyc2UoCisgICd7IjAiOnRydWUsIjEi
OnRydWUsIjIiOnRydWUsIjMiOnRydWUsIjQiOnRydWUsIjkiOnRydWUsIiAiOnRydWUsIkQiOnRy
dWUsIkIiOnRydWUsIi0xIjp0cnVlLCJBIjp0cnVlLCJDIjp0cnVlfScsCisgIGZ1bmN0aW9uIHJl
dml2ZXIoayx2KSB7CisgICAgcmVzdWx0ICs9IGs7CisgICAgcmV0dXJuIHY7CisgIH0KKyk7City
ZXR1cm4gcmVzdWx0ID09PSAiMDEyMzQ5IERCLTFBQyI7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L293bl9wcm9wZXJ0eV9vcmRlcl9KU09OLnN0cmluZ2lm
eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L293bl9w
cm9wZXJ0eV9vcmRlcl9KU09OLnN0cmluZ2lmeS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvb3duX3Byb3BlcnR5X29yZGVyX0pTT04uc3RyaW5naWZ5
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisK
K3ZhciBvYmogPSB7CisgIDI6ICAgIHRydWUsCisgIDA6ICAgIHRydWUsCisgIDE6ICAgIHRydWUs
CisgICcgJzogIHRydWUsCisgIDk6ICAgIHRydWUsCisgIEQ6ICAgIHRydWUsCisgIEI6ICAgIHRy
dWUsCisgICctMSc6IHRydWUsCit9Oworb2JqLkEgPSB0cnVlOworb2JqWzNdID0gdHJ1ZTsKK09i
amVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICdDJywgeyB2YWx1ZTogdHJ1ZSwgZW51bWVyYWJsZTog
dHJ1ZSB9KTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICc0JywgeyB2YWx1ZTogdHJ1ZSwg
ZW51bWVyYWJsZTogdHJ1ZSB9KTsKK2RlbGV0ZSBvYmpbMl07CitvYmpbMl0gPSB0cnVlOworCity
ZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqKSA9PT0KKyAgJ3siMCI6dHJ1ZSwiMSI6dHJ1ZSwiMiI6
dHJ1ZSwiMyI6dHJ1ZSwiNCI6dHJ1ZSwiOSI6dHJ1ZSwiICI6dHJ1ZSwiRCI6dHJ1ZSwiQiI6dHJ1
ZSwiLTEiOnRydWUsIkEiOnRydWUsIkMiOnRydWV9JzsKKyAgICAgIAorfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvb3duX3Byb3BlcnR5X29yZGVyX09iamVjdC5hc3NpZ24u
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9vd25fcHJv
cGVydHlfb3JkZXJfT2JqZWN0LmFzc2lnbi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvb3duX3Byb3BlcnR5X29yZGVyX09iamVjdC5hc3NpZ24uanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworZnVu
Y3Rpb24gZihrZXkpIHsKKyAgcmV0dXJuIHsKKyAgICBnZXQ6IGZ1bmN0aW9uKCkgeyByZXN1bHQg
Kz0ga2V5OyByZXR1cm4gdHJ1ZTsgfSwKKyAgICBzZXQ6IE9iamVjdCwKKyAgICBlbnVtZXJhYmxl
OiB0cnVlCisgIH07Cit9OwordmFyIHJlc3VsdCA9ICcnOwordmFyIG9iaiA9IE9iamVjdC5kZWZp
bmVQcm9wZXJ0aWVzKHt9LCB7CisgIDI6ICAgIGYoMiksCisgIDA6ICAgIGYoMCksCisgIDE6ICAg
IGYoMSksCisgICcgJzogIGYoJyAnKSwKKyAgOTogICAgZig5KSwKKyAgRDogICAgZignRCcpLAor
ICBCOiAgICBmKCdCJyksCisgICctMSc6IGYoJy0xJyksCit9KTsKK09iamVjdC5kZWZpbmVQcm9w
ZXJ0eShvYmosJ0EnLGYoJ0EnKSk7CitPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCczJyxmKCcz
JykpOworT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwnQycsZignQycpKTsKK09iamVjdC5kZWZp
bmVQcm9wZXJ0eShvYmosJzQnLGYoJzQnKSk7CitkZWxldGUgb2JqWzJdOworb2JqWzJdID0gdHJ1
ZTsKKworT2JqZWN0LmFzc2lnbih7fSwgb2JqKTsKKworcmV0dXJuIHJlc3VsdCA9PT0gIjAxMjM0
OSBEQi0xQUMiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJv
cigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9vd25fcHJvcGVydHlfb3JkZXJfT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9vd25fcHJvcGVydHlfb3Jk
ZXJfT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L293bl9wcm9wZXJ0eV9vcmRlcl9PYmplY3QuZ2V0T3du
UHJvcGVydHlOYW1lcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI2IEBACitmdW5jdGlv
biB0ZXN0KCkgeworCit2YXIgb2JqID0geworICAyOiAgICB0cnVlLAorICAwOiAgICB0cnVlLAor
ICAxOiAgICB0cnVlLAorICAnICc6ICB0cnVlLAorICA5OiAgICB0cnVlLAorICBEOiAgICB0cnVl
LAorICBCOiAgICB0cnVlLAorICAnLTEnOiB0cnVlLAorfTsKK29iai5BID0gdHJ1ZTsKK29ialsz
XSA9IHRydWU7CitPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAnQycsIHsgdmFsdWU6IHRydWUs
IGVudW1lcmFibGU6IHRydWUgfSk7CitPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAnNCcsIHsg
dmFsdWU6IHRydWUsIGVudW1lcmFibGU6IHRydWUgfSk7CitkZWxldGUgb2JqWzJdOworb2JqWzJd
ID0gdHJ1ZTsKKworcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikuam9pbign
JykgPT09ICIwMTIzNDkgREItMUFDIjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0
aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvb3duX3Byb3BlcnR5X29yZGVyX09iamVjdC5rZXlzLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvb3duX3Byb3BlcnR5X29yZGVy
X09iamVjdC5rZXlzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9vd25fcHJvcGVydHlfb3JkZXJfT2JqZWN0LmtleXMuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwyNiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIG9iaiA9IHsKKyAgMjog
ICAgdHJ1ZSwKKyAgMDogICAgdHJ1ZSwKKyAgMTogICAgdHJ1ZSwKKyAgJyAnOiAgdHJ1ZSwKKyAg
OTogICAgdHJ1ZSwKKyAgRDogICAgdHJ1ZSwKKyAgQjogICAgdHJ1ZSwKKyAgJy0xJzogdHJ1ZSwK
K307CitvYmouQSA9IHRydWU7CitvYmpbM10gPSB0cnVlOworT2JqZWN0LmRlZmluZVByb3BlcnR5
KG9iaiwgJ0MnLCB7IHZhbHVlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlIH0pOworT2JqZWN0LmRl
ZmluZVByb3BlcnR5KG9iaiwgJzQnLCB7IHZhbHVlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlIH0p
OworZGVsZXRlIG9ialsyXTsKK29ialsyXSA9IHRydWU7CisKK3JldHVybiBPYmplY3Qua2V5cyhv
YmopLmpvaW4oJycpID09PSAiMDEyMzQ5IERCLTFBQyI7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L293bl9wcm9wZXJ0eV9vcmRlcl9SZWZsZWN0Lm93bktl
eXNfc3RyaW5nX2tleV9vcmRlci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L293bl9wcm9wZXJ0eV9vcmRlcl9SZWZsZWN0Lm93bktleXNfc3RyaW5nX2tl
eV9vcmRlci5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvb3duX3Byb3BlcnR5X29yZGVyX1JlZmxlY3Qub3duS2V5c19zdHJpbmdfa2V5X29yZGVyLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjYgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3Zh
ciBvYmogPSB7CisgIDI6ICAgIHRydWUsCisgIDA6ICAgIHRydWUsCisgIDE6ICAgIHRydWUsCisg
ICcgJzogIHRydWUsCisgIDk6ICAgIHRydWUsCisgIEQ6ICAgIHRydWUsCisgIEI6ICAgIHRydWUs
CisgICctMSc6IHRydWUsCit9Oworb2JqLkEgPSB0cnVlOworb2JqWzNdID0gdHJ1ZTsKK09iamVj
dC5kZWZpbmVQcm9wZXJ0eShvYmosICdDJywgeyB2YWx1ZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1
ZSB9KTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICc0JywgeyB2YWx1ZTogdHJ1ZSwgZW51
bWVyYWJsZTogdHJ1ZSB9KTsKK2RlbGV0ZSBvYmpbMl07CitvYmpbMl0gPSB0cnVlOworCityZXR1
cm4gUmVmbGVjdC5vd25LZXlzKG9iaikuam9pbignJykgPT09ICIwMTIzNDkgREItMUFDIjsKKyAg
ICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVk
Iik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvb3duX3Byb3BlcnR5
X29yZGVyX1JlZmxlY3Qub3duS2V5c19zeW1ib2xfa2V5X29yZGVyLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvb3duX3Byb3BlcnR5X29yZGVyX1JlZmxl
Y3Qub3duS2V5c19zeW1ib2xfa2V5X29yZGVyLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9vd25fcHJvcGVydHlfb3JkZXJfUmVmbGVjdC5vd25LZXlz
X3N5bWJvbF9rZXlfb3JkZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNCBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKwordmFyIHN5bTEgPSBTeW1ib2woKSwgc3ltMiA9IFN5bWJvbCgpLCBz
eW0zID0gU3ltYm9sKCk7Cit2YXIgb2JqID0geworICAxOiAgICB0cnVlLAorICBBOiAgICB0cnVl
LAorfTsKK29iai5CID0gdHJ1ZTsKK29ialtzeW0xXSA9IHRydWU7CitvYmpbMl0gPSB0cnVlOwor
b2JqW3N5bTJdID0gdHJ1ZTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICdDJywgeyB2YWx1
ZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSB9KTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmos
IHN5bTMseyB2YWx1ZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSB9KTsKK09iamVjdC5kZWZpbmVQ
cm9wZXJ0eShvYmosICdEJywgeyB2YWx1ZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSB9KTsKKwor
dmFyIHJlc3VsdCA9IFJlZmxlY3Qub3duS2V5cyhvYmopOwordmFyIGwgPSByZXN1bHQubGVuZ3Ro
OworcmV0dXJuIHJlc3VsdFtsLTNdID09PSBzeW0xICYmIHJlc3VsdFtsLTJdID09PSBzeW0yICYm
IHJlc3VsdFtsLTFdID09PSBzeW0zOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRo
cm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9vd25fcHJvcGVydHlfb3JkZXJfZm9yLi5pbi5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L293bl9wcm9wZXJ0eV9vcmRlcl9mb3Iu
LmluLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9v
d25fcHJvcGVydHlfb3JkZXJfZm9yLi5pbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMw
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgb2JqID0geworICAyOiAgICB0cnVlLAorICAw
OiAgICB0cnVlLAorICAxOiAgICB0cnVlLAorICAnICc6ICB0cnVlLAorICA5OiAgICB0cnVlLAor
ICBEOiAgICB0cnVlLAorICBCOiAgICB0cnVlLAorICAnLTEnOiB0cnVlLAorfTsKK29iai5BID0g
dHJ1ZTsKK29ialszXSA9IHRydWU7CitPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAnQycsIHsg
dmFsdWU6IHRydWUsIGVudW1lcmFibGU6IHRydWUgfSk7CitPYmplY3QuZGVmaW5lUHJvcGVydHko
b2JqLCAnNCcsIHsgdmFsdWU6IHRydWUsIGVudW1lcmFibGU6IHRydWUgfSk7CitkZWxldGUgb2Jq
WzJdOworb2JqWzJdID0gdHJ1ZTsKKwordmFyIHJlc3VsdCA9ICcnOworZm9yKHZhciBpIGluIG9i
aikgeworICByZXN1bHQgKz0gaTsKK30KK3JldHVybiByZXN1bHQgPT09ICIwMTIzNDkgREItMUFD
IjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3Qg
ZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvcHJvcGVy
X3RhaWxfY2FsbHNfdGFpbF9jYWxsX29wdGltaXNhdGlvbl9kaXJlY3RfcmVjdXJzaW9uLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvcHJvcGVyX3RhaWxf
Y2FsbHNfdGFpbF9jYWxsX29wdGltaXNhdGlvbl9kaXJlY3RfcmVjdXJzaW9uLmpzCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9wcm9wZXJfdGFpbF9jYWxs
c190YWlsX2NhbGxfb3B0aW1pc2F0aW9uX2RpcmVjdF9yZWN1cnNpb24uanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworInVzZSBzdHJpY3QiOwor
cmV0dXJuIChmdW5jdGlvbiBmKG4peworICBpZiAobiA8PSAwKSB7CisgICAgcmV0dXJuICAiZm9v
IjsKKyAgfQorICByZXR1cm4gZihuIC0gMSk7Cit9KDFlNikpID09PSAiZm9vIjsKKyAgICAgIAor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvcHJvcGVyX3RhaWxfY2FsbHNf
dGFpbF9jYWxsX29wdGltaXNhdGlvbl9tdXR1YWxfcmVjdXJzaW9uLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvcHJvcGVyX3RhaWxfY2FsbHNfdGFpbF9j
YWxsX29wdGltaXNhdGlvbl9tdXR1YWxfcmVjdXJzaW9uLmpzCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9wcm9wZXJfdGFpbF9jYWxsc190YWlsX2NhbGxf
b3B0aW1pc2F0aW9uX211dHVhbF9yZWN1cnNpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwyMiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworInVzZSBzdHJpY3QiOworZnVuY3Rpb24gZihu
KXsKKyAgaWYgKG4gPD0gMCkgeworICAgIHJldHVybiAgImZvbyI7CisgIH0KKyAgcmV0dXJuIGco
biAtIDEpOworfQorZnVuY3Rpb24gZyhuKXsKKyAgaWYgKG4gPD0gMCkgeworICAgIHJldHVybiAg
ImJhciI7CisgIH0KKyAgcmV0dXJuIGYobiAtIDEpOworfQorcmV0dXJuIGYoMWU2KSA9PT0gImZv
byIgJiYgZigxZTYrMSkgPT09ICJiYXIiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9wcm90b3R5cGVfb2ZfYm91bmRfZnVuY3Rpb25zX2Fycm93X2Z1bmN0
aW9ucy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3By
b3RvdHlwZV9vZl9ib3VuZF9mdW5jdGlvbnNfYXJyb3dfZnVuY3Rpb25zLmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9wcm90b3R5cGVfb2ZfYm91bmRf
ZnVuY3Rpb25zX2Fycm93X2Z1bmN0aW9ucy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIy
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitmdW5jdGlvbiBjb3JyZWN0UHJvdG9Cb3VuZChwcm90
bykgeworICB2YXIgZiA9ICgpPT41OworICBpZiAoT2JqZWN0LnNldFByb3RvdHlwZU9mKSB7Cisg
ICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGYsIHByb3RvKTsKKyAgfQorICBlbHNlIHsKKyAgICBm
Ll9fcHJvdG9fXyA9IHByb3RvOworICB9IAorICB2YXIgYm91bmRGID0gRnVuY3Rpb24ucHJvdG90
eXBlLmJpbmQuY2FsbChmLCBudWxsKTsKKyAgcmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihi
b3VuZEYpID09PSBwcm90bzsKK30KK3JldHVybiBjb3JyZWN0UHJvdG9Cb3VuZChGdW5jdGlvbi5w
cm90b3R5cGUpCisgICYmIGNvcnJlY3RQcm90b0JvdW5kKHt9KQorICAmJiBjb3JyZWN0UHJvdG9C
b3VuZChudWxsKTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJy
b3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvcHJvdG90eXBlX29mX2JvdW5kX2Z1bmN0aW9uc19iYXNpY19mdW5jdGlvbnMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9wcm90b3R5cGVfb2ZfYm91
bmRfZnVuY3Rpb25zX2Jhc2ljX2Z1bmN0aW9ucy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvcHJvdG90eXBlX29mX2JvdW5kX2Z1bmN0aW9uc19iYXNp
Y19mdW5jdGlvbnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMiBAQAorZnVuY3Rpb24g
dGVzdCgpIHsKKworZnVuY3Rpb24gY29ycmVjdFByb3RvQm91bmQocHJvdG8pIHsKKyAgdmFyIGYg
PSBmdW5jdGlvbigpe307CisgIGlmIChPYmplY3Quc2V0UHJvdG90eXBlT2YpIHsKKyAgICBPYmpl
Y3Quc2V0UHJvdG90eXBlT2YoZiwgcHJvdG8pOworICB9CisgIGVsc2UgeworICAgIGYuX19wcm90
b19fID0gcHJvdG87CisgIH0gCisgIHZhciBib3VuZEYgPSBGdW5jdGlvbi5wcm90b3R5cGUuYmlu
ZC5jYWxsKGYsIG51bGwpOworICByZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKGJvdW5kRikg
PT09IHByb3RvOworfQorcmV0dXJuIGNvcnJlY3RQcm90b0JvdW5kKEZ1bmN0aW9uLnByb3RvdHlw
ZSkKKyAgJiYgY29ycmVjdFByb3RvQm91bmQoe30pCisgICYmIGNvcnJlY3RQcm90b0JvdW5kKG51
bGwpOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVz
dCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9wcm90
b3R5cGVfb2ZfYm91bmRfZnVuY3Rpb25zX2NsYXNzZXMuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9wcm90b3R5cGVfb2ZfYm91bmRfZnVuY3Rpb25zX2Ns
YXNzZXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L3Byb3RvdHlwZV9vZl9ib3VuZF9mdW5jdGlvbnNfY2xhc3Nlcy5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDIyIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitmdW5jdGlvbiBjb3JyZWN0UHJv
dG9Cb3VuZChwcm90bykgeworICBjbGFzcyBDIHt9CisgIGlmIChPYmplY3Quc2V0UHJvdG90eXBl
T2YpIHsKKyAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoQywgcHJvdG8pOworICB9CisgIGVsc2Ug
eworICAgIEMuX19wcm90b19fID0gcHJvdG87CisgIH0gCisgIHZhciBib3VuZEYgPSBGdW5jdGlv
bi5wcm90b3R5cGUuYmluZC5jYWxsKEMsIG51bGwpOworICByZXR1cm4gT2JqZWN0LmdldFByb3Rv
dHlwZU9mKGJvdW5kRikgPT09IHByb3RvOworfQorcmV0dXJuIGNvcnJlY3RQcm90b0JvdW5kKEZ1
bmN0aW9uLnByb3RvdHlwZSkKKyAgJiYgY29ycmVjdFByb3RvQm91bmQoe30pCisgICYmIGNvcnJl
Y3RQcm90b0JvdW5kKG51bGwpOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93
IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9wcm90b3R5cGVfb2ZfYm91bmRfZnVuY3Rpb25zX2dlbmVyYXRvcl9mdW5jdGlv
bnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9wcm90
b3R5cGVfb2ZfYm91bmRfZnVuY3Rpb25zX2dlbmVyYXRvcl9mdW5jdGlvbnMuanMJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3Byb3RvdHlwZV9vZl9ib3Vu
ZF9mdW5jdGlvbnNfZ2VuZXJhdG9yX2Z1bmN0aW9ucy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDIyIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCitmdW5jdGlvbiBjb3JyZWN0UHJvdG9Cb3Vu
ZChwcm90bykgeworICB2YXIgZiA9IGZ1bmN0aW9uKigpe307CisgIGlmIChPYmplY3Quc2V0UHJv
dG90eXBlT2YpIHsKKyAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoZiwgcHJvdG8pOworICB9Cisg
IGVsc2UgeworICAgIGYuX19wcm90b19fID0gcHJvdG87CisgIH0gCisgIHZhciBib3VuZEYgPSBG
dW5jdGlvbi5wcm90b3R5cGUuYmluZC5jYWxsKGYsIG51bGwpOworICByZXR1cm4gT2JqZWN0Lmdl
dFByb3RvdHlwZU9mKGJvdW5kRikgPT09IHByb3RvOworfQorcmV0dXJuIGNvcnJlY3RQcm90b0Jv
dW5kKEZ1bmN0aW9uLnByb3RvdHlwZSkKKyAgJiYgY29ycmVjdFByb3RvQm91bmQoe30pCisgICYm
IGNvcnJlY3RQcm90b0JvdW5kKG51bGwpOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9wcm90b3R5cGVfb2ZfYm91bmRfZnVuY3Rpb25zX3N1YmNsYXNzZXMu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9wcm90b3R5
cGVfb2ZfYm91bmRfZnVuY3Rpb25zX3N1YmNsYXNzZXMuanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3Byb3RvdHlwZV9vZl9ib3VuZF9mdW5jdGlvbnNf
c3ViY2xhc3Nlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIwIEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCitmdW5jdGlvbiBjb3JyZWN0UHJvdG9Cb3VuZChzdXBlcmNsYXNzKSB7CisgIGNs
YXNzIEMgZXh0ZW5kcyBzdXBlcmNsYXNzIHsKKyAgICBjb25zdHJ1Y3RvcigpIHsKKyAgICAgIHJl
dHVybiBPYmplY3QuY3JlYXRlKG51bGwpOworICAgIH0KKyAgfQorICB2YXIgYm91bmRGID0gRnVu
Y3Rpb24ucHJvdG90eXBlLmJpbmQuY2FsbChDLCBudWxsKTsKKyAgcmV0dXJuIE9iamVjdC5nZXRQ
cm90b3R5cGVPZihib3VuZEYpID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoQyk7Cit9CityZXR1
cm4gY29ycmVjdFByb3RvQm91bmQoZnVuY3Rpb24oKXt9KQorICAmJiBjb3JyZWN0UHJvdG9Cb3Vu
ZChBcnJheSkKKyAgJiYgY29ycmVjdFByb3RvQm91bmQobnVsbCk7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3Jlc3RfcGFyYW1ldGVyc19hcmd1bWVudHNf
b2JqZWN0X2ludGVyYWN0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvcmVzdF9wYXJhbWV0ZXJzX2FyZ3VtZW50c19vYmplY3RfaW50ZXJhY3Rpb24u
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3Jlc3Rf
cGFyYW1ldGVyc19hcmd1bWVudHNfb2JqZWN0X2ludGVyYWN0aW9uLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiAoZnVuY3Rpb24g
KGZvbywgLi4uYXJncykgeworICBmb28gPSAicXV4IjsKKyAgLy8gVGhlIGFyZ3VtZW50cyBvYmpl
Y3QgaXMgbm90IG1hcHBlZCB0byB0aGUKKyAgLy8gcGFyYW1ldGVycywgZXZlbiBvdXRzaWRlIG9m
IHN0cmljdCBtb2RlLgorICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA9PT0gMworICAgICYmIGFy
Z3VtZW50c1swXSA9PT0gImZvbyIKKyAgICAmJiBhcmd1bWVudHNbMV0gPT09ICJiYXIiCisgICAg
JiYgYXJndW1lbnRzWzJdID09PSAiYmF6IjsKK30oImZvbyIsICJiYXIiLCAiYmF6IikpOworICAg
ICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQi
KTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9yZXN0X3BhcmFtZXRl
cnNfYmFzaWNfZnVuY3Rpb25hbGl0eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L3Jlc3RfcGFyYW1ldGVyc19iYXNpY19mdW5jdGlvbmFsaXR5LmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9yZXN0X3BhcmFt
ZXRlcnNfYmFzaWNfZnVuY3Rpb25hbGl0eS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEx
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gKGZ1bmN0aW9uIChmb28sIC4uLmFyZ3Mp
IHsKKyAgcmV0dXJuIGFyZ3MgaW5zdGFuY2VvZiBBcnJheSAmJiBhcmdzICsgIiIgPT09ICJiYXIs
YmF6IjsKK30oImZvbyIsICJiYXIiLCAiYmF6IikpOworICAgICAgCit9CisKK2lmICghdGVzdCgp
KQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9yZXN0X3BhcmFtZXRlcnNfY2FudF9iZV91c2VkX2luX3Nl
dHRlcnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9y
ZXN0X3BhcmFtZXRlcnNfY2FudF9iZV91c2VkX2luX3NldHRlcnMuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3Jlc3RfcGFyYW1ldGVyc19jYW50X2Jl
X3VzZWRfaW5fc2V0dGVycy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1IEBACitmdW5j
dGlvbiB0ZXN0KCkgeworCityZXR1cm4gKGZ1bmN0aW9uICguLi5hcmdzKSB7CisgIHRyeSB7Cisg
ICAgZXZhbCgiKHtzZXQgZSguLi5hcmdzKXt9fSkiKTsKKyAgfSBjYXRjaChlKSB7CisgICAgcmV0
dXJuIHRydWU7CisgIH0KK30oKSk7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhy
b3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L3Jlc3RfcGFyYW1ldGVyc19mdW5jdGlvbl9sZW5ndGhfcHJvcGVydHkuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9yZXN0X3BhcmFt
ZXRlcnNfZnVuY3Rpb25fbGVuZ3RoX3Byb3BlcnR5LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9yZXN0X3BhcmFtZXRlcnNfZnVuY3Rpb25fbGVuZ3Ro
X3Byb3BlcnR5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVz
dCgpIHsKKworcmV0dXJuIGZ1bmN0aW9uKGEsIC4uLmIpe30ubGVuZ3RoID09PSAxICYmIGZ1bmN0
aW9uKC4uLmMpe30ubGVuZ3RoID09PSAwOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9yZXN0X3BhcmFtZXRlcnNfbmV3X0Z1bmN0aW9uX3N1cHBvcnQuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9yZXN0X3BhcmFt
ZXRlcnNfbmV3X0Z1bmN0aW9uX3N1cHBvcnQuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L3Jlc3RfcGFyYW1ldGVyc19uZXdfRnVuY3Rpb25fc3VwcG9y
dC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkgewor
CityZXR1cm4gbmV3IEZ1bmN0aW9uKCJhIiwgIi4uLmIiLAorICAicmV0dXJuIGIgaW5zdGFuY2Vv
ZiBBcnJheSAmJiBhK2IgPT09ICdmb29iYXIsYmF6JzsiCispKCdmb28nLCdiYXInLCdiYXonKTsK
KyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFp
bGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3ByZWFkXy4u
Ll9vcGVyYXRvcl9zcHJlYWRpbmdfbm9uLWl0ZXJhYmxlc19pc19hX3J1bnRpbWVfZXJyb3IuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9zcHJlYWRfLi4u
X29wZXJhdG9yX3NwcmVhZGluZ19ub24taXRlcmFibGVzX2lzX2FfcnVudGltZV9lcnJvci5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3ByZWFkXy4u
Ll9vcGVyYXRvcl9zcHJlYWRpbmdfbm9uLWl0ZXJhYmxlc19pc19hX3J1bnRpbWVfZXJyb3IuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordHJ5
IHsKKyAgTWF0aC5tYXgoLi4uMik7Cit9IGNhdGNoKGUpIHsKKyAgcmV0dXJuIE1hdGgubWF4KC4u
LlsxLCAyLCAzXSkgPT09IDM7Cit9CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhy
b3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L3NwcmVhZF8uLi5fb3BlcmF0b3Jfd2l0aF9hcnJheXNfaW5fYXJyYXlfbGl0
ZXJhbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9z
cHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfYXJyYXlzX2luX2FycmF5X2xpdGVyYWxzLmpzCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9zcHJlYWRfLi4uX29w
ZXJhdG9yX3dpdGhfYXJyYXlzX2luX2FycmF5X2xpdGVyYWxzLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIFsuLi5bMSwgMiwgM11d
WzJdID09PSAzOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJv
cigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfYXJyYXlzX2luX2Z1bmN0aW9uX2NhbGxzLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3ByZWFkXy4uLl9v
cGVyYXRvcl93aXRoX2FycmF5c19pbl9mdW5jdGlvbl9jYWxscy5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3ByZWFkXy4uLl9vcGVyYXRvcl93aXRo
X2FycmF5c19pbl9mdW5jdGlvbl9jYWxscy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkg
QEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiBNYXRoLm1heCguLi5bMSwgMiwgM10pID09
PSAzCisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0
IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3NwcmVh
ZF8uLi5fb3BlcmF0b3Jfd2l0aF9hc3RyYWxfcGxhbmVfc3RyaW5nc19pbl9hcnJheV9saXRlcmFs
cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3NwcmVh
ZF8uLi5fb3BlcmF0b3Jfd2l0aF9hc3RyYWxfcGxhbmVfc3RyaW5nc19pbl9hcnJheV9saXRlcmFs
cy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3By
ZWFkXy4uLl9vcGVyYXRvcl93aXRoX2FzdHJhbF9wbGFuZV9zdHJpbmdzX2luX2FycmF5X2xpdGVy
YWxzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsK
KworcmV0dXJuIFsuLi4i8KCut/CgrrYiXVswXSA9PT0gIvCgrrciOworICAgICAgCit9CisKK2lm
ICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhf
YXN0cmFsX3BsYW5lX3N0cmluZ3NfaW5fZnVuY3Rpb25fY2FsbHMuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhf
YXN0cmFsX3BsYW5lX3N0cmluZ3NfaW5fZnVuY3Rpb25fY2FsbHMuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3NwcmVhZF8uLi5fb3BlcmF0b3Jfd2l0
aF9hc3RyYWxfcGxhbmVfc3RyaW5nc19pbl9mdW5jdGlvbl9jYWxscy5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiBBcnJheSguLi4i
8KCut/CgrrYiKVswXSA9PT0gIvCgrrciOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfZ2VuZXJhdG9yX2luc3Rh
bmNlc19pbl9hcnJheXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfZ2VuZXJhdG9yX2luc3RhbmNlc19pbl9h
cnJheXMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L3NwcmVhZF8uLi5fb3BlcmF0b3Jfd2l0aF9nZW5lcmF0b3JfaW5zdGFuY2VzX2luX2FycmF5cy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2
YXIgaXRlcmFibGUgPSAoZnVuY3Rpb24qKCl7IHlpZWxkICJiIjsgeWllbGQgImMiOyB5aWVsZCAi
ZCI7IH0oKSk7CityZXR1cm4gWyJhIiwgLi4uaXRlcmFibGUsICJlIl1bM10gPT09ICJkIjsKKyAg
ICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVk
Iik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3ByZWFkXy4uLl9v
cGVyYXRvcl93aXRoX2dlbmVyYXRvcl9pbnN0YW5jZXNfaW5fY2FsbHMuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dp
dGhfZ2VuZXJhdG9yX2luc3RhbmNlc19pbl9jYWxscy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3ByZWFkXy4uLl9vcGVyYXRvcl93aXRoX2dlbmVy
YXRvcl9pbnN0YW5jZXNfaW5fY2FsbHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBA
QAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGl0ZXJhYmxlID0gKGZ1bmN0aW9uKigpeyB5aWVs
ZCAxOyB5aWVsZCAyOyB5aWVsZCAzOyB9KCkpOworcmV0dXJuIE1hdGgubWF4KC4uLml0ZXJhYmxl
KSA9PT0gMzsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3Io
IlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
c3ByZWFkXy4uLl9vcGVyYXRvcl93aXRoX2dlbmVyaWNfaXRlcmFibGVzX2luX2FycmF5cy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3NwcmVhZF8uLi5f
b3BlcmF0b3Jfd2l0aF9nZW5lcmljX2l0ZXJhYmxlc19pbl9hcnJheXMuanMJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3NwcmVhZF8uLi5fb3BlcmF0b3Jf
d2l0aF9nZW5lcmljX2l0ZXJhYmxlc19pbl9hcnJheXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGl0ZXJhYmxlID0gZ2xvYmFsLl9f
Y3JlYXRlSXRlcmFibGVPYmplY3QoWyJiIiwgImMiLCAiZCJdKTsKK3JldHVybiBbImEiLCAuLi5p
dGVyYWJsZSwgImUiXVszXSA9PT0gImQiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAg
IHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfZ2VuZXJpY19pdGVyYWJs
ZXNfaW5fY2FsbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfZ2VuZXJpY19pdGVyYWJsZXNfaW5fY2FsbHMu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3NwcmVh
ZF8uLi5fb3BlcmF0b3Jfd2l0aF9nZW5lcmljX2l0ZXJhYmxlc19pbl9jYWxscy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgaXRlcmFi
bGUgPSBnbG9iYWwuX19jcmVhdGVJdGVyYWJsZU9iamVjdChbMSwgMiwgM10pOworcmV0dXJuIE1h
dGgubWF4KC4uLml0ZXJhYmxlKSA9PT0gMzsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvc3ByZWFkXy4uLl9vcGVyYXRvcl93aXRoX2luc3RhbmNlc19vZl9p
dGVyYWJsZXNfaW5fYXJyYXlzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvc3ByZWFkXy4uLl9vcGVyYXRvcl93aXRoX2luc3RhbmNlc19vZl9pdGVyYWJs
ZXNfaW5fYXJyYXlzLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfaW5zdGFuY2VzX29mX2l0ZXJhYmxlc19p
bl9hcnJheXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24gdGVz
dCgpIHsKKwordmFyIGl0ZXJhYmxlID0gZ2xvYmFsLl9fY3JlYXRlSXRlcmFibGVPYmplY3QoWyJi
IiwgImMiLCAiZCJdKTsKK3JldHVybiBbImEiLCAuLi5PYmplY3QuY3JlYXRlKGl0ZXJhYmxlKSwg
ImUiXVszXSA9PT0gImQiOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5l
dyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhfaW5zdGFuY2VzX29mX2l0ZXJhYmxlc19p
bl9jYWxscy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L3NwcmVhZF8uLi5fb3BlcmF0b3Jfd2l0aF9pbnN0YW5jZXNfb2ZfaXRlcmFibGVzX2luX2NhbGxz
LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9zcHJl
YWRfLi4uX29wZXJhdG9yX3dpdGhfaW5zdGFuY2VzX29mX2l0ZXJhYmxlc19pbl9jYWxscy5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIg
aXRlcmFibGUgPSBnbG9iYWwuX19jcmVhdGVJdGVyYWJsZU9iamVjdChbMSwgMiwgM10pOworcmV0
dXJuIE1hdGgubWF4KC4uLk9iamVjdC5jcmVhdGUoaXRlcmFibGUpKSA9PT0gMzsKKyAgICAgIAor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3ByZWFkXy4uLl9vcGVyYXRv
cl93aXRoX3NwYXJzZV9hcnJheXNfaW5fYXJyYXlfbGl0ZXJhbHMuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9zcHJlYWRfLi4uX29wZXJhdG9yX3dpdGhf
c3BhcnNlX2FycmF5c19pbl9hcnJheV9saXRlcmFscy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3ByZWFkXy4uLl9vcGVyYXRvcl93aXRoX3NwYXJz
ZV9hcnJheXNfaW5fYXJyYXlfbGl0ZXJhbHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGEgPSBbLi4uWywsXV07CityZXR1cm4gIjAi
IGluIGEgJiYgIjEiIGluIGEgJiYgJycgKyBhWzBdICsgYVsxXSA9PT0gInVuZGVmaW5lZHVuZGVm
aW5lZCI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJU
ZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3Nw
cmVhZF8uLi5fb3BlcmF0b3Jfd2l0aF9zcGFyc2VfYXJyYXlzX2luX2Z1bmN0aW9uX2NhbGxzLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3ByZWFkXy4u
Ll9vcGVyYXRvcl93aXRoX3NwYXJzZV9hcnJheXNfaW5fZnVuY3Rpb25fY2FsbHMuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3NwcmVhZF8uLi5fb3Bl
cmF0b3Jfd2l0aF9zcGFyc2VfYXJyYXlzX2luX2Z1bmN0aW9uX2NhbGxzLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTAgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBhID0gQXJyYXko
Li4uWywsXSk7CityZXR1cm4gIjAiIGluIGEgJiYgIjEiIGluIGEgJiYgJycgKyBhWzBdICsgYVsx
XSA9PT0gInVuZGVmaW5lZHVuZGVmaW5lZCI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisg
ICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L3NwcmVhZF8uLi5fb3BlcmF0b3Jfd2l0aF9zdHJpbmdzX2luX2Fy
cmF5X2xpdGVyYWxzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvc3ByZWFkXy4uLl9vcGVyYXRvcl93aXRoX3N0cmluZ3NfaW5fYXJyYXlfbGl0ZXJhbHMu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3NwcmVh
ZF8uLi5fb3BlcmF0b3Jfd2l0aF9zdHJpbmdzX2luX2FycmF5X2xpdGVyYWxzLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIFsiYSIs
IC4uLiJiY2QiLCAiZSJdWzNdID09PSAiZCI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisg
ICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L3NwcmVhZF8uLi5fb3BlcmF0b3Jfd2l0aF9zdHJpbmdzX2luX2Z1
bmN0aW9uX2NhbGxzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvc3ByZWFkXy4uLl9vcGVyYXRvcl93aXRoX3N0cmluZ3NfaW5fZnVuY3Rpb25fY2FsbHMu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3NwcmVh
ZF8uLi5fb3BlcmF0b3Jfd2l0aF9zdHJpbmdzX2luX2Z1bmN0aW9uX2NhbGxzLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIE1hdGgu
bWF4KC4uLiIxMjM0IikgPT09IDQ7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhy
b3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L3N1cGVyX2NvbnN0cnVjdG9yX2NhbGxzX3VzZV9jb3JyZWN0X25ldy50YXJn
ZXRfYmluZGluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L3N1cGVyX2NvbnN0cnVjdG9yX2NhbGxzX3VzZV9jb3JyZWN0X25ldy50YXJnZXRfYmluZGlu
Zy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3Vw
ZXJfY29uc3RydWN0b3JfY2FsbHNfdXNlX2NvcnJlY3RfbmV3LnRhcmdldF9iaW5kaW5nLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBw
YXNzZWQ7CitjbGFzcyBCIHsKKyAgY29uc3RydWN0b3IoKSB7IHBhc3NlZCA9IChuZXcudGFyZ2V0
ID09PSBDKTsgfQorfQorY2xhc3MgQyBleHRlbmRzIEIgeworICBjb25zdHJ1Y3RvcigpIHsgc3Vw
ZXIoKTsgfQorfQorbmV3IEMoKTsKK3JldHVybiBwYXNzZWQ7CisgICAgICAKK30KKworaWYgKCF0
ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3N1cGVyX2V4cHJlc3Npb25faW5fY29uc3RydWN0
b3JzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3Vw
ZXJfZXhwcmVzc2lvbl9pbl9jb25zdHJ1Y3RvcnMuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3N1cGVyX2V4cHJlc3Npb25faW5fY29uc3RydWN0b3Jz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisK
K2NsYXNzIEIgeworICBjb25zdHJ1Y3RvcihhKSB7IHJldHVybiBbImZvbyIgKyBhXTsgfQorfQor
Y2xhc3MgQyBleHRlbmRzIEIgeworICBjb25zdHJ1Y3RvcihhKSB7IHJldHVybiBzdXBlcigiYmFy
IiArIGEpOyB9Cit9CityZXR1cm4gbmV3IEMoImJheiIpWzBdID09PSAiZm9vYmFyYmF6IjsKKyAg
ICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVk
Iik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3VwZXJfaW5fbWV0
aG9kc19tZXRob2RfY2FsbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9zdXBlcl9pbl9tZXRob2RzX21ldGhvZF9jYWxscy5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3VwZXJfaW5fbWV0aG9kc19tZXRo
b2RfY2FsbHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gdGVz
dCgpIHsKKworY2xhc3MgQiB7CisgIHF1eChhKSB7IHJldHVybiAiZm9vIiArIGE7IH0KK30KK2Ns
YXNzIEMgZXh0ZW5kcyBCIHsKKyAgcXV4KGEpIHsgcmV0dXJuIHN1cGVyLnF1eCgiYmFyIiArIGEp
OyB9Cit9CityZXR1cm4gbmV3IEMoKS5xdXgoImJheiIpID09PSAiZm9vYmFyYmF6IjsKKyAgICAg
IAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3VwZXJfaW5fbWV0aG9k
c19wcm9wZXJ0eV9hY2Nlc3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9zdXBlcl9pbl9tZXRob2RzX3Byb3BlcnR5X2FjY2Vzcy5qcwkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3VwZXJfaW5fbWV0aG9kc19w
cm9wZXJ0eV9hY2Nlc3MuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rp
b24gdGVzdCgpIHsKKworY2xhc3MgQiB7fQorQi5wcm90b3R5cGUucXV4ID0gImZvbyI7CitCLnBy
b3RvdHlwZS5jb3JnZSA9ICJiYXoiOworY2xhc3MgQyBleHRlbmRzIEIgeworICBxdXV4KGEpIHsg
cmV0dXJuIHN1cGVyLnF1eCArIGEgKyBzdXBlclsiY29yZ2UiXTsgfQorfQorQy5wcm90b3R5cGUu
cXV4ID0gImdhcnBseSI7CityZXR1cm4gbmV3IEMoKS5xdXV4KCJiYXIiKSA9PT0gImZvb2JhcmJh
eiI7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0
IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3N1cGVy
X2lzX3N0YXRpY2FsbHlfYm91bmQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi9zdXBlcl9pc19zdGF0aWNhbGx5X2JvdW5kLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9zdXBlcl9pc19zdGF0aWNhbGx5X2Jv
dW5kLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7
CisKK2NsYXNzIEIgeworICBxdXgoKSB7IHJldHVybiAiYmFyIjsgfQorfQorY2xhc3MgQyBleHRl
bmRzIEIgeworICBxdXgoKSB7IHJldHVybiBzdXBlci5xdXgoKSArIHRoaXMuY29yZ2U7IH0KK30K
K3ZhciBvYmogPSB7CisgIHF1eDogQy5wcm90b3R5cGUucXV4LAorICBjb3JnZTogImxleSIKK307
CityZXR1cm4gb2JqLnF1eCgpID09PSAiYmFybGV5IjsKKyAgICAgIAorfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvc3VwZXJfbWV0aG9kX2NhbGxzX3VzZV9jb3JyZWN0X3Ro
aXNfYmluZGluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L3N1cGVyX21ldGhvZF9jYWxsc191c2VfY29ycmVjdF90aGlzX2JpbmRpbmcuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3N1cGVyX21ldGhvZF9j
YWxsc191c2VfY29ycmVjdF90aGlzX2JpbmRpbmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxNyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworY2xhc3MgQiB7CisgIHF1eChhKSB7IHJldHVy
biB0aGlzLmZvbyArIGE7IH0KK30KK2NsYXNzIEMgZXh0ZW5kcyBCIHsKKyAgcXV4KGEpIHsgcmV0
dXJuIHN1cGVyLnF1eCgiYmFyIiArIGEpOyB9Cit9Cit2YXIgb2JqID0gbmV3IEMoKTsKK29iai5m
b28gPSAiZm9vIjsKK3JldHVybiBvYmoucXV4KCJiYXoiKSA9PT0gImZvb2JhcmJheiI7CisgICAg
ICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIp
OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3N1cGVyX3N0YXRlbWVu
dF9pbl9jb25zdHJ1Y3RvcnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi9zdXBlcl9zdGF0ZW1lbnRfaW5fY29uc3RydWN0b3JzLmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9zdXBlcl9zdGF0ZW1lbnRfaW5f
Y29uc3RydWN0b3JzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9u
IHRlc3QoKSB7CisKK3ZhciBwYXNzZWQgPSBmYWxzZTsKK2NsYXNzIEIgeworICBjb25zdHJ1Y3Rv
cihhKSB7IHBhc3NlZCA9IChhID09PSAiYmFyYmF6Iik7IH0KK30KK2NsYXNzIEMgZXh0ZW5kcyBC
IHsKKyAgY29uc3RydWN0b3IoYSkgeyBzdXBlcigiYmFyIiArIGEpOyB9Cit9CituZXcgQygiYmF6
Iik7CityZXR1cm4gcGFzc2VkOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93
IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi90ZW1wbGF0ZV9zdHJpbmdzX2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90ZW1wbGF0ZV9zdHJpbmdz
X2Jhc2ljX2Z1bmN0aW9uYWxpdHkuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L3RlbXBsYXRlX3N0cmluZ3NfYmFzaWNfZnVuY3Rpb25hbGl0eS5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIg
YSA9ICJiYSIsIGIgPSAiUVVYIjsKK3JldHVybiBgZm9vIGJhcgorJHthICsgInoifSAke2IudG9M
b3dlckNhc2UoKX1gID09PSAiZm9vIGJhclxuYmF6IHF1eCI7CisgICAgICAKK30KKworaWYgKCF0
ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3RlbXBsYXRlX3N0cmluZ3NfbGluZV9icmVha19u
b3JtYWxpc2F0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvdGVtcGxhdGVfc3RyaW5nc19saW5lX2JyZWFrX25vcm1hbGlzYXRpb24uanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3RlbXBsYXRlX3N0cmlu
Z3NfbGluZV9icmVha19ub3JtYWxpc2F0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTQgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBjciAgID0gZXZhbCgiYHgiICsgU3RyaW5n
LmZyb21DaGFyQ29kZSgxMykgICAgKyAieWAiKTsKK3ZhciBsZiAgID0gZXZhbCgiYHgiICsgU3Ry
aW5nLmZyb21DaGFyQ29kZSgxMCkgICAgKyAieWAiKTsKK3ZhciBjcmxmID0gZXZhbCgiYHgiICsg
U3RyaW5nLmZyb21DaGFyQ29kZSgxMywxMCkgKyAieWAiKTsKKworcmV0dXJuIGNyLmxlbmd0aCA9
PT0gMyAmJiBsZi5sZW5ndGggPT09IDMgJiYgY3JsZi5sZW5ndGggPT09IDMKKyAgJiYgY3JbMV0g
PT09IGxmWzFdICYmIGxmWzFdID09PSBjcmxmWzFdICYmIGNybGZbMV0gPT09ICdcbic7CisgICAg
ICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIp
OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3RlbXBsYXRlX3N0cmlu
Z3NfcGFzc2VkX2FycmF5X2lzX2Zyb3plbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L3RlbXBsYXRlX3N0cmluZ3NfcGFzc2VkX2FycmF5X2lzX2Zyb3pl
bi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdGVt
cGxhdGVfc3RyaW5nc19wYXNzZWRfYXJyYXlfaXNfZnJvemVuLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiAoZnVuY3Rpb24ocGFy
dHMpIHsKKyAgcmV0dXJuIE9iamVjdC5pc0Zyb3plbihwYXJ0cykgJiYgT2JqZWN0LmlzRnJvemVu
KHBhcnRzLnJhdyk7Cit9KSBgZm9vJHswfWJhciR7MH1iYXpgOworICAgICAgCit9CisKK2lmICgh
dGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90ZW1wbGF0ZV9zdHJpbmdzX3RhZ2dlZF90ZW1w
bGF0ZV9zdHJpbmdzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvdGVtcGxhdGVfc3RyaW5nc190YWdnZWRfdGVtcGxhdGVfc3RyaW5ncy5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdGVtcGxhdGVfc3RyaW5n
c190YWdnZWRfdGVtcGxhdGVfc3RyaW5ncy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIw
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgY2FsbGVkID0gZmFsc2U7CitmdW5jdGlvbiBm
bihwYXJ0cywgYSwgYikgeworICBjYWxsZWQgPSB0cnVlOworICByZXR1cm4gcGFydHMgaW5zdGFu
Y2VvZiBBcnJheSAmJgorICAgIHBhcnRzWzBdICAgICA9PT0gImZvbyIgICAgICAmJgorICAgIHBh
cnRzWzFdICAgICA9PT0gImJhclxuIiAgICAmJgorICAgIHBhcnRzLnJhd1swXSA9PT0gImZvbyIg
ICAgICAmJgorICAgIHBhcnRzLnJhd1sxXSA9PT0gImJhclxcbiIgICAmJgorICAgIGEgPT09IDEy
MyAgICAgICAgICAgICAgICAgICAmJgorICAgIGIgPT09IDQ1NjsKK30KK3JldHVybiBmbiBgZm9v
JHsxMjN9YmFyXG4kezQ1Nn1gICYmIGNhbGxlZDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvdGVtcGxhdGVfc3RyaW5nc190b1N0cmluZ19jb252ZXJzaW9u
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdGVtcGxh
dGVfc3RyaW5nc190b1N0cmluZ19jb252ZXJzaW9uLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90ZW1wbGF0ZV9zdHJpbmdzX3RvU3RyaW5nX2NvbnZl
cnNpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorZnVuY3Rpb24gdGVzdCgp
IHsKKwordmFyIGEgPSB7CisgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsgcmV0dXJuICJmb28iOyB9
LAorICB2YWx1ZU9mOiBmdW5jdGlvbigpIHsgcmV0dXJuICJiYXIiOyB9LAorfTsKK3JldHVybiBg
JHthfWAgPT09ICJmb28iOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5l
dyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLmZyb20uanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXkl
LmZyb20uanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUuZnJvbS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDE3IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIEludDhBcnJheS5m
cm9tID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50OEFycmF5LmZyb20gPT09ICJmdW5j
dGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5LmZyb20gPT09ICJmdW5jdGlvbiIg
JiYKKyAgdHlwZW9mIEludDE2QXJyYXkuZnJvbSA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2Yg
VWludDE2QXJyYXkuZnJvbSA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgSW50MzJBcnJheS5m
cm9tID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MzJBcnJheS5mcm9tID09PSAiZnVu
Y3Rpb24iICYmCisgIHR5cGVvZiBGbG9hdDMyQXJyYXkuZnJvbSA9PT0gImZ1bmN0aW9uIiAmJgor
ICB0eXBlb2YgRmxvYXQ2NEFycmF5LmZyb20gPT09ICJmdW5jdGlvbiI7CisKK30KKworaWYgKCF0
ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUub2Yu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9h
cnJheXNfJVR5cGVkQXJyYXklLm9mLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLm9mLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiB0eXBl
b2YgSW50OEFycmF5Lm9mID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50OEFycmF5Lm9m
ID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50OENsYW1wZWRBcnJheS5vZiA9PT0gImZ1
bmN0aW9uIiAmJgorICB0eXBlb2YgSW50MTZBcnJheS5vZiA9PT0gImZ1bmN0aW9uIiAmJgorICB0
eXBlb2YgVWludDE2QXJyYXkub2YgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEludDMyQXJy
YXkub2YgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQzMkFycmF5Lm9mID09PSAiZnVu
Y3Rpb24iICYmCisgIHR5cGVvZiBGbG9hdDMyQXJyYXkub2YgPT09ICJmdW5jdGlvbiIgJiYKKyAg
dHlwZW9mIEZsb2F0NjRBcnJheS5vZiA9PT0gImZ1bmN0aW9uIjsKKworfQorCitpZiAoIXRlc3Qo
KSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5
cGUuY29weVdpdGhpbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmNvcHlXaXRoaW4uanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2Fy
cmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmNvcHlXaXRoaW4uanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBJbnQ4
QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4gPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVp
bnQ4QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4gPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9m
IFVpbnQ4Q2xhbXBlZEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluID09PSAiZnVuY3Rpb24iICYm
CisgIHR5cGVvZiBJbnQxNkFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluID09PSAiZnVuY3Rpb24i
ICYmCisgIHR5cGVvZiBVaW50MTZBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiA9PT0gImZ1bmN0
aW9uIiAmJgorICB0eXBlb2YgSW50MzJBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiA9PT0gImZ1
bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDMyQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4gPT09
ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEZsb2F0MzJBcnJheS5wcm90b3R5cGUuY29weVdpdGhp
biA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQ2NEFycmF5LnByb3RvdHlwZS5jb3B5
V2l0aGluID09PSAiZnVuY3Rpb24iOworCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5l
dyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5lbnRyaWVzLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlz
XyVUeXBlZEFycmF5JS5wcm90b3R5cGUuZW50cmllcy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90
b3R5cGUuZW50cmllcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlv
biB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIEludDhBcnJheS5wcm90b3R5cGUuZW50cmllcyA9
PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuZW50cmllcyA9
PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDhDbGFtcGVkQXJyYXkucHJvdG90eXBlLmVu
dHJpZXMgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEludDE2QXJyYXkucHJvdG90eXBlLmVu
dHJpZXMgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQxNkFycmF5LnByb3RvdHlwZS5l
bnRyaWVzID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBJbnQzMkFycmF5LnByb3RvdHlwZS5l
bnRyaWVzID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MzJBcnJheS5wcm90b3R5cGUu
ZW50cmllcyA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQzMkFycmF5LnByb3RvdHlw
ZS5lbnRyaWVzID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBGbG9hdDY0QXJyYXkucHJvdG90
eXBlLmVudHJpZXMgPT09ICJmdW5jdGlvbiI7CisKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhy
b3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmV2ZXJ5Lmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJy
YXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUuZXZlcnkuanMJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJv
dG90eXBlLmV2ZXJ5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9u
IHRlc3QoKSB7CisKK3JldHVybiB0eXBlb2YgSW50OEFycmF5LnByb3RvdHlwZS5ldmVyeSA9PT0g
ImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuZXZlcnkgPT09ICJm
dW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5LnByb3RvdHlwZS5ldmVyeSA9
PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgSW50MTZBcnJheS5wcm90b3R5cGUuZXZlcnkgPT09
ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQxNkFycmF5LnByb3RvdHlwZS5ldmVyeSA9PT0g
ImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgSW50MzJBcnJheS5wcm90b3R5cGUuZXZlcnkgPT09ICJm
dW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQzMkFycmF5LnByb3RvdHlwZS5ldmVyeSA9PT0gImZ1
bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQzMkFycmF5LnByb3RvdHlwZS5ldmVyeSA9PT0gImZ1
bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQ2NEFycmF5LnByb3RvdHlwZS5ldmVyeSA9PT0gImZ1
bmN0aW9uIjsKKworfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3Qg
ZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRf
YXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUuZmlsbC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJv
dG90eXBlLmZpbGwuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmZpbGwuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5
cGVvZiBJbnQ4QXJyYXkucHJvdG90eXBlLmZpbGwgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9m
IFVpbnQ4QXJyYXkucHJvdG90eXBlLmZpbGwgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVp
bnQ4Q2xhbXBlZEFycmF5LnByb3RvdHlwZS5maWxsID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVv
ZiBJbnQxNkFycmF5LnByb3RvdHlwZS5maWxsID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBV
aW50MTZBcnJheS5wcm90b3R5cGUuZmlsbCA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgSW50
MzJBcnJheS5wcm90b3R5cGUuZmlsbCA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDMy
QXJyYXkucHJvdG90eXBlLmZpbGwgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEZsb2F0MzJB
cnJheS5wcm90b3R5cGUuZmlsbCA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQ2NEFy
cmF5LnByb3RvdHlwZS5maWxsID09PSAiZnVuY3Rpb24iOworCit9CisKK2lmICghdGVzdCgpKQor
ICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5m
aWx0ZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90
eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maWx0ZXIuanMJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRB
cnJheSUucHJvdG90eXBlLmZpbHRlci5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBA
CitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIEludDhBcnJheS5wcm90b3R5cGUu
ZmlsdGVyID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5m
aWx0ZXIgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5LnByb3Rv
dHlwZS5maWx0ZXIgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEludDE2QXJyYXkucHJvdG90
eXBlLmZpbHRlciA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDE2QXJyYXkucHJvdG90
eXBlLmZpbHRlciA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgSW50MzJBcnJheS5wcm90b3R5
cGUuZmlsdGVyID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MzJBcnJheS5wcm90b3R5
cGUuZmlsdGVyID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBGbG9hdDMyQXJyYXkucHJvdG90
eXBlLmZpbHRlciA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQ2NEFycmF5LnByb3Rv
dHlwZS5maWx0ZXIgPT09ICJmdW5jdGlvbiI7CisKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhy
b3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmZpbmQuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJh
eXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maW5kLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3Rv
dHlwZS5maW5kLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHRl
c3QoKSB7CisKK3JldHVybiB0eXBlb2YgSW50OEFycmF5LnByb3RvdHlwZS5maW5kID09PSAiZnVu
Y3Rpb24iICYmCisgIHR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5maW5kID09PSAiZnVuY3Rp
b24iICYmCisgIHR5cGVvZiBVaW50OENsYW1wZWRBcnJheS5wcm90b3R5cGUuZmluZCA9PT0gImZ1
bmN0aW9uIiAmJgorICB0eXBlb2YgSW50MTZBcnJheS5wcm90b3R5cGUuZmluZCA9PT0gImZ1bmN0
aW9uIiAmJgorICB0eXBlb2YgVWludDE2QXJyYXkucHJvdG90eXBlLmZpbmQgPT09ICJmdW5jdGlv
biIgJiYKKyAgdHlwZW9mIEludDMyQXJyYXkucHJvdG90eXBlLmZpbmQgPT09ICJmdW5jdGlvbiIg
JiYKKyAgdHlwZW9mIFVpbnQzMkFycmF5LnByb3RvdHlwZS5maW5kID09PSAiZnVuY3Rpb24iICYm
CisgIHR5cGVvZiBGbG9hdDMyQXJyYXkucHJvdG90eXBlLmZpbmQgPT09ICJmdW5jdGlvbiIgJiYK
KyAgdHlwZW9mIEZsb2F0NjRBcnJheS5wcm90b3R5cGUuZmluZCA9PT0gImZ1bmN0aW9uIjsKKwor
fQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBl
ZEFycmF5JS5wcm90b3R5cGUuZmluZEluZGV4LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUu
ZmluZEluZGV4LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maW5kSW5kZXguanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJu
IHR5cGVvZiBJbnQ4QXJyYXkucHJvdG90eXBlLmZpbmRJbmRleCA9PT0gImZ1bmN0aW9uIiAmJgor
ICB0eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuZmluZEluZGV4ID09PSAiZnVuY3Rpb24iICYm
CisgIHR5cGVvZiBVaW50OENsYW1wZWRBcnJheS5wcm90b3R5cGUuZmluZEluZGV4ID09PSAiZnVu
Y3Rpb24iICYmCisgIHR5cGVvZiBJbnQxNkFycmF5LnByb3RvdHlwZS5maW5kSW5kZXggPT09ICJm
dW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQxNkFycmF5LnByb3RvdHlwZS5maW5kSW5kZXggPT09
ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEludDMyQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleCA9
PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDMyQXJyYXkucHJvdG90eXBlLmZpbmRJbmRl
eCA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQzMkFycmF5LnByb3RvdHlwZS5maW5k
SW5kZXggPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEZsb2F0NjRBcnJheS5wcm90b3R5cGUu
ZmluZEluZGV4ID09PSAiZnVuY3Rpb24iOworCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93
IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5mb3JFYWNoLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJy
YXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUuZm9yRWFjaC5qcwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5w
cm90b3R5cGUuZm9yRWFjaC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACitmdW5j
dGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIEludDhBcnJheS5wcm90b3R5cGUuZm9yRWFj
aCA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuZm9yRWFj
aCA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDhDbGFtcGVkQXJyYXkucHJvdG90eXBl
LmZvckVhY2ggPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEludDE2QXJyYXkucHJvdG90eXBl
LmZvckVhY2ggPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQxNkFycmF5LnByb3RvdHlw
ZS5mb3JFYWNoID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBJbnQzMkFycmF5LnByb3RvdHlw
ZS5mb3JFYWNoID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MzJBcnJheS5wcm90b3R5
cGUuZm9yRWFjaCA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQzMkFycmF5LnByb3Rv
dHlwZS5mb3JFYWNoID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBGbG9hdDY0QXJyYXkucHJv
dG90eXBlLmZvckVhY2ggPT09ICJmdW5jdGlvbiI7CisKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmluZGV4
T2YuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBl
ZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5pbmRleE9mLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJy
YXklLnByb3RvdHlwZS5pbmRleE9mLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAK
K2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiB0eXBlb2YgSW50OEFycmF5LnByb3RvdHlwZS5p
bmRleE9mID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5p
bmRleE9mID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50OENsYW1wZWRBcnJheS5wcm90
b3R5cGUuaW5kZXhPZiA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgSW50MTZBcnJheS5wcm90
b3R5cGUuaW5kZXhPZiA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDE2QXJyYXkucHJv
dG90eXBlLmluZGV4T2YgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEludDMyQXJyYXkucHJv
dG90eXBlLmluZGV4T2YgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQzMkFycmF5LnBy
b3RvdHlwZS5pbmRleE9mID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBGbG9hdDMyQXJyYXku
cHJvdG90eXBlLmluZGV4T2YgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEZsb2F0NjRBcnJh
eS5wcm90b3R5cGUuaW5kZXhPZiA9PT0gImZ1bmN0aW9uIjsKKworfQorCitpZiAoIXRlc3QoKSkK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUu
am9pbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5
cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmpvaW4uanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJh
eSUucHJvdG90eXBlLmpvaW4uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorZnVu
Y3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBJbnQ4QXJyYXkucHJvdG90eXBlLmpvaW4g
PT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmpvaW4gPT09
ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5LnByb3RvdHlwZS5qb2lu
ID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBJbnQxNkFycmF5LnByb3RvdHlwZS5qb2luID09
PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MTZBcnJheS5wcm90b3R5cGUuam9pbiA9PT0g
ImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgSW50MzJBcnJheS5wcm90b3R5cGUuam9pbiA9PT0gImZ1
bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDMyQXJyYXkucHJvdG90eXBlLmpvaW4gPT09ICJmdW5j
dGlvbiIgJiYKKyAgdHlwZW9mIEZsb2F0MzJBcnJheS5wcm90b3R5cGUuam9pbiA9PT0gImZ1bmN0
aW9uIiAmJgorICB0eXBlb2YgRmxvYXQ2NEFycmF5LnByb3RvdHlwZS5qb2luID09PSAiZnVuY3Rp
b24iOworCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJh
eXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5rZXlzLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5
cGUua2V5cy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUua2V5cy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9m
IEludDhBcnJheS5wcm90b3R5cGUua2V5cyA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWlu
dDhBcnJheS5wcm90b3R5cGUua2V5cyA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDhD
bGFtcGVkQXJyYXkucHJvdG90eXBlLmtleXMgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIElu
dDE2QXJyYXkucHJvdG90eXBlLmtleXMgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQx
NkFycmF5LnByb3RvdHlwZS5rZXlzID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBJbnQzMkFy
cmF5LnByb3RvdHlwZS5rZXlzID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MzJBcnJh
eS5wcm90b3R5cGUua2V5cyA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQzMkFycmF5
LnByb3RvdHlwZS5rZXlzID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBGbG9hdDY0QXJyYXku
cHJvdG90eXBlLmtleXMgPT09ICJmdW5jdGlvbiI7CisKK30KKworaWYgKCF0ZXN0KCkpCisgICAg
dGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLmxhc3RJ
bmRleE9mLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
dHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUubGFzdEluZGV4T2YuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18l
VHlwZWRBcnJheSUucHJvdG90eXBlLmxhc3RJbmRleE9mLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiB0eXBlb2YgSW50OEFycmF5
LnByb3RvdHlwZS5sYXN0SW5kZXhPZiA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDhB
cnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVp
bnQ4Q2xhbXBlZEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiA9PT0gImZ1bmN0aW9uIiAmJgor
ICB0eXBlb2YgSW50MTZBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgPT09ICJmdW5jdGlvbiIg
JiYKKyAgdHlwZW9mIFVpbnQxNkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiA9PT0gImZ1bmN0
aW9uIiAmJgorICB0eXBlb2YgSW50MzJBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YgPT09ICJm
dW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQzMkFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZiA9
PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQzMkFycmF5LnByb3RvdHlwZS5sYXN0SW5k
ZXhPZiA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQ2NEFycmF5LnByb3RvdHlwZS5s
YXN0SW5kZXhPZiA9PT0gImZ1bmN0aW9uIjsKKworfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUubWFwLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlz
XyVUeXBlZEFycmF5JS5wcm90b3R5cGUubWFwLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlw
ZS5tYXAuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24gdGVzdCgp
IHsKKworcmV0dXJuIHR5cGVvZiBJbnQ4QXJyYXkucHJvdG90eXBlLm1hcCA9PT0gImZ1bmN0aW9u
IiAmJgorICB0eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUubWFwID09PSAiZnVuY3Rpb24iICYm
CisgIHR5cGVvZiBVaW50OENsYW1wZWRBcnJheS5wcm90b3R5cGUubWFwID09PSAiZnVuY3Rpb24i
ICYmCisgIHR5cGVvZiBJbnQxNkFycmF5LnByb3RvdHlwZS5tYXAgPT09ICJmdW5jdGlvbiIgJiYK
KyAgdHlwZW9mIFVpbnQxNkFycmF5LnByb3RvdHlwZS5tYXAgPT09ICJmdW5jdGlvbiIgJiYKKyAg
dHlwZW9mIEludDMyQXJyYXkucHJvdG90eXBlLm1hcCA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBl
b2YgVWludDMyQXJyYXkucHJvdG90eXBlLm1hcCA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2Yg
RmxvYXQzMkFycmF5LnByb3RvdHlwZS5tYXAgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEZs
b2F0NjRBcnJheS5wcm90b3R5cGUubWFwID09PSAiZnVuY3Rpb24iOworCit9CisKK2lmICghdGVz
dCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3Rv
dHlwZS5yZWR1Y2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5yZWR1Y2UuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18l
VHlwZWRBcnJheSUucHJvdG90eXBlLnJlZHVjZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDE3IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIEludDhBcnJheS5wcm90
b3R5cGUucmVkdWNlID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50OEFycmF5LnByb3Rv
dHlwZS5yZWR1Y2UgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5
LnByb3RvdHlwZS5yZWR1Y2UgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEludDE2QXJyYXku
cHJvdG90eXBlLnJlZHVjZSA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDE2QXJyYXku
cHJvdG90eXBlLnJlZHVjZSA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgSW50MzJBcnJheS5w
cm90b3R5cGUucmVkdWNlID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MzJBcnJheS5w
cm90b3R5cGUucmVkdWNlID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBGbG9hdDMyQXJyYXku
cHJvdG90eXBlLnJlZHVjZSA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQ2NEFycmF5
LnByb3RvdHlwZS5yZWR1Y2UgPT09ICJmdW5jdGlvbiI7CisKK30KKworaWYgKCF0ZXN0KCkpCisg
ICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLnJl
ZHVjZVJpZ2h0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUucmVkdWNlUmlnaHQuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5
c18lVHlwZWRBcnJheSUucHJvdG90eXBlLnJlZHVjZVJpZ2h0LmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiB0eXBlb2YgSW50OEFy
cmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWlu
dDhBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9m
IFVpbnQ4Q2xhbXBlZEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCA9PT0gImZ1bmN0aW9uIiAm
JgorICB0eXBlb2YgSW50MTZBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgPT09ICJmdW5jdGlv
biIgJiYKKyAgdHlwZW9mIFVpbnQxNkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodCA9PT0gImZ1
bmN0aW9uIiAmJgorICB0eXBlb2YgSW50MzJBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQgPT09
ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQzMkFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdo
dCA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQzMkFycmF5LnByb3RvdHlwZS5yZWR1
Y2VSaWdodCA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQ2NEFycmF5LnByb3RvdHlw
ZS5yZWR1Y2VSaWdodCA9PT0gImZ1bmN0aW9uIjsKKworfQorCitpZiAoIXRlc3QoKSkKKyAgICB0
aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGUucmV2ZXJz
ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVk
X2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLnJldmVyc2UuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJh
eSUucHJvdG90eXBlLnJldmVyc2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAor
ZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBJbnQ4QXJyYXkucHJvdG90eXBlLnJl
dmVyc2UgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLnJl
dmVyc2UgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5LnByb3Rv
dHlwZS5yZXZlcnNlID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBJbnQxNkFycmF5LnByb3Rv
dHlwZS5yZXZlcnNlID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MTZBcnJheS5wcm90
b3R5cGUucmV2ZXJzZSA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgSW50MzJBcnJheS5wcm90
b3R5cGUucmV2ZXJzZSA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDMyQXJyYXkucHJv
dG90eXBlLnJldmVyc2UgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEZsb2F0MzJBcnJheS5w
cm90b3R5cGUucmV2ZXJzZSA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQ2NEFycmF5
LnByb3RvdHlwZS5yZXZlcnNlID09PSAiZnVuY3Rpb24iOworCit9CisKK2lmICghdGVzdCgpKQor
ICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5z
bGljZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5
cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLnNsaWNlLmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJy
YXklLnByb3RvdHlwZS5zbGljZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACitm
dW5jdGlvbiB0ZXN0KCkgeworCityZXR1cm4gdHlwZW9mIEludDhBcnJheS5wcm90b3R5cGUuc2xp
Y2UgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNsaWNl
ID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50OENsYW1wZWRBcnJheS5wcm90b3R5cGUu
c2xpY2UgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEludDE2QXJyYXkucHJvdG90eXBlLnNs
aWNlID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MTZBcnJheS5wcm90b3R5cGUuc2xp
Y2UgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEludDMyQXJyYXkucHJvdG90eXBlLnNsaWNl
ID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MzJBcnJheS5wcm90b3R5cGUuc2xpY2Ug
PT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEZsb2F0MzJBcnJheS5wcm90b3R5cGUuc2xpY2Ug
PT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEZsb2F0NjRBcnJheS5wcm90b3R5cGUuc2xpY2Ug
PT09ICJmdW5jdGlvbiI7CisKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9y
KCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLnNvbWUuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJy
YXklLnByb3RvdHlwZS5zb21lLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5zb21lLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3Jl
dHVybiB0eXBlb2YgSW50OEFycmF5LnByb3RvdHlwZS5zb21lID09PSAiZnVuY3Rpb24iICYmCisg
IHR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5zb21lID09PSAiZnVuY3Rpb24iICYmCisgIHR5
cGVvZiBVaW50OENsYW1wZWRBcnJheS5wcm90b3R5cGUuc29tZSA9PT0gImZ1bmN0aW9uIiAmJgor
ICB0eXBlb2YgSW50MTZBcnJheS5wcm90b3R5cGUuc29tZSA9PT0gImZ1bmN0aW9uIiAmJgorICB0
eXBlb2YgVWludDE2QXJyYXkucHJvdG90eXBlLnNvbWUgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlw
ZW9mIEludDMyQXJyYXkucHJvdG90eXBlLnNvbWUgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9m
IFVpbnQzMkFycmF5LnByb3RvdHlwZS5zb21lID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBG
bG9hdDMyQXJyYXkucHJvdG90eXBlLnNvbWUgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEZs
b2F0NjRBcnJheS5wcm90b3R5cGUuc29tZSA9PT0gImZ1bmN0aW9uIjsKKworfQorCitpZiAoIXRl
c3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90
b3R5cGUuc29ydC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLnNvcnQuanMJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlw
ZWRBcnJheSUucHJvdG90eXBlLnNvcnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBA
QAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBJbnQ4QXJyYXkucHJvdG90eXBl
LnNvcnQgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNv
cnQgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5LnByb3RvdHlw
ZS5zb3J0ID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBJbnQxNkFycmF5LnByb3RvdHlwZS5z
b3J0ID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MTZBcnJheS5wcm90b3R5cGUuc29y
dCA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgSW50MzJBcnJheS5wcm90b3R5cGUuc29ydCA9
PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDMyQXJyYXkucHJvdG90eXBlLnNvcnQgPT09
ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEZsb2F0MzJBcnJheS5wcm90b3R5cGUuc29ydCA9PT0g
ImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQ2NEFycmF5LnByb3RvdHlwZS5zb3J0ID09PSAi
ZnVuY3Rpb24iOworCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVz
dCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBl
ZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5zdWJhcnJheS5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJh
eSUucHJvdG90eXBlLnN1YmFycmF5LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklLnByb3RvdHlwZS5zdWJh
cnJheS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiB0ZXN0KCkg
eworCityZXR1cm4gdHlwZW9mIEludDhBcnJheS5wcm90b3R5cGUuc3ViYXJyYXkgPT09ICJmdW5j
dGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLnN1YmFycmF5ID09PSAiZnVu
Y3Rpb24iICYmCisgIHR5cGVvZiBVaW50OENsYW1wZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXkg
PT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEludDE2QXJyYXkucHJvdG90eXBlLnN1YmFycmF5
ID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MTZBcnJheS5wcm90b3R5cGUuc3ViYXJy
YXkgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEludDMyQXJyYXkucHJvdG90eXBlLnN1YmFy
cmF5ID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MzJBcnJheS5wcm90b3R5cGUuc3Vi
YXJyYXkgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEZsb2F0MzJBcnJheS5wcm90b3R5cGUu
c3ViYXJyYXkgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEZsb2F0NjRBcnJheS5wcm90b3R5
cGUuc3ViYXJyYXkgPT09ICJmdW5jdGlvbiI7CisKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhy
b3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLnZhbHVlcy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2Fy
cmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlLnZhbHVlcy5qcwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5w
cm90b3R5cGUudmFsdWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0
aW9uIHRlc3QoKSB7CisKK3JldHVybiB0eXBlb2YgSW50OEFycmF5LnByb3RvdHlwZS52YWx1ZXMg
PT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLnZhbHVlcyA9
PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgVWludDhDbGFtcGVkQXJyYXkucHJvdG90eXBlLnZh
bHVlcyA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgSW50MTZBcnJheS5wcm90b3R5cGUudmFs
dWVzID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MTZBcnJheS5wcm90b3R5cGUudmFs
dWVzID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBJbnQzMkFycmF5LnByb3RvdHlwZS52YWx1
ZXMgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIFVpbnQzMkFycmF5LnByb3RvdHlwZS52YWx1
ZXMgPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlwZW9mIEZsb2F0MzJBcnJheS5wcm90b3R5cGUudmFs
dWVzID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBGbG9hdDY0QXJyYXkucHJvdG90eXBlLnZh
bHVlcyA9PT0gImZ1bmN0aW9uIjsKKworfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcg
RXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvdHlwZWRfYXJyYXlzXyVUeXBlZEFycmF5JS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9y
XS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVk
X2FycmF5c18lVHlwZWRBcnJheSUucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0uanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18l
VHlwZWRBcnJheSUucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0uanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBJbnQ4
QXJyYXkucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0gPT09ICJmdW5jdGlvbiIgJiYKKyAgdHlw
ZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0gPT09ICJmdW5jdGlvbiIg
JiYKKyAgdHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3Jd
ID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBJbnQxNkFycmF5LnByb3RvdHlwZVtTeW1ib2wu
aXRlcmF0b3JdID09PSAiZnVuY3Rpb24iICYmCisgIHR5cGVvZiBVaW50MTZBcnJheS5wcm90b3R5
cGVbU3ltYm9sLml0ZXJhdG9yXSA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2YgSW50MzJBcnJh
eS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSA9PT0gImZ1bmN0aW9uIiAmJgorICB0eXBlb2Yg
VWludDMyQXJyYXkucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0gPT09ICJmdW5jdGlvbiIgJiYK
KyAgdHlwZW9mIEZsb2F0MzJBcnJheS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSA9PT0gImZ1
bmN0aW9uIiAmJgorICB0eXBlb2YgRmxvYXQ2NEFycmF5LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0
b3JdID09PSAiZnVuY3Rpb24iOworCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBF
cnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklW1N5bWJvbC5zcGVjaWVzXS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c18lVHlw
ZWRBcnJheSVbU3ltYm9sLnNwZWNpZXNdLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfJVR5cGVkQXJyYXklW1N5bWJvbC5zcGVj
aWVzXS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiB0ZXN0KCkg
eworCityZXR1cm4gdHlwZW9mIEludDhBcnJheVtTeW1ib2wuc3BlY2llc10gPT09ICJmdW5jdGlv
biIgJiYKKyAgdHlwZW9mIFVpbnQ4QXJyYXlbU3ltYm9sLnNwZWNpZXNdID09PSAiZnVuY3Rpb24i
ICYmCisgIHR5cGVvZiBVaW50OENsYW1wZWRBcnJheVtTeW1ib2wuc3BlY2llc10gPT09ICJmdW5j
dGlvbiIgJiYKKyAgdHlwZW9mIEludDE2QXJyYXlbU3ltYm9sLnNwZWNpZXNdID09PSAiZnVuY3Rp
b24iICYmCisgIHR5cGVvZiBVaW50MTZBcnJheVtTeW1ib2wuc3BlY2llc10gPT09ICJmdW5jdGlv
biIgJiYKKyAgdHlwZW9mIEludDMyQXJyYXlbU3ltYm9sLnNwZWNpZXNdID09PSAiZnVuY3Rpb24i
ICYmCisgIHR5cGVvZiBVaW50MzJBcnJheVtTeW1ib2wuc3BlY2llc10gPT09ICJmdW5jdGlvbiIg
JiYKKyAgdHlwZW9mIEZsb2F0MzJBcnJheVtTeW1ib2wuc3BlY2llc10gPT09ICJmdW5jdGlvbiIg
JiYKKyAgdHlwZW9mIEZsb2F0NjRBcnJheVtTeW1ib2wuc3BlY2llc10gPT09ICJmdW5jdGlvbiI7
CisKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIp
OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19B
cnJheUJ1ZmZlcltTeW1ib2wuc3BlY2llc10uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfQXJyYXlCdWZmZXJbU3ltYm9sLnNwZWNp
ZXNdLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90
eXBlZF9hcnJheXNfQXJyYXlCdWZmZXJbU3ltYm9sLnNwZWNpZXNdLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsOSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIHR5cGVvZiBBcnJh
eUJ1ZmZlcltTeW1ib2wuc3BlY2llc10gPT09ICdmdW5jdGlvbic7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19EYXRhVmlld19GbG9h
dDMyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlw
ZWRfYXJyYXlzX0RhdGFWaWV3X0Zsb2F0MzIuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19EYXRhVmlld19GbG9hdDMyLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBi
dWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoNjQpOwordmFyIHZpZXcgPSBuZXcgRGF0YVZpZXcoYnVm
ZmVyKTsKK3ZpZXcuc2V0RmxvYXQzMigwLCAwLjEpOworcmV0dXJuIHZpZXcuZ2V0RmxvYXQzMigw
KSA9PT0gMC4xMDAwMDAwMDE0OTAxMTYxMjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAg
ICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzX0RhdGFWaWV3X0Zsb2F0NjQuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfRGF0
YVZpZXdfRmxvYXQ2NC5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvdHlwZWRfYXJyYXlzX0RhdGFWaWV3X0Zsb2F0NjQuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGJ1ZmZlciA9IG5ldyBB
cnJheUJ1ZmZlcig2NCk7Cit2YXIgdmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIpOwordmlldy5z
ZXRGbG9hdDY0KDAsIDAuMSk7CityZXR1cm4gdmlldy5nZXRGbG9hdDY0KDApID09PSAwLjE7Cisg
ICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxl
ZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5
c19EYXRhVmlld19JbnQ4LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvdHlwZWRfYXJyYXlzX0RhdGFWaWV3X0ludDguanMJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19EYXRhVmlld19JbnQ4
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisK
K3ZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoNjQpOwordmFyIHZpZXcgPSBuZXcgRGF0YVZp
ZXcoYnVmZmVyKTsKK3ZpZXcuc2V0SW50OCAoMCwgMHg4MCk7CityZXR1cm4gdmlldy5nZXRJbnQ4
KDApID09PSAtMHg4MDsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcg
RXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvdHlwZWRfYXJyYXlzX0RhdGFWaWV3X0ludDE2LmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzX0RhdGFWaWV3X0ludDE2Lmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9h
cnJheXNfRGF0YVZpZXdfSW50MTYuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAor
ZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcig2NCk7Cit2
YXIgdmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIpOwordmlldy5zZXRJbnQxNigwLCAweDgwMDAp
OworcmV0dXJuIHZpZXcuZ2V0SW50MTYoMCkgPT09IC0weDgwMDA7CisgICAgICAKK30KKworaWYg
KCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19EYXRhVmlld19JbnQz
Mi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVk
X2FycmF5c19EYXRhVmlld19JbnQzMi5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzX0RhdGFWaWV3X0ludDMyLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBidWZmZXIg
PSBuZXcgQXJyYXlCdWZmZXIoNjQpOwordmFyIHZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyKTsK
K3ZpZXcuc2V0SW50MzIoMCwgMHg4MDAwMDAwMCk7CityZXR1cm4gdmlldy5nZXRJbnQzMigwKSA9
PT0gLTB4ODAwMDAwMDA7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3
IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L3R5cGVkX2FycmF5c19EYXRhVmlld19VaW50OC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19EYXRhVmlld19VaW50OC5q
cwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRf
YXJyYXlzX0RhdGFWaWV3X1VpbnQ4LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAK
K2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoNjQpOwor
dmFyIHZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyKTsKK3ZpZXcuc2V0VWludDgoMCwgMHgxMDAp
OworcmV0dXJuIHZpZXcuZ2V0VWludDgoMCkgPT09IDA7CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19EYXRhVmlld19VaW50MTYuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJh
eXNfRGF0YVZpZXdfVWludDE2LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfRGF0YVZpZXdfVWludDE2LmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTIgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBidWZmZXIgPSBu
ZXcgQXJyYXlCdWZmZXIoNjQpOwordmFyIHZpZXcgPSBuZXcgRGF0YVZpZXcoYnVmZmVyKTsKK3Zp
ZXcuc2V0VWludDE2KDAsIDB4MTAwMDApOworcmV0dXJuIHZpZXcuZ2V0VWludDE2KDApID09PSAw
OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBm
YWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9h
cnJheXNfRGF0YVZpZXdfVWludDMyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzX0RhdGFWaWV3X1VpbnQzMi5qcwkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzX0RhdGFW
aWV3X1VpbnQzMi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCit2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDY0KTsKK3ZhciB2aWV3ID0g
bmV3IERhdGFWaWV3KGJ1ZmZlcik7Cit2aWV3LnNldFVpbnQzMigwLCAweDEwMDAwMDAwMCk7City
ZXR1cm4gdmlldy5nZXRVaW50MzIoMCkgPT09IDA7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkp
CisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19GbG9hdDMyQXJyYXkuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfRmxv
YXQzMkFycmF5LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi90eXBlZF9hcnJheXNfRmxvYXQzMkFycmF5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZm
ZXIoNjQpOwordmFyIHZpZXcgPSBuZXcgRmxvYXQzMkFycmF5KGJ1ZmZlcik7ICAgICAgIHZpZXdb
MF0gPSAwLjE7CityZXR1cm4gdmlld1swXSA9PT0gMC4xMDAwMDAwMDE0OTAxMTYxMjsKKyAgICAg
IAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvdHlwZWRfYXJyYXlzX0Zs
b2F0NjRBcnJheS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L3R5cGVkX2FycmF5c19GbG9hdDY0QXJyYXkuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19GbG9hdDY0QXJyYXkuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIGJ1
ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcig2NCk7Cit2YXIgdmlldyA9IG5ldyBGbG9hdDY0QXJyYXko
YnVmZmVyKTsgICAgICAgdmlld1swXSA9IDAuMTsKK3JldHVybiB2aWV3WzBdID09PSAwLjE7Cisg
ICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxl
ZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5
c19JbnQ4QXJyYXkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfSW50OEFycmF5LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBidWZmZXIg
PSBuZXcgQXJyYXlCdWZmZXIoNjQpOwordmFyIHZpZXcgPSBuZXcgSW50OEFycmF5KGJ1ZmZlcik7
ICAgICAgICAgdmlld1swXSA9IDB4ODA7CityZXR1cm4gdmlld1swXSA9PT0gLTB4ODA7CisgICAg
ICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIp
OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19J
bnQxNkFycmF5LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvdHlwZWRfYXJyYXlzX0ludDE2QXJyYXkuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19JbnQxNkFycmF5LmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBidWZmZXIg
PSBuZXcgQXJyYXlCdWZmZXIoNjQpOwordmFyIHZpZXcgPSBuZXcgSW50MTZBcnJheShidWZmZXIp
OyAgICAgICAgdmlld1swXSA9IDB4ODAwMDsKK3JldHVybiB2aWV3WzBdID09PSAtMHg4MDAwOwor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJh
eXNfSW50MzJBcnJheS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L3R5cGVkX2FycmF5c19JbnQzMkFycmF5LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfSW50MzJBcnJheS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgYnVm
ZmVyID0gbmV3IEFycmF5QnVmZmVyKDY0KTsKK3ZhciB2aWV3ID0gbmV3IEludDMyQXJyYXkoYnVm
ZmVyKTsgICAgICAgIHZpZXdbMF0gPSAweDgwMDAwMDAwOworcmV0dXJuIHZpZXdbMF0gPT09IC0w
eDgwMDAwMDAwOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJv
cigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni90eXBlZF9hcnJheXNfVWludDhBcnJheS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19VaW50OEFycmF5LmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfVWludDhB
cnJheS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0ZXN0KCkg
eworCit2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDY0KTsKK3ZhciB2aWV3ID0gbmV3IFVp
bnQ4QXJyYXkoYnVmZmVyKTsgICAgICAgIHZpZXdbMF0gPSAweDEwMDsKK3JldHVybiB2aWV3WzBd
ID09PSAwOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigi
VGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90
eXBlZF9hcnJheXNfVWludDhDbGFtcGVkQXJyYXkuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfVWludDhDbGFtcGVkQXJyYXkuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2Fy
cmF5c19VaW50OENsYW1wZWRBcnJheS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBA
CitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDY0KTsK
K3ZhciB2aWV3ID0gbmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGJ1ZmZlcik7IHZpZXdbMF0gPSAweDEw
MDsKK3JldHVybiB2aWV3WzBdID09PSAweEZGOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQor
ICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfVWludDE2QXJyYXkuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfVWludDE2
QXJyYXkuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L3R5cGVkX2FycmF5c19VaW50MTZBcnJheS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEx
IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDY0
KTsKK3ZhciB2aWV3ID0gbmV3IFVpbnQxNkFycmF5KGJ1ZmZlcik7ICAgICAgIHZpZXdbMF0gPSAw
eDEwMDAwOworcmV0dXJuIHZpZXdbMF0gPT09IDA7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkp
CisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19VaW50MzJBcnJheS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19VaW50
MzJBcnJheS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvdHlwZWRfYXJyYXlzX1VpbnQzMkFycmF5LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIo
NjQpOwordmFyIHZpZXcgPSBuZXcgVWludDMyQXJyYXkoYnVmZmVyKTsgICAgICAgdmlld1swXSA9
IDB4MTAwMDAwMDAwOworcmV0dXJuIHZpZXdbMF0gPT09IDA7CisgICAgICAKK30KKworaWYgKCF0
ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2FycmF5c19jb25zdHJ1Y3RvcnNfcmVx
dWlyZV9uZXcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni90eXBlZF9hcnJheXNfY29uc3RydWN0b3JzX3JlcXVpcmVfbmV3LmpzCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfY29uc3RydWN0
b3JzX3JlcXVpcmVfbmV3LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKK2Z1bmN0
aW9uIHRlc3QoKSB7CisKK3ZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoNjQpOwordmFyIGNv
bnN0cnVjdG9ycyA9IFsKKyAgJ0FycmF5QnVmZmVyJywKKyAgJ0RhdGFWaWV3JywKKyAgJ0ludDhB
cnJheScsCisgICdVaW50OEFycmF5JywKKyAgJ1VpbnQ4Q2xhbXBlZEFycmF5JywKKyAgJ0ludDE2
QXJyYXknLAorICAnVWludDE2QXJyYXknLAorICAnSW50MzJBcnJheScsCisgICdVaW50MzJBcnJh
eScsCisgICdGbG9hdDMyQXJyYXknLAorICAnRmxvYXQ2NEFycmF5JworXTsKK2Zvcih2YXIgaSA9
IDA7IGkgPCBjb25zdHJ1Y3RvcnMubGVuZ3RoOyBpKz0xKSB7CisgIHRyeSB7CisgICAgaWYgKGNv
bnN0cnVjdG9yc1tpXSBpbiBnbG9iYWwpIHsKKyAgICAgIGdsb2JhbFtjb25zdHJ1Y3RvcnNbaV1d
KGNvbnN0cnVjdG9yc1tpXSA9PT0gIkFycmF5QnVmZmVyIiA/IDY0IDogYnVmZmVyKTsKKyAgICB9
CisgICAgcmV0dXJuIGZhbHNlOworICB9IGNhdGNoKGUpIHsKKyAgfQorfQorcmV0dXJuIHRydWU7
CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZh
aWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3R5cGVkX2Fy
cmF5c19jb3JyZWN0X3Byb3RvdHlwZV9jaGFpbnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90eXBlZF9hcnJheXNfY29ycmVjdF9wcm90b3R5cGVfY2hh
aW5zLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi90
eXBlZF9hcnJheXNfY29ycmVjdF9wcm90b3R5cGVfY2hhaW5zLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMzEgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBjb25zdHJ1Y3RvcnMgPSBb
CisgICdJbnQ4QXJyYXknLAorICAnVWludDhBcnJheScsCisgICdVaW50OENsYW1wZWRBcnJheScs
CisgICdJbnQxNkFycmF5JywKKyAgJ1VpbnQxNkFycmF5JywKKyAgJ0ludDMyQXJyYXknLAorICAn
VWludDMyQXJyYXknLAorICAnRmxvYXQzMkFycmF5JywKKyAgJ0Zsb2F0NjRBcnJheScKK107Cit2
YXIgY29uc3RydWN0b3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoSW50OEFycmF5KTsKK3ZhciBw
cm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoSW50OEFycmF5LnByb3RvdHlwZSk7Citm
b3IodmFyIGkgPSAwOyBpIDwgY29uc3RydWN0b3JzLmxlbmd0aDsgaSs9MSkgeworICBpZiAoIShj
b25zdHJ1Y3RvcnNbaV0gaW4gZ2xvYmFsCisgICAgICAmJiBPYmplY3QuZ2V0UHJvdG90eXBlT2Yo
Z2xvYmFsW2NvbnN0cnVjdG9yc1tpXV0pID09PSBjb25zdHJ1Y3RvcgorICAgICAgJiYgT2JqZWN0
LmdldFByb3RvdHlwZU9mKGdsb2JhbFtjb25zdHJ1Y3RvcnNbaV1dLnByb3RvdHlwZSkgPT09IHBy
b3RvdHlwZQorICAgICAgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZ2xvYmFsW2NvbnN0
cnVjdG9yc1tpXV0ucHJvdG90eXBlKS5zb3J0KCkgKyAnJworICAgICAgICA9PT0gIkJZVEVTX1BF
Ul9FTEVNRU5ULGNvbnN0cnVjdG9yIikpIHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KK30KK3Jl
dHVybiB0cnVlOworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJv
cigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLmhhc0luc3RhbmNlLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJv
bC5oYXNJbnN0YW5jZS5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5oYXNJbnN0YW5jZS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgcGFzc2Vk
ID0gZmFsc2U7Cit2YXIgb2JqID0geyBmb286IHRydWUgfTsKK3ZhciBDID0gZnVuY3Rpb24oKXt9
OworT2JqZWN0LmRlZmluZVByb3BlcnR5KEMsIFN5bWJvbC5oYXNJbnN0YW5jZSwgeworICB2YWx1
ZTogZnVuY3Rpb24oaW5zdCkgeyBwYXNzZWQgPSBpbnN0LmZvbzsgcmV0dXJuIGZhbHNlOyB9Cit9
KTsKK29iaiBpbnN0YW5jZW9mIEM7CityZXR1cm4gcGFzc2VkOworICAgICAgCit9CisKK2lmICgh
dGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLmlz
Q29uY2F0U3ByZWFkYWJsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wuaXNDb25jYXRTcHJlYWRhYmxlLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtu
b3duX3N5bWJvbHNfU3ltYm9sLmlzQ29uY2F0U3ByZWFkYWJsZS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgYSA9IFtdLCBiID0gW107
CitiW1N5bWJvbC5pc0NvbmNhdFNwcmVhZGFibGVdID0gZmFsc2U7CithID0gYS5jb25jYXQoYik7
CityZXR1cm4gYVswXSA9PT0gYjsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5pdGVyYXRvcl9hcmd1bWVudHNf
b2JqZWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
d2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5pdGVyYXRvcl9hcmd1bWVudHNfb2JqZWN0LmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtub3du
X3N5bWJvbHNfU3ltYm9sLml0ZXJhdG9yX2FyZ3VtZW50c19vYmplY3QuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuIChmdW5jdGlv
bigpIHsKKyAgcmV0dXJuIHR5cGVvZiBhcmd1bWVudHNbU3ltYm9sLml0ZXJhdG9yXSA9PT0gJ2Z1
bmN0aW9uJworICAgICYmIE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGFyZ3VtZW50cywgU3lt
Ym9sLml0ZXJhdG9yKTsKK30oKSk7CisgICAgICAKK30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhy
b3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wuaXRlcmF0b3JfZXhpc3RlbmNl
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvd2VsbC1r
bm93bl9zeW1ib2xzX1N5bWJvbC5pdGVyYXRvcl9leGlzdGVuY2UuanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1i
b2wuaXRlcmF0b3JfZXhpc3RlbmNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAor
ZnVuY3Rpb24gdGVzdCgpIHsKKworcmV0dXJuICJpdGVyYXRvciIgaW4gU3ltYm9sOworICAgICAg
Cit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJv
bHNfU3ltYm9sLm1hdGNoLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5tYXRjaC5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5
bWJvbC5tYXRjaC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCit2YXIgTyA9IHt9OworT1tTeW1ib2wubWF0Y2hdID0gZnVuY3Rpb24oKXsKKyAg
cmV0dXJuIDQyOworfTsKK3JldHVybiAnJy5tYXRjaChPKSA9PT0gNDI7CisgICAgICAKK30KKwor
aWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1i
b2wucmVwbGFjZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wucmVwbGFjZS5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJv
bC5yZXBsYWNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRl
c3QoKSB7CisKK3ZhciBPID0ge307CitPW1N5bWJvbC5yZXBsYWNlXSA9IGZ1bmN0aW9uKCl7Cisg
IHJldHVybiA0MjsKK307CityZXR1cm4gJycucmVwbGFjZShPKSA9PT0gNDI7CisgICAgICAKK30K
KworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3dlbGwta25vd25fc3ltYm9sc19T
eW1ib2wuc2VhcmNoLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5zZWFyY2guanMJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1i
b2wuc2VhcmNoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKK2Z1bmN0aW9uIHRl
c3QoKSB7CisKK3ZhciBPID0ge307CitPW1N5bWJvbC5zZWFyY2hdID0gZnVuY3Rpb24oKXsKKyAg
cmV0dXJuIDQyOworfTsKK3JldHVybiAnJy5zZWFyY2goTykgPT09IDQyOworICAgICAgCit9CisK
K2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3lt
Ym9sLnNwZWNpZXNfQXJyYXkucHJvdG90eXBlLmNvbmNhdC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wuc3Bl
Y2llc19BcnJheS5wcm90b3R5cGUuY29uY2F0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLnNwZWNpZXNf
QXJyYXkucHJvdG90eXBlLmNvbmNhdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0IEBA
CitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgb2JqID0gW107CitvYmouY29uc3RydWN0b3IgPSB7
fTsKK29iai5jb25zdHJ1Y3RvcltTeW1ib2wuc3BlY2llc10gPSBmdW5jdGlvbigpIHsKKyAgICBy
ZXR1cm4geyBmb286IDEgfTsKK307CityZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5jYWxs
KG9iaiwgW10pLmZvbyA9PT0gMTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJv
dyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5zcGVjaWVzX0FycmF5LnByb3Rv
dHlwZS5maWx0ZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLnNwZWNpZXNfQXJyYXkucHJvdG90eXBlLmZp
bHRlci5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
d2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5zcGVjaWVzX0FycmF5LnByb3RvdHlwZS5maWx0ZXIu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwor
dmFyIG9iaiA9IFtdOworb2JqLmNvbnN0cnVjdG9yID0ge307CitvYmouY29uc3RydWN0b3JbU3lt
Ym9sLnNwZWNpZXNdID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIHsgZm9vOiAxIH07Cit9Owor
cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbChvYmosIEJvb2xlYW4pLmZvbyA9PT0g
MTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkKKyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3Qg
ZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvd2VsbC1r
bm93bl9zeW1ib2xzX1N5bWJvbC5zcGVjaWVzX0FycmF5LnByb3RvdHlwZS5tYXAuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJv
bHNfU3ltYm9sLnNwZWNpZXNfQXJyYXkucHJvdG90eXBlLm1hcC5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJv
bC5zcGVjaWVzX0FycmF5LnByb3RvdHlwZS5tYXAuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxNCBAQAorZnVuY3Rpb24gdGVzdCgpIHsKKwordmFyIG9iaiA9IFtdOworb2JqLmNvbnN0cnVj
dG9yID0ge307CitvYmouY29uc3RydWN0b3JbU3ltYm9sLnNwZWNpZXNdID0gZnVuY3Rpb24oKSB7
CisgICAgcmV0dXJuIHsgZm9vOiAxIH07Cit9OworcmV0dXJuIEFycmF5LnByb3RvdHlwZS5tYXAu
Y2FsbChvYmosIEJvb2xlYW4pLmZvbyA9PT0gMTsKKyAgICAgIAorfQorCitpZiAoIXRlc3QoKSkK
KyAgICB0aHJvdyBuZXcgRXJyb3IoIlRlc3QgZmFpbGVkIik7CisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5zcGVjaWVzX0Fy
cmF5LnByb3RvdHlwZS5zbGljZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wuc3BlY2llc19BcnJheS5wcm90
b3R5cGUuc2xpY2UuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wuc3BlY2llc19BcnJheS5wcm90b3R5cGUu
c2xpY2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNCBAQAorZnVuY3Rpb24gdGVzdCgp
IHsKKwordmFyIG9iaiA9IFtdOworb2JqLmNvbnN0cnVjdG9yID0ge307CitvYmouY29uc3RydWN0
b3JbU3ltYm9sLnNwZWNpZXNdID0gZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIHsgZm9vOiAxIH07
Cit9OworcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG9iaiwgMCkuZm9vID09PSAx
OworICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBm
YWlsZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtu
b3duX3N5bWJvbHNfU3ltYm9sLnNwZWNpZXNfQXJyYXkucHJvdG90eXBlLnNwbGljZS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3dlbGwta25vd25fc3lt
Ym9sc19TeW1ib2wuc3BlY2llc19BcnJheS5wcm90b3R5cGUuc3BsaWNlLmpzCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNf
U3ltYm9sLnNwZWNpZXNfQXJyYXkucHJvdG90eXBlLnNwbGljZS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDE0IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgb2JqID0gW107CitvYmou
Y29uc3RydWN0b3IgPSB7fTsKK29iai5jb25zdHJ1Y3RvcltTeW1ib2wuc3BlY2llc10gPSBmdW5j
dGlvbigpIHsKKyAgICByZXR1cm4geyBmb286IDEgfTsKK307CityZXR1cm4gQXJyYXkucHJvdG90
eXBlLnNwbGljZS5jYWxsKG9iaiwgMCkuZm9vID09PSAxOworICAgICAgCit9CisKK2lmICghdGVz
dCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLnNwZWNp
ZXNfUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wuc3BsaXRdLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5zcGVj
aWVzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNwbGl0XS5qcwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5z
cGVjaWVzX1JlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnNwbGl0XS5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiB0ZXN0KCkgeworCit2YXIgcGFzc2VkID0gZmFsc2U7
Cit2YXIgb2JqID0geyBjb25zdHJ1Y3Rvcjoge30gfTsKK29ialtTeW1ib2wuc3BsaXRdID0gUmVn
RXhwLnByb3RvdHlwZVtTeW1ib2wuc3BsaXRdOworb2JqLmNvbnN0cnVjdG9yW1N5bWJvbC5zcGVj
aWVzXSA9IGZ1bmN0aW9uKCkgeworICBwYXNzZWQgPSB0cnVlOworICByZXR1cm4gLy4vOworfTsK
KyIiLnNwbGl0KG9iaik7CityZXR1cm4gcGFzc2VkOworICAgICAgCit9CisKK2lmICghdGVzdCgp
KQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLnNwZWNpZXNf
ZXhpc3RlbmNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5zcGVjaWVzX2V4aXN0ZW5jZS5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1i
b2xzX1N5bWJvbC5zcGVjaWVzX2V4aXN0ZW5jZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDkgQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3JldHVybiAic3BlY2llcyIgaW4gU3ltYm9sOwor
ICAgICAgCit9CisKK2lmICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWls
ZWQiKTsKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtub3du
X3N5bWJvbHNfU3ltYm9sLnNwbGl0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC5zcGxpdC5qcwkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1i
b2xzX1N5bWJvbC5zcGxpdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5j
dGlvbiB0ZXN0KCkgeworCit2YXIgTyA9IHt9OworT1tTeW1ib2wuc3BsaXRdID0gZnVuY3Rpb24o
KXsKKyAgcmV0dXJuIDQyOworfTsKK3JldHVybiAnJy5zcGxpdChPKSA9PT0gNDI7CisgICAgICAK
K30KKworaWYgKCF0ZXN0KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOwor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L3dlbGwta25vd25fc3ltYm9s
c19TeW1ib2wudG9QcmltaXRpdmUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLnRvUHJpbWl0aXZlLmpzCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtub3du
X3N5bWJvbHNfU3ltYm9sLnRvUHJpbWl0aXZlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTggQEAKK2Z1bmN0aW9uIHRlc3QoKSB7CisKK3ZhciBhID0ge30sIGIgPSB7fSwgYyA9IHt9Owor
dmFyIHBhc3NlZCA9IDA7CithW1N5bWJvbC50b1ByaW1pdGl2ZV0gPSBmdW5jdGlvbihoaW50KSB7
IHBhc3NlZCArPSBoaW50ID09PSAibnVtYmVyIjsgIHJldHVybiAwOyB9OworYltTeW1ib2wudG9Q
cmltaXRpdmVdID0gZnVuY3Rpb24oaGludCkgeyBwYXNzZWQgKz0gaGludCA9PT0gInN0cmluZyI7
ICByZXR1cm4gMDsgfTsKK2NbU3ltYm9sLnRvUHJpbWl0aXZlXSA9IGZ1bmN0aW9uKGhpbnQpIHsg
cGFzc2VkICs9IGhpbnQgPT09ICJkZWZhdWx0IjsgcmV0dXJuIDA7IH07CisKK2EgPj0gMDsKK2Ig
aW4ge307CitjID09IDA7CityZXR1cm4gcGFzc2VkID09PSAzOworICAgICAgCit9CisKK2lmICgh
dGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLnRv
U3RyaW5nVGFnLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC50b1N0cmluZ1RhZy5qcwkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5
bWJvbC50b1N0cmluZ1RhZy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5j
dGlvbiB0ZXN0KCkgeworCit2YXIgYSA9IHt9OworYVtTeW1ib2wudG9TdHJpbmdUYWddID0gImZv
byI7CityZXR1cm4gKGEgKyAiIikgPT09ICJbb2JqZWN0IGZvb10iOworICAgICAgCit9CisKK2lm
ICghdGVzdCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9s
LnRvU3RyaW5nVGFnX21pc2MuX2J1aWx0LWlucy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L3dlbGwta25vd25fc3ltYm9sc19TeW1ib2wudG9TdHJpbmdU
YWdfbWlzYy5fYnVpbHQtaW5zLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLnRvU3RyaW5nVGFnX21pc2Mu
X2J1aWx0LWlucy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExIEBACitmdW5jdGlvbiB0
ZXN0KCkgeworCit2YXIgcyA9IFN5bWJvbC50b1N0cmluZ1RhZzsKK3JldHVybiBNYXRoW3NdID09
PSAiTWF0aCIKKyAgJiYgSlNPTltzXSA9PT0gIkpTT04iOworICAgICAgCit9CisKK2lmICghdGVz
dCgpKQorICAgIHRocm93IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi93ZWxsLWtub3duX3N5bWJvbHNfU3ltYm9sLnVuc2Nv
cGFibGVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYv
d2VsbC1rbm93bl9zeW1ib2xzX1N5bWJvbC51bnNjb3BhYmxlcy5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvd2VsbC1rbm93bl9zeW1ib2xzX1N5bWJv
bC51bnNjb3BhYmxlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlv
biB0ZXN0KCkgeworCit2YXIgYSA9IHsgZm9vOiAxLCBiYXI6IDIgfTsKK2FbU3ltYm9sLnVuc2Nv
cGFibGVzXSA9IHsgYmFyOiB0cnVlIH07Cit3aXRoIChhKSB7CisgIHJldHVybiBmb28gPT09IDEg
JiYgdHlwZW9mIGJhciA9PT0gInVuZGVmaW5lZCI7Cit9CisgICAgICAKK30KKworaWYgKCF0ZXN0
KCkpCisgICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxlZCIpOworCkluZGV4OiBUb29scy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODkzMzAp
CisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAx
NS0wOS0wMyAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIEph
dmFTY3JpcHRDb3JlIHNob3VsZCBoYXZlIHNvbWUgRVM2IGNvbmZvcm1hbmNlIHRlc3RzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg3NzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvcnVu
LWphdmFzY3JpcHRjb3JlLXRlc3RzOgorICAgICAgICAocnVuSlNDU3RyZXNzVGVzdHMpOiBBZGRl
ZCBlczYgYXMgYSB0ZXN0IHN1aXRlLgorCisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVz
cy10ZXN0czogQWRkZWQgZXM2IGFzIGEgdGVzdCBzdWl0ZS4KKworICAgICAgICBTb21lIG9mIHRo
ZXNlIHRlc3RzIGN1cnJlbnRseSBmYWlsLCBzbyBJIGFsc28gYWRkZWQgYSB3YXkgdG8gZXhwZWN0
CisgICAgICAgIGZhaWx1cmUgZm9yIG5vdy4gV2UnbGwgbWlncmF0ZSBmYWlsaW5nIHRlc3RzIHRv
IGV4cGVjdGVkIHBhc3NlcyBhcyB3ZQorICAgICAgICBmaXggdGhlbS4KKwogMjAxNS0wOS0wMyAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSB0
ZXN0IGZvciBzd2lwZS1zdGFydCBoeXN0ZXJlc2lzCkluZGV4OiBUb29scy9TY3JpcHRzL3J1bi1q
YXZhc2NyaXB0Y29yZS10ZXN0cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3J1bi1qYXZh
c2NyaXB0Y29yZS10ZXN0cwkocmV2aXNpb24gMTg5MjU3KQorKysgVG9vbHMvU2NyaXB0cy9ydW4t
amF2YXNjcmlwdGNvcmUtdGVzdHMJKHdvcmtpbmcgY29weSkKQEAgLTI4Myw3ICsyODMsOCBAQCBz
dWIgcnVuSlNDU3RyZXNzVGVzdHMKICAgICAgICAgIlBlcmZvcm1hbmNlVGVzdHMvU3VuU3BpZGVy
L3Byb2ZpbGVyLXRlc3QueWFtbCIsCiAgICAgICAgICJMYXlvdXRUZXN0cy9qc2MtbGF5b3V0LXRl
c3RzLnlhbWwiLAogICAgICAgICAiU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3R5cGVQcm9m
aWxlci55YW1sIiwKLSAgICAgICAgIlNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9jb250cm9s
Rmxvd1Byb2ZpbGVyLnlhbWwiCisgICAgICAgICJTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
Y29udHJvbEZsb3dQcm9maWxlci55YW1sIiwKKyAgICAgICAgIlNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9lczYueWFtbCIsCiAgICAgKTsKICAgICBpZiAoaXNXaW5kb3dzKCkgJiYgIWlzQ3ln
d2luKCkpIHsKICAgICAgICAgc2hpZnQgQGpzY1N0cmVzc0RyaXZlckNtZDsgIyBSZW1vdmUgL3Vz
ci9iaW4vZW52CkluZGV4OiBUb29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMJKHJldmlzaW9uIDE4
OTI1NykKKysrIFRvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMJKHdvcmtpbmcgY29w
eSkKQEAgLTQxMyw2ICs0MTMsNyBAQCBkZWYgbm9pc3lPdXRwdXRIYW5kbGVyCiBlbmQKIAogIyBF
cnJvciBoYW5kbGVyIGZvciB0ZXN0cyB0aGF0IGZhaWwgZXhhY3RseSB3aGVuIHRoZXkgcmV0dXJu
IG5vbi16ZXJvIGV4aXQgc3RhdHVzLgorIyBUaGlzIGlzIHVzZWZ1bCB3aGVuIGEgdGVzdCBpcyBl
eHBlY3RlZCB0byBmYWlsLgogZGVmIHNpbXBsZUVycm9ySGFuZGxlcgogICAgIFByb2MubmV3IHsK
ICAgICAgICAgfCBvdXRwLCBwbGFuIHwKQEAgLTQyNiw2ICs0MjcsMjAgQEAgZGVmIHNpbXBsZUVy
cm9ySGFuZGxlcgogICAgIH0KIGVuZAogCisjIEVycm9yIGhhbmRsZXIgZm9yIHRlc3RzIHRoYXQg
ZmFpbCBleGFjdGx5IHdoZW4gdGhleSByZXR1cm4gemVybyBleGl0IHN0YXR1cy4KK2RlZiBleHBl
Y3RlZEZhaWxFcnJvckhhbmRsZXIKKyAgICBQcm9jLm5ldyB7CisgICAgICAgIHwgb3V0cCwgcGxh
biB8CisgICAgICAgIG91dHAucHV0cyAiaWYgdGVzdCAtZSAje3BsYW4uZmFpbEZpbGV9IgorICAg
ICAgICBvdXRwLnB1dHMgInRoZW4iCisgICAgICAgIG91dHAucHV0cyAiICAgICIgKyBwbGFuLnN1
Y2Nlc3NDb21tYW5kCisgICAgICAgIG91dHAucHV0cyAiZWxzZSIKKyAgICAgICAgb3V0cC5wdXRz
ICIgICAgKGVjaG8gRVJST1I6IFVuZXhwZWN0ZWQgZXhpdCBjb2RlOiBgY2F0ICN7cGxhbi5mYWls
RmlsZX1gKSB8ICIgKyByZWRpcmVjdEFuZFByZWZpeENvbW1hbmQocGxhbi5uYW1lKQorICAgICAg
ICBvdXRwLnB1dHMgIiAgICAiICsgcGxhbi5mYWlsQ29tbWFuZAorICAgICAgICBvdXRwLnB1dHMg
ImZpIgorICAgIH0KK2VuZAorCiAjIEVycm9yIGhhbmRsZXIgZm9yIHRlc3RzIHRoYXQgZmFpbCBl
eGFjdGx5IHdoZW4gdGhleSByZXR1cm4gbm9uLXplcm8gZXhpdCBzdGF0dXMgYW5kIHByb2R1Y2UK
ICMgbG90cyBvZiBzcGV3LiBUaGlzIHdpbGwgZWNobyB0aGF0IHNwZXcgd2hlbiB0aGUgdGVzdCBm
YWlscy4KIGRlZiBub2lzeUVycm9ySGFuZGxlcgpAQCAtODcxLDYgKzg4NiwxOSBAQCBkZWYgcnVu
Q29udHJvbEZsb3dQcm9maWxlcgogICAgIGVuZAogZW5kCiAKK2RlZiBydW5FUzYobW9kZSkKKyAg
ICBhcmdzID0gW3BhdGhUb1ZNLnRvX3NdICsgQkFTRV9PUFRJT05TICsgWyRiZW5jaG1hcmsudG9f
c10KKyAgICBjYXNlIG1vZGUKKyAgICB3aGVuIDpub3JtYWwKKyAgICAgICAgZXJyb3JIYW5kbGVy
ID0gc2ltcGxlRXJyb3JIYW5kbGVyCisgICAgd2hlbiA6ZmFpbAorICAgICAgICBlcnJvckhhbmRs
ZXIgPSBleHBlY3RlZEZhaWxFcnJvckhhbmRsZXIKKyAgICBlbHNlCisgICAgICAgIHJhaXNlICJJ
bnZhbGlkIG1vZGU6ICN7bW9kZX0iCisgICAgZW5kCisgICAgYWRkUnVuQ29tbWFuZCgiZGVmYXVs
dCIsIGFyZ3MsIG5vaXN5T3V0cHV0SGFuZGxlciwgZXJyb3JIYW5kbGVyKQorZW5kCisKIGRlZiBy
dW5MYXlvdXRUZXN0KGtpbmQsICpvcHRpb25zKQogICAgIHJhaXNlIHVubGVzcyAkYmVuY2htYXJr
LnRvX3MgPX4gL1wuanMkLwogICAgIHRlc3ROYW1lID0gJH4ucHJlX21hdGNoCg==
</data>
<flag name="review"
          id="285734"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>