<?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>110634</bug_id>
          
          <creation_ts>2013-02-22 13:02:30 -0800</creation_ts>
          <short_desc>Uint8ClampedArray constructor is wrong in WorkerContext.idl</short_desc>
          <delta_ts>2013-02-22 14:12:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>abarth</cc>
    
    <cc>dimich</cc>
    
    <cc>dino</cc>
    
    <cc>gman</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>839842</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-22 13:02:30 -0800</bug_when>
    <thetext>Uint8ClampedArray is incorrectly defined as Uint8ArrayConstructor in WorkerContext.idl. It should be Uint8ClampedArrayConstructor. This causes incorrect behavior when Uint8ClampedArray is used in a worker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839855</commentid>
    <comment_count>1</comment_count>
      <attachid>189812</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-22 13:14:39 -0800</bug_when>
    <thetext>Created attachment 189812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839901</commentid>
    <comment_count>2</comment_count>
      <attachid>189812</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-22 13:51:14 -0800</bug_when>
    <thetext>Comment on attachment 189812
Patch

wow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839922</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-22 14:03:13 -0800</bug_when>
    <thetext>Yeah, the test is 100x larger than the fix :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839928</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-22 14:04:21 -0800</bug_when>
    <thetext>Oh, I meant &quot;wow&quot; in the sense that this is a bad bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839937</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-22 14:09:14 -0800</bug_when>
    <thetext>Ah yes, that too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839947</commentid>
    <comment_count>6</comment_count>
      <attachid>189812</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 14:12:16 -0800</bug_when>
    <thetext>Comment on attachment 189812
Patch

Clearing flags on attachment: 189812

Committed r143792: &lt;http://trac.webkit.org/changeset/143792&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839948</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 14:12:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189812</attachid>
            <date>2013-02-22 13:14:39 -0800</date>
            <delta_ts>2013-02-22 14:12:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110634-20130222131058.patch</filename>
            <type>text/plain</type>
            <size>65174</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI5ODRhMzJhOWNlNDk1
ZDM2MGIxY2Y4OWJhZWVkZGJmYjdiYjkzMy4uNjQwNTg3MGI0NmM4ZDhjN2JmNzg2YWMzNTdjY2Q5
YTYxYjIyZDQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAyLTIyICBLZW5u
ZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBVaW50OENsYW1wZWRBcnJh
eSBjb25zdHJ1Y3RvciBpcyB3cm9uZyBpbiBXb3JrZXJDb250ZXh0LmlkbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNjM0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY2FudmFzL3dl
YmdsL3R5cGVkLWFycmF5cy1pbi13b3JrZXJzLmh0bWwKKyAgICAgICAgICAgICAgIHdlYmdsL2Nv
bmZvcm1hbmNlL3R5cGVkYXJyYXlzL3R5cGVkLWFycmF5cy1pbi13b3JrZXJzLmh0bWwKKworICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5pZGw6CisKIDIwMTMtMDItMjIgIENocmlzIFJv
Z2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBBdWRpb0Rlc3RpbmF0aW9uOjpj
cmVhdGUoKSBuZWVkcyBleHRyYSBkZXZpY2UgaWRlbnRpZmljYXRpb24gaW5mb3JtYXRpb24gZm9y
IGxpdmUvbG9jYWwgaW5wdXQgc3RyZWFtcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJDb250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29u
dGV4dC5pZGwKaW5kZXggNDAyZTBiN2M2ZmFlNzEzNWZhM2Q0NThjYjNiNzgyMzk5NzJlNTc5ZS4u
M2Y4NjI1ZTRkNThlMjkyYWM5ZmI4MDNlZDU1YWY3OTg1ZWZhZDNjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaWRsCkBAIC05Myw3ICs5Myw3IEBACiAgICAgYXR0cmli
dXRlIEFycmF5QnVmZmVyQ29uc3RydWN0b3IgQXJyYXlCdWZmZXI7IC8vIFVzYWJsZSB3aXRoIG5l
dyBvcGVyYXRvcgogICAgIGF0dHJpYnV0ZSBJbnQ4QXJyYXlDb25zdHJ1Y3RvciBJbnQ4QXJyYXk7
IC8vIFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRvcgogICAgIGF0dHJpYnV0ZSBVaW50OEFycmF5Q29u
c3RydWN0b3IgVWludDhBcnJheTsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9yCi0gICAgYXR0
cmlidXRlIFVpbnQ4QXJyYXlDb25zdHJ1Y3RvciBVaW50OENsYW1wZWRBcnJheTsgLy8gVXNhYmxl
IHdpdGggbmV3IG9wZXJhdG9yCisgICAgYXR0cmlidXRlIFVpbnQ4Q2xhbXBlZEFycmF5Q29uc3Ry
dWN0b3IgVWludDhDbGFtcGVkQXJyYXk7IC8vIFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRvcgogICAg
IGF0dHJpYnV0ZSBJbnQxNkFycmF5Q29uc3RydWN0b3IgSW50MTZBcnJheTsgLy8gVXNhYmxlIHdp
dGggbmV3IG9wZXJhdG9yCiAgICAgYXR0cmlidXRlIFVpbnQxNkFycmF5Q29uc3RydWN0b3IgVWlu
dDE2QXJyYXk7IC8vIFVzYWJsZSB3aXRoIG5ldyBvcGVyYXRvcgogICAgIGF0dHJpYnV0ZSBJbnQz
MkFycmF5Q29uc3RydWN0b3IgSW50MzJBcnJheTsgLy8gVXNhYmxlIHdpdGggbmV3IG9wZXJhdG9y
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggYzA3ZDAwZDllYmY4MzNkYTkxMWIwZWJmMjI3YWUxZTUyODNjN2NlZi4uNjcyZjdj
NTA3ODA2M2YzOWVjODBkNGNhY2Y5ZjA4MDczZjk4MGVjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBA
CisyMDEzLTAyLTIyICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBVaW50OENsYW1wZWRBcnJheSBjb25zdHJ1Y3RvciBpcyB3cm9uZyBpbiBXb3JrZXJDb250ZXh0
LmlkbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEw
NjM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgY29weSBvZiBuZXcgV2ViR0wgY29uZm9ybWFuY2UgdGVzdCBib3RoIGluIG9sZCBsb2NhdGlv
bgorICAgICAgICAoZmFzdC9jYW52YXMvd2ViZ2wpIGFuZCBuZXcgbG9jYXRpb24gKHdlYmdsIC0t
IG5vdCB5ZXQgYmVpbmcgcnVuCisgICAgICAgIG9uIGFueSBwb3J0cykgdG8gYXZvaWQgbG9zaW5n
IHRlc3QgY292ZXJhZ2UgYWZ0ZXIgY3V0b3Zlci4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dl
YmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9y
ZXNvdXJjZXMvdHlwZWQtYXJyYXktdGVzdC1jYXNlcy5qczogQWRkZWQuCisgICAgICAgICogZmFz
dC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3R5cGVkLWFycmF5LXdvcmtlci5qczogQWRkZWQuCisg
ICAgICAgIChjb25zdHJ1Y3RUeXBlZEFycmF5KToKKyAgICAgICAgKGNvbnN0cnVjdERhdGFWaWV3
KToKKyAgICAgICAgKG9ubWVzc2FnZSk6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvdHlw
ZWQtYXJyYXlzLWluLXdvcmtlcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2NhbnZhcy93ZWJnbC90eXBlZC1hcnJheXMtaW4td29ya2Vycy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJnbC9jb25mb3JtYW5jZS90eXBlZGFycmF5cy90eXBlZC1hcnJheXMtaW4td29ya2Vy
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL3R5cGVk
YXJyYXlzL3R5cGVkLWFycmF5cy1pbi13b3JrZXJzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3R5cGVkYXJyYXlzLzAw
X3Rlc3RfbGlzdC50eHQ6CisgICAgICAgICogd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvdHlwZWRhcnJheXMvYXJyYXktdW5pdC10ZXN0cy5odG1sOgorICAgICAg
ICAqIHdlYmdsL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3R5cGVkYXJy
YXlzL3Jlc291cmNlcy90eXBlZC1hcnJheS10ZXN0LWNhc2VzLmpzOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90eXBlZGFycmF5
cy9yZXNvdXJjZXMvdHlwZWQtYXJyYXktd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGNvbnN0
cnVjdFR5cGVkQXJyYXkpOgorICAgICAgICAoY29uc3RydWN0RGF0YVZpZXcpOgorICAgICAgICAo
b25tZXNzYWdlKToKKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9j
b25mb3JtYW5jZS90eXBlZGFycmF5cy90eXBlZC1hcnJheXMtaW4td29ya2Vycy5odG1sOiBBZGRl
ZC4KKwogMjAxMy0wMi0yMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktdW5pdC10ZXN0cy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXktdW5pdC10ZXN0cy5odG1sCmluZGV4IGU5YjMwMTc4MGIw
NGZiNTQyNjM2ZWVkNGM3MDExOTAzMTdkYTA3NDcuLjM3ZGQ0MTJhZDliYzcyNDQwYzJlMTg5ZTVj
MzkxMWRkZWI5YzAwNjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2FycmF5LXVuaXQtdGVzdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9hcnJheS11bml0LXRlc3RzLmh0bWwKQEAgLTEsMTQgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+CiA8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3R5cGVkLWFycmF5LXRlc3QtY2FzZXMuanMiPjwvc2NyaXB0PgogPC9oZWFk
PgogPGJvZHk+CiA8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+CiA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KIAogPHNjcmlwdD4KLQogZGVzY3JpcHRpb24oIlZlcmlmaWVzIHRoZSBmdW5jdGlv
bmFsaXR5IG9mIHRoZSBuZXcgYXJyYXktbGlrZSBvYmplY3RzIGluIHRoZSBUeXBlZEFycmF5IHNw
ZWMiKTsKIAogdmFyIGN1cnJlbnRseVJ1bm5pbmcgPSAnJzsKQEAgLTU3LDEzICs2MCwxNSBAQCBm
dW5jdGlvbiBwcmludFN1bW1hcnkoKSB7CiAgIH0KIH0KIAordmFyIGJ1ZmZlcjsKIHZhciBieXRl
TGVuZ3RoOwogdmFyIHN1YkJ1ZmZlcjsKK3ZhciBzdWJBcnJheTsKIGZ1bmN0aW9uIHRlc3RTbGlj
ZSgpIHsKICAgZnVuY3Rpb24gdGVzdChzdWJCdWYsIHN0YXJ0cywgc2l6ZSkgewogICAgIGJ5dGVM
ZW5ndGggPSBzaXplOwogICAgIHN1YkJ1ZmZlciA9IGV2YWwoc3ViQnVmKTsKLSAgICB2YXIgc3Vi
QXJyYXkgPSBuZXcgSW50OEFycmF5KHN1YkJ1ZmZlcik7CisgICAgc3ViQXJyYXkgPSBuZXcgSW50
OEFycmF5KHN1YkJ1ZmZlcik7CiAgICAgYXNzZXJ0RXEoc3ViQnVmLCBzdWJCdWZmZXIuYnl0ZUxl
bmd0aCwgYnl0ZUxlbmd0aCk7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyArK2kpCiAg
ICAgICBhc3NlcnRFcSgnRWxlbWVudCAnICsgaSwgc3RhcnRzICsgaSwgc3ViQXJyYXlbaV0pOwpA
QCAtNzEsNyArNzYsNyBAQCBmdW5jdGlvbiB0ZXN0U2xpY2UoKSB7CiAKICAgdHJ5IHsKICAgICBy
dW5uaW5nKCd0ZXN0U2xpY2UnKTsKLSAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDMy
KTsKKyAgICBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoMzIpOwogICAgIHZhciBhcnJheSA9IG5l
dyBJbnQ4QXJyYXkoYnVmZmVyKTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDMyOyArK2kpCiAg
ICAgICBhcnJheVtpXSA9IGk7CkBAIC0xMDksNiArMTE0LDMzIEBAIGZ1bmN0aW9uIHRlc3RTbGlj
ZSgpIHsKICAgfQogfQogCitmdW5jdGlvbiB0ZXN0SW5oZXJpdGFuY2VIaWVyYXJjaHkoKSB7Cisg
IGRlYnVnKCd0ZXN0IGluaGVyaXRhbmNlIGhpZXJhcmNoeSBvZiB0eXBlZCBhcnJheSB2aWV3cycp
OworCisgIHRyeSB7CisgICAgdmFyIGZvbyA9IEFycmF5QnVmZmVyVmlldzsKKyAgICB0ZXN0UGFz
c2VkKCdBcnJheUJ1ZmZlclZpZXcgZG9lcyBub3QgaGF2ZSBbTm9JbnRlcmZhY2VPYmplY3RdIGV4
dGVuZGVkIGF0dHJpYnV0ZSBhbmQgc2hvdWxkIGJlIGRlZmluZWQnKTsKKworICAgIHNob3VsZEJl
KCduZXcgSW50OEFycmF5KDEpIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJWaWV3JywgJ3RydWUnKTsK
KyAgICBzaG91bGRCZSgnbmV3IFVpbnQ4QXJyYXkoMSkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlclZp
ZXcnLCAndHJ1ZScpOworICAgIHNob3VsZEJlKCduZXcgVWludDhDbGFtcGVkQXJyYXkoMSkgaW5z
dGFuY2VvZiBBcnJheUJ1ZmZlclZpZXcnLCAndHJ1ZScpOworICAgIHNob3VsZEJlKCduZXcgSW50
MTZBcnJheSgxKSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyVmlldycsICd0cnVlJyk7CisgICAgc2hv
dWxkQmUoJ25ldyBVaW50MTZBcnJheSgxKSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyVmlldycsICd0
cnVlJyk7CisgICAgc2hvdWxkQmUoJ25ldyBJbnQzMkFycmF5KDEpIGluc3RhbmNlb2YgQXJyYXlC
dWZmZXJWaWV3JywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnbmV3IFVpbnQzMkFycmF5KDEpIGlu
c3RhbmNlb2YgQXJyYXlCdWZmZXJWaWV3JywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnbmV3IEZs
b2F0MzJBcnJheSgxKSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyVmlldycsICd0cnVlJyk7CisgICAg
c2hvdWxkQmUoJ25ldyBGbG9hdDY0QXJyYXkoMSkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlclZpZXcn
LCAndHJ1ZScpOworICAgIHNob3VsZEJlKCduZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDgp
KSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyVmlldycsICd0cnVlJyk7CisKKyAgICBzaG91bGRUaHJv
d1R5cGVFcnJvcihmdW5jdGlvbigpIHsgbmV3IEFycmF5QnVmZmVyVmlldygpIH0sICJuZXcgQXJy
YXlCdWZmZXJWaWV3KCkiKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWlsZWQoJ0FycmF5
QnVmZmVyVmlldyBkb2VzIG5vdCBoYXZlIFtOb0ludGVyZmFjZU9iamVjdF0gZXh0ZW5kZWQgYXR0
cmlidXRlIGJ1dCB3YXMgbm90IGRlZmluZWQnKTsKKyAgfQorCisgIC8vIFRoZXJlIGlzIGN1cnJl
bnRseSBvbmx5IG9uZSBraW5kIG9mIHZpZXcgdGhhdCBpbmhlcml0cyBmcm9tIGFub3RoZXIKKyAg
c2hvdWxkQmUoJ25ldyBVaW50OENsYW1wZWRBcnJheSgxKSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkn
LCAndHJ1ZScpOworfQorCiAvLwogLy8gVGVzdHMgZm9yIHVuc2lnbmVkIGFycmF5IHZhcmlhbnRz
CiAvLwpAQCAtNDM2LDYgKzQ2OCw3IEBAIGZ1bmN0aW9uIG5lZ2F0aXZlVGVzdFNldEZyb21BcnJh
eSh0eXBlLCBuYW1lKSB7CiAgIH0KIH0KIAordmFyIHN1YmFycmF5OwogZnVuY3Rpb24gdGVzdFN1
YmFycmF5KHR5cGUsIG5hbWUpIHsKICAgcnVubmluZygndGVzdCAnICsgbmFtZSArICcgU3ViYXJy
YXknKTsKICAgdHJ5IHsKQEAgLTkyOSwzNCArOTYyLDYgQEAgZnVuY3Rpb24gdGVzdE5hTkNvbnZl
cnNpb24odHlwZSwgbmFtZSkgewogICB9CiB9CiAKLWZ1bmN0aW9uIHRlc3RJbmhlcml0YW5jZUhp
ZXJhcmNoeSgpIHsKLSAgZGVidWcoJ3Rlc3QgaW5oZXJpdGFuY2UgaGllcmFyY2h5IG9mIHR5cGVk
IGFycmF5IHZpZXdzJyk7Ci0KLSAgdHJ5IHsKLSAgICB2YXIgZm9vID0gQXJyYXlCdWZmZXJWaWV3
OwotICAgIHRlc3RQYXNzZWQoJ0FycmF5QnVmZmVyVmlldyBkb2VzIG5vdCBoYXZlIFtOb0ludGVy
ZmFjZU9iamVjdF0gZXh0ZW5kZWQgYXR0cmlidXRlIGFuZCBzaG91bGQgYmUgZGVmaW5lZCcpOwot
Ci0gICAgc2hvdWxkQmUoJ25ldyBJbnQ4QXJyYXkoMSkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlclZp
ZXcnLCAndHJ1ZScpOwotICAgIHNob3VsZEJlKCduZXcgVWludDhBcnJheSgxKSBpbnN0YW5jZW9m
IEFycmF5QnVmZmVyVmlldycsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ25ldyBVaW50OENsYW1w
ZWRBcnJheSgxKSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyVmlldycsICd0cnVlJyk7Ci0gICAgc2hv
dWxkQmUoJ25ldyBJbnQxNkFycmF5KDEpIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJWaWV3JywgJ3Ry
dWUnKTsKLSAgICBzaG91bGRCZSgnbmV3IFVpbnQxNkFycmF5KDEpIGluc3RhbmNlb2YgQXJyYXlC
dWZmZXJWaWV3JywgJ3RydWUnKTsKLSAgICBzaG91bGRCZSgnbmV3IEludDMyQXJyYXkoMSkgaW5z
dGFuY2VvZiBBcnJheUJ1ZmZlclZpZXcnLCAndHJ1ZScpOwotICAgIHNob3VsZEJlKCduZXcgVWlu
dDMyQXJyYXkoMSkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlclZpZXcnLCAndHJ1ZScpOwotICAgIHNo
b3VsZEJlKCduZXcgRmxvYXQzMkFycmF5KDEpIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJWaWV3Jywg
J3RydWUnKTsKLSAgICBzaG91bGRCZSgnbmV3IEZsb2F0NjRBcnJheSgxKSBpbnN0YW5jZW9mIEFy
cmF5QnVmZmVyVmlldycsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ25ldyBEYXRhVmlldyhuZXcg
QXJyYXlCdWZmZXIoOCkpIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJWaWV3JywgJ3RydWUnKTsKLQot
ICAgIHNob3VsZFRocm93VHlwZUVycm9yKGZ1bmN0aW9uKCkgeyBuZXcgQXJyYXlCdWZmZXJWaWV3
KCkgfSwgIm5ldyBBcnJheUJ1ZmZlclZpZXcoKSIpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgdGVz
dEZhaWxlZCgnQXJyYXlCdWZmZXJWaWV3IGRvZXMgbm90IGhhdmUgW05vSW50ZXJmYWNlT2JqZWN0
XSBleHRlbmRlZCBhdHRyaWJ1dGUgYnV0IHdhcyBub3QgZGVmaW5lZCcpOwotICB9Ci0KLSAgLy8g
VGhlcmUgaXMgY3VycmVudGx5IG9ubHkgb25lIGtpbmQgb2YgdmlldyB0aGF0IGluaGVyaXRzIGZy
b20gYW5vdGhlcgotICBzaG91bGRCZSgnbmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDEpIGluc3RhbmNl
b2YgVWludDhBcnJheScsICd0cnVlJyk7Ci19Ci0KLQogLy8KIC8vIFRlc3QgZHJpdmVyCiAvLwpA
QCAtOTY3LDczICs5NzIsNiBAQCBmdW5jdGlvbiBydW5UZXN0cygpIHsKICAgdGVzdFNsaWNlKCk7
CiAgIHRlc3RJbmhlcml0YW5jZUhpZXJhcmNoeSgpOwogCi0gIC8vIFRoZSAibmFtZSIgYXR0cmli
dXRlIGlzIGEgY29uY2Vzc2lvbiB0byBicm93c2VycyB3aGljaCBkb24ndAotICAvLyBpbXBsZW1l
bnQgdGhlICJuYW1lIiBwcm9wZXJ0eSBvbiBmdW5jdGlvbiBvYmplY3RzCi0gIHZhciB0ZXN0Q2Fz
ZXMgPQotICAgIFsge25hbWU6ICJGbG9hdDMyQXJyYXkiLAotICAgICAgIHVuc2lnbmVkOiBmYWxz
ZSwKLSAgICAgICBpbnRlZ3JhbDogZmFsc2UsCi0gICAgICAgZWxlbWVudFNpemVJbkJ5dGVzOiA0
LAotICAgICAgIHRlc3RWYWx1ZXM6ICAgICBbIC01MDAuNSwgNTAwLjUgXSwKLSAgICAgICBleHBl
Y3RlZFZhbHVlczogWyAtNTAwLjUsIDUwMC41IF0KLSAgICAgIH0sCi0gICAgICB7bmFtZTogIkZs
b2F0NjRBcnJheSIsCi0gICAgICAgdW5zaWduZWQ6IGZhbHNlLAotICAgICAgIGludGVncmFsOiBm
YWxzZSwKLSAgICAgICBlbGVtZW50U2l6ZUluQnl0ZXM6IDgsCi0gICAgICAgdGVzdFZhbHVlczog
ICAgIFsgLTUwMC41LCA1MDAuNSBdLAotICAgICAgIGV4cGVjdGVkVmFsdWVzOiBbIC01MDAuNSwg
NTAwLjUgXQotICAgICAgfSwKLSAgICAgIHtuYW1lOiAiSW50OEFycmF5IiwKLSAgICAgICB1bnNp
Z25lZDogZmFsc2UsCi0gICAgICAgaW50ZWdyYWw6IHRydWUsCi0gICAgICAgZWxlbWVudFNpemVJ
bkJ5dGVzOiAxLAotICAgICAgIHRlc3RWYWx1ZXM6ICAgICBbIC0xMjgsIDEyNywgLTEyOSwgIDEy
OCBdLAotICAgICAgIGV4cGVjdGVkVmFsdWVzOiBbIC0xMjgsIDEyNywgIDEyNywgLTEyOCBdCi0g
ICAgICB9LAotICAgICAge25hbWU6ICJJbnQxNkFycmF5IiwKLSAgICAgICB1bnNpZ25lZDogZmFs
c2UsCi0gICAgICAgaW50ZWdyYWw6IHRydWUsCi0gICAgICAgZWxlbWVudFNpemVJbkJ5dGVzOiAy
LAotICAgICAgIHRlc3RWYWx1ZXM6ICAgICBbIC0zMjc2OCwgMzI3NjcsIC0zMjc2OSwgIDMyNzY4
IF0sCi0gICAgICAgZXhwZWN0ZWRWYWx1ZXM6IFsgLTMyNzY4LCAzMjc2NywgIDMyNzY3LCAtMzI3
NjggXQotICAgICAgfSwKLSAgICAgIHtuYW1lOiAiSW50MzJBcnJheSIsCi0gICAgICAgdW5zaWdu
ZWQ6IGZhbHNlLAotICAgICAgIGludGVncmFsOiB0cnVlLAotICAgICAgIGVsZW1lbnRTaXplSW5C
eXRlczogNCwKLSAgICAgICB0ZXN0VmFsdWVzOiAgICAgWyAtMjE0NzQ4MzY0OCwgMjE0NzQ4MzY0
NywgLTIxNDc0ODM2NDksICAyMTQ3NDgzNjQ4IF0sCi0gICAgICAgZXhwZWN0ZWRWYWx1ZXM6IFsg
LTIxNDc0ODM2NDgsIDIxNDc0ODM2NDcsICAyMTQ3NDgzNjQ3LCAtMjE0NzQ4MzY0OCBdCi0gICAg
ICB9LAotICAgICAge25hbWU6ICJVaW50OEFycmF5IiwKLSAgICAgICB1bnNpZ25lZDogdHJ1ZSwK
LSAgICAgICBpbnRlZ3JhbDogdHJ1ZSwKLSAgICAgICBlbGVtZW50U2l6ZUluQnl0ZXM6IDEsCi0g
ICAgICAgdGVzdFZhbHVlczogICAgIFsgMCwgMjU1LCAgLTEsIDI1NiBdLAotICAgICAgIGV4cGVj
dGVkVmFsdWVzOiBbIDAsIDI1NSwgMjU1LCAgIDAgXQotICAgICAgfSwKLSAgICAgIHtuYW1lOiAi
VWludDhDbGFtcGVkQXJyYXkiLAotICAgICAgIHVuc2lnbmVkOiB0cnVlLAotICAgICAgIGludGVn
cmFsOiB0cnVlLAotICAgICAgIGVsZW1lbnRTaXplSW5CeXRlczogMSwKLSAgICAgICB0ZXN0VmFs
dWVzOiAgICAgWyAwLCAyNTUsICAtMSwgMjU2IF0sCi0gICAgICAgZXhwZWN0ZWRWYWx1ZXM6IFsg
MCwgMjU1LCAgIDAsIDI1NSBdCi0gICAgICB9LAotICAgICAge25hbWU6ICJVaW50MTZBcnJheSIs
Ci0gICAgICAgdW5zaWduZWQ6IHRydWUsCi0gICAgICAgaW50ZWdyYWw6IHRydWUsCi0gICAgICAg
ZWxlbWVudFNpemVJbkJ5dGVzOiAyLAotICAgICAgIHRlc3RWYWx1ZXM6ICAgICBbIDAsIDY1NTM1
LCAgICAtMSwgNjU1MzYgXSwKLSAgICAgICBleHBlY3RlZFZhbHVlczogWyAwLCA2NTUzNSwgNjU1
MzUsICAgICAwIF0KLSAgICAgIH0sCi0gICAgICB7bmFtZTogIlVpbnQzMkFycmF5IiwKLSAgICAg
ICB1bnNpZ25lZDogdHJ1ZSwKLSAgICAgICBpbnRlZ3JhbDogdHJ1ZSwKLSAgICAgICBlbGVtZW50
U2l6ZUluQnl0ZXM6IDQsCi0gICAgICAgdGVzdFZhbHVlczogICAgIFsgMCwgNDI5NDk2NzI5NSwg
ICAgICAgICAtMSwgNDI5NDk2NzI5NiBdLAotICAgICAgIGV4cGVjdGVkVmFsdWVzOiBbIDAsIDQy
OTQ5NjcyOTUsIDQyOTQ5NjcyOTUsICAgICAgICAgIDAgXQotICAgICAgfQotICAgIF07CiAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdGVzdENhc2VzLmxlbmd0aDsgaSsrKSB7CiAgICAgdmFyIHRlc3RD
YXNlID0gdGVzdENhc2VzW2ldOwogICAgIHJ1bm5pbmcodGVzdENhc2UubmFtZSk7CkBAIC0xMTAy
LDYgKzEwNDAsNyBAQCBmdW5jdGlvbiBydW5UZXN0cygpIHsKIH0KIAogcnVuVGVzdHMoKTsKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogCiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Jlc291cmNlcy90eXBlZC1hcnJheS10ZXN0
LWNhc2VzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3R5cGVk
LWFycmF5LXRlc3QtY2FzZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDYyZWFhZTFiZGVhOTFjNmU5NTdiNzgw
NDY4MzBkYTc1NDIxYWE2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL3Jlc291cmNlcy90eXBlZC1hcnJheS10ZXN0LWNhc2VzLmpzCkBAIC0wLDAgKzEs
OTAgQEAKKy8qCisqKiBDb3B5cmlnaHQgKGMpIDIwMTMgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgor
KioKKyoqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh
bnkgcGVyc29uIG9idGFpbmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFz
c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRl
YWwgaW4gdGhlIE1hdGVyaWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdp
dGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg
cHVibGlzaCwKKyoqIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBv
ZiB0aGUgTWF0ZXJpYWxzLCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1h
dGVyaWFscyBhcmUgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnM6CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo
aXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMg
b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFU
RVJJQUxTIEFSRSBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E
LAorKiogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI
RSBXQVJSQU5USUVTIE9GCisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xB
SU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD
T05UUkFDVCwKKyoqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJ
TiBDT05ORUNUSU9OIFdJVEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBE
RUFMSU5HUyBJTiBUSEUgTUFURVJJQUxTLgorKi8KKworLy8gVGhlICJuYW1lIiBhdHRyaWJ1dGUg
aXMgYSBjb25jZXNzaW9uIHRvIGJyb3dzZXJzIHdoaWNoIGRvbid0CisvLyBpbXBsZW1lbnQgdGhl
ICJuYW1lIiBwcm9wZXJ0eSBvbiBmdW5jdGlvbiBvYmplY3RzLgordmFyIHRlc3RDYXNlcyA9Cisg
IFsge25hbWU6ICJGbG9hdDMyQXJyYXkiLAorICAgICB1bnNpZ25lZDogZmFsc2UsCisgICAgIGlu
dGVncmFsOiBmYWxzZSwKKyAgICAgZWxlbWVudFNpemVJbkJ5dGVzOiA0LAorICAgICB0ZXN0VmFs
dWVzOiAgICAgWyAtNTAwLjUsIDUwMC41IF0sCisgICAgIGV4cGVjdGVkVmFsdWVzOiBbIC01MDAu
NSwgNTAwLjUgXQorICAgIH0sCisgICAge25hbWU6ICJGbG9hdDY0QXJyYXkiLAorICAgICB1bnNp
Z25lZDogZmFsc2UsCisgICAgIGludGVncmFsOiBmYWxzZSwKKyAgICAgZWxlbWVudFNpemVJbkJ5
dGVzOiA4LAorICAgICB0ZXN0VmFsdWVzOiAgICAgWyAtNTAwLjUsIDUwMC41IF0sCisgICAgIGV4
cGVjdGVkVmFsdWVzOiBbIC01MDAuNSwgNTAwLjUgXQorICAgIH0sCisgICAge25hbWU6ICJJbnQ4
QXJyYXkiLAorICAgICB1bnNpZ25lZDogZmFsc2UsCisgICAgIGludGVncmFsOiB0cnVlLAorICAg
ICBlbGVtZW50U2l6ZUluQnl0ZXM6IDEsCisgICAgIHRlc3RWYWx1ZXM6ICAgICBbIC0xMjgsIDEy
NywgLTEyOSwgIDEyOCBdLAorICAgICBleHBlY3RlZFZhbHVlczogWyAtMTI4LCAxMjcsICAxMjcs
IC0xMjggXQorICAgIH0sCisgICAge25hbWU6ICJJbnQxNkFycmF5IiwKKyAgICAgdW5zaWduZWQ6
IGZhbHNlLAorICAgICBpbnRlZ3JhbDogdHJ1ZSwKKyAgICAgZWxlbWVudFNpemVJbkJ5dGVzOiAy
LAorICAgICB0ZXN0VmFsdWVzOiAgICAgWyAtMzI3NjgsIDMyNzY3LCAtMzI3NjksICAzMjc2OCBd
LAorICAgICBleHBlY3RlZFZhbHVlczogWyAtMzI3NjgsIDMyNzY3LCAgMzI3NjcsIC0zMjc2OCBd
CisgICAgfSwKKyAgICB7bmFtZTogIkludDMyQXJyYXkiLAorICAgICB1bnNpZ25lZDogZmFsc2Us
CisgICAgIGludGVncmFsOiB0cnVlLAorICAgICBlbGVtZW50U2l6ZUluQnl0ZXM6IDQsCisgICAg
IHRlc3RWYWx1ZXM6ICAgICBbIC0yMTQ3NDgzNjQ4LCAyMTQ3NDgzNjQ3LCAtMjE0NzQ4MzY0OSwg
IDIxNDc0ODM2NDggXSwKKyAgICAgZXhwZWN0ZWRWYWx1ZXM6IFsgLTIxNDc0ODM2NDgsIDIxNDc0
ODM2NDcsICAyMTQ3NDgzNjQ3LCAtMjE0NzQ4MzY0OCBdCisgICAgfSwKKyAgICB7bmFtZTogIlVp
bnQ4QXJyYXkiLAorICAgICB1bnNpZ25lZDogdHJ1ZSwKKyAgICAgaW50ZWdyYWw6IHRydWUsCisg
ICAgIGVsZW1lbnRTaXplSW5CeXRlczogMSwKKyAgICAgdGVzdFZhbHVlczogICAgIFsgMCwgMjU1
LCAgLTEsIDI1NiBdLAorICAgICBleHBlY3RlZFZhbHVlczogWyAwLCAyNTUsIDI1NSwgICAwIF0K
KyAgICB9LAorICAgIHtuYW1lOiAiVWludDhDbGFtcGVkQXJyYXkiLAorICAgICB1bnNpZ25lZDog
dHJ1ZSwKKyAgICAgaW50ZWdyYWw6IHRydWUsCisgICAgIGVsZW1lbnRTaXplSW5CeXRlczogMSwK
KyAgICAgdGVzdFZhbHVlczogICAgIFsgMCwgMjU1LCAgLTEsIDI1NiBdLAorICAgICBleHBlY3Rl
ZFZhbHVlczogWyAwLCAyNTUsICAgMCwgMjU1IF0KKyAgICB9LAorICAgIHtuYW1lOiAiVWludDE2
QXJyYXkiLAorICAgICB1bnNpZ25lZDogdHJ1ZSwKKyAgICAgaW50ZWdyYWw6IHRydWUsCisgICAg
IGVsZW1lbnRTaXplSW5CeXRlczogMiwKKyAgICAgdGVzdFZhbHVlczogICAgIFsgMCwgNjU1MzUs
ICAgIC0xLCA2NTUzNiBdLAorICAgICBleHBlY3RlZFZhbHVlczogWyAwLCA2NTUzNSwgNjU1MzUs
ICAgICAwIF0KKyAgICB9LAorICAgIHtuYW1lOiAiVWludDMyQXJyYXkiLAorICAgICB1bnNpZ25l
ZDogdHJ1ZSwKKyAgICAgaW50ZWdyYWw6IHRydWUsCisgICAgIGVsZW1lbnRTaXplSW5CeXRlczog
NCwKKyAgICAgdGVzdFZhbHVlczogICAgIFsgMCwgNDI5NDk2NzI5NSwgICAgICAgICAtMSwgNDI5
NDk2NzI5NiBdLAorICAgICBleHBlY3RlZFZhbHVlczogWyAwLCA0Mjk0OTY3Mjk1LCA0Mjk0OTY3
Mjk1LCAgICAgICAgICAwIF0KKyAgICB9CisgIF07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9yZXNvdXJjZXMvdHlwZWQtYXJyYXktd29ya2VyLmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3R5cGVkLWFycmF5LXdvcmtlci5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MDUwODY1Mjk4ZWY5ODdjNjE1MWY3NjVkNTM4MmQ5NDA5NDM3MmJiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVzb3VyY2VzL3R5
cGVkLWFycmF5LXdvcmtlci5qcwpAQCAtMCwwICsxLDg5IEBACisvKgorKiogQ29weXJpZ2h0IChj
KSAyMDEzIFRoZSBLaHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVi
eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiog
Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls
ZXMgKHRoZQorKiogIk1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91
dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0
cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBz
dWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisq
KiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBk
byBzbywgc3ViamVjdCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs
IGJlIGluY2x1ZGVkCisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m
IHRoZSBNYXRlcmlhbHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElT
IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwg
SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hB
TlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULgorKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP
TERFUlMgQkUgTElBQkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVS
V0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiog
TUFURVJJQUxTIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4K
KyovCisKK2Z1bmN0aW9uIGNvbnN0cnVjdFR5cGVkQXJyYXkodHlwZSwgZGF0YSkgeworICBpZiAo
dHlwZSA9PSAnSW50OEFycmF5JykgeworICAgIHJldHVybiBuZXcgSW50OEFycmF5KGRhdGEpOwor
ICB9IGVsc2UgaWYgKHR5cGUgPT0gJ1VpbnQ4QXJyYXknKSB7CisgICAgcmV0dXJuIG5ldyBVaW50
OEFycmF5KGRhdGEpOworICB9IGVsc2UgaWYgKHR5cGUgPT0gJ1VpbnQ4Q2xhbXBlZEFycmF5Jykg
eworICAgIHJldHVybiBuZXcgVWludDhDbGFtcGVkQXJyYXkoZGF0YSk7CisgIH0gZWxzZSBpZiAo
dHlwZSA9PSAnSW50MTZBcnJheScpIHsKKyAgICByZXR1cm4gbmV3IEludDE2QXJyYXkoZGF0YSk7
CisgIH0gZWxzZSBpZiAodHlwZSA9PSAnVWludDE2QXJyYXknKSB7CisgICAgcmV0dXJuIG5ldyBV
aW50MTZBcnJheShkYXRhKTsKKyAgfSBlbHNlIGlmICh0eXBlID09ICdJbnQzMkFycmF5Jykgewor
ICAgIHJldHVybiBuZXcgSW50MzJBcnJheShkYXRhKTsKKyAgfSBlbHNlIGlmICh0eXBlID09ICdV
aW50MzJBcnJheScpIHsKKyAgICByZXR1cm4gbmV3IFVpbnQzMkFycmF5KGRhdGEpOworICB9IGVs
c2UgaWYgKHR5cGUgPT0gJ0Zsb2F0MzJBcnJheScpIHsKKyAgICByZXR1cm4gbmV3IEZsb2F0MzJB
cnJheShkYXRhKTsKKyAgfSBlbHNlIGlmICh0eXBlID09ICdGbG9hdDY0QXJyYXknKSB7CisgICAg
cmV0dXJuIG5ldyBGbG9hdDY0QXJyYXkoZGF0YSk7CisgIH0KK30KKworZnVuY3Rpb24gY29uc3Ry
dWN0RGF0YVZpZXcoc3ViVHlwZSwgZWxlbWVudFNpemVJbkJ5dGVzLCBkYXRhKSB7CisgIHZhciBz
ZXR0ZXIgPSAic2V0IiArIHN1YlR5cGU7CisgIHZhciBieXRlT2Zmc2V0ID0gMDsKKyAgdmFyIGJ1
ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihlbGVtZW50U2l6ZUluQnl0ZXMgKiBkYXRhLmxlbmd0aCk7
CisgIHZhciBkYXRhVmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIpOworICBmb3IgKHZhciBpaSA9
IDA7IGlpIDwgZGF0YS5sZW5ndGg7ICsraWkpIHsKKyAgICBkYXRhVmlld1tzZXR0ZXJdKGJ5dGVP
ZmZzZXQsIGRhdGFbaWldKTsKKyAgICBieXRlT2Zmc2V0ICs9IGVsZW1lbnRTaXplSW5CeXRlczsK
KyAgfQorICByZXR1cm4gZGF0YVZpZXc7Cit9CisKK29ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50
KSB7CisgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YTsKKyAgaWYgKG1lc3NhZ2UuY29tbWFuZCA9
PSAnY29weScgfHwKKyAgICAgIG1lc3NhZ2UuY29tbWFuZCA9PSAndHJhbnNmZXInIHx8CisgICAg
ICBtZXNzYWdlLmNvbW1hbmQgPT0gJ2NvcHlCdWZmZXInIHx8CisgICAgICBtZXNzYWdlLmNvbW1h
bmQgPT0gJ3RyYW5zZmVyQnVmZmVyJykgeworICAgIHZhciB2aWV3OworICAgIGlmIChtZXNzYWdl
LnR5cGUgIT0gJ0RhdGFWaWV3JykgeworICAgICAgdmlldyA9IGNvbnN0cnVjdFR5cGVkQXJyYXko
bWVzc2FnZS50eXBlLCBtZXNzYWdlLmRhdGEpOworICAgIH0gZWxzZSB7CisgICAgICB2aWV3ID0g
Y29uc3RydWN0RGF0YVZpZXcobWVzc2FnZS5zdWJUeXBlLCBtZXNzYWdlLmVsZW1lbnRTaXplSW5C
eXRlcywgbWVzc2FnZS5kYXRhKTsKKyAgICB9CisgICAgdmFyIHZhbHVlVG9TZW5kOworICAgIGlm
IChtZXNzYWdlLmNvbW1hbmQgPT0gJ2NvcHknIHx8CisgICAgICAgIG1lc3NhZ2UuY29tbWFuZCA9
PSAndHJhbnNmZXInKSB7CisgICAgICB2YWx1ZVRvU2VuZCA9IHZpZXc7CisgICAgfSBlbHNlIHsK
KyAgICAgIHZhbHVlVG9TZW5kID0gdmlldy5idWZmZXI7CisgICAgfQorICAgIHZhciB0cmFuc2Zl
cmFibGVzVG9TZW5kID0gbnVsbDsKKyAgICBpZiAobWVzc2FnZS5jb21tYW5kID09ICd0cmFuc2Zl
cicgfHwKKyAgICAgICAgbWVzc2FnZS5jb21tYW5kID09ICd0cmFuc2ZlckJ1ZmZlcicpIHsKKyAg
ICAgIHRyYW5zZmVyYWJsZXNUb1NlbmQgPSBbIHZpZXcuYnVmZmVyIF07CisgICAgfQorICAgIHBv
c3RNZXNzYWdlKHZhbHVlVG9TZW5kLCB0cmFuc2ZlcmFibGVzVG9TZW5kKTsKKyAgfSBlbHNlIGlm
IChtZXNzYWdlLmNvbW1hbmQgPT0gJ3BvbmcnKSB7CisgICAgcG9zdE1lc3NhZ2UobWVzc2FnZS5k
YXRhLCBtZXNzYWdlLnRyYW5zZmVyYWJsZXMpOworICB9IGVsc2UgaWYgKG1lc3NhZ2UuY29tbWFu
ZCA9PSAnaWdub3JlJykgeworICB9IGVsc2UgeworICAgIHBvc3RNZXNzYWdlKCdlcnJvcjogdW5r
bm93biBtZXNzYWdlJyk7CisgIH0KK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC90eXBlZC1hcnJheXMtaW4td29ya2Vycy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC90eXBlZC1hcnJheXMtaW4td29ya2Vycy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWE5ZTRlZTFmYTYyOTJlOWY1NWQwNTcxNWVlYjZiN2YyNDkwZDkxMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3R5cGVkLWFy
cmF5cy1pbi13b3JrZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyOCBAQAorVGVzdHMgY29w
eWluZyBhbmQgdHJhbnNmZXJyaW5nIHR5cGVkIGFycmF5cyBhbmQgQXJyYXlCdWZmZXJzIHRvIGFu
ZCBmcm9tIHdvcmtlcnMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGNvcHkg
RmxvYXQzMkFycmF5IGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIGNvcHkgQXJyYXlC
dWZmZXIgY29udGFpbmluZyBGbG9hdDMyQXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4g
dGhyZWFkCitQQVNTIHRyYW5zZmVyIEZsb2F0MzJBcnJheSBmcm9tIHdvcmtlciB0byBtYWluIHRo
cmVhZAorUEFTUyB0cmFuc2ZlciBBcnJheUJ1ZmZlciBjb250YWluaW5nIEZsb2F0MzJBcnJheSB2
YWx1ZXMgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgY29weSBGbG9hdDMyQXJyYXkg
ZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgcGluZy1wb25nIHdpdGggY29weSBGbG9h
dDMyQXJyYXkgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgY29weSBBcnJheUJ1ZmZl
ciBjb250YWluaW5nIEZsb2F0MzJBcnJheSB2YWx1ZXMgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJl
YWQKK1BBU1MgcGluZy1wb25nIHdpdGggY29weSBjb250YWluaW5nIEZsb2F0MzJBcnJheSB2YWx1
ZXMgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgdHJhbnNmZXIgRmxvYXQzMkFycmF5
IGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIHBpbmctcG9uZyB3aXRoIHRyYW5zZmVy
IEZsb2F0MzJBcnJheSBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyB0cmFuc2ZlciBB
cnJheUJ1ZmZlciBjb250YWluaW5nIEZsb2F0MzJBcnJheSB2YWx1ZXMgZnJvbSB3b3JrZXIgdG8g
bWFpbiB0aHJlYWQKK1BBU1MgcGluZy1wb25nIHdpdGggdHJhbnNmZXIgY29udGFpbmluZyBGbG9h
dDMyQXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIGNvcHkgRGF0
YVZpZXcgY29udGFpbmluZyBGbG9hdDMyIGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNT
IHRyYW5zZmVyIERhdGFWaWV3IGNvbnRhaW5pbmcgRmxvYXQzMiBmcm9tIHdvcmtlciB0byBtYWlu
IHRocmVhZAorUEFTUyBjb3B5IERhdGFWaWV3IGNvbnRhaW5pbmcgRmxvYXQzMiBmcm9tIHdvcmtl
ciB0byBtYWluIHRocmVhZAorUEFTUyBwaW5nLXBvbmcgd2l0aCBjb3B5IERhdGFWaWV3IGNvbnRh
aW5pbmcgRmxvYXQzMiBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyB0cmFuc2ZlciBE
YXRhVmlldyBjb250YWluaW5nIEZsb2F0MzIgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BB
U1MgcGluZy1wb25nIHdpdGggdHJhbnNmZXIgRGF0YVZpZXcgY29udGFpbmluZyBGbG9hdDMyIGZy
b20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIGNvcHkgRmxvYXQ2NEFycmF5IGZyb20gd29y
a2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIGNvcHkgQXJyYXlCdWZmZXIgY29udGFpbmluZyBGbG9h
dDY0QXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIHRyYW5zZmVy
IEZsb2F0NjRBcnJheSBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyB0cmFuc2ZlciBB
cnJheUJ1ZmZlciBjb250YWluaW5nIEZsb2F0NjRBcnJheSB2YWx1ZXMgZnJvbSB3b3JrZXIgdG8g
bWFpbiB0aHJlYWQKK1BBU1MgY29weSBGbG9hdDY0QXJyYXkgZnJvbSB3b3JrZXIgdG8gbWFpbiB0
aHJlYWQKK1BBU1MgcGluZy1wb25nIHdpdGggY29weSBGbG9hdDY0QXJyYXkgZnJvbSB3b3JrZXIg
dG8gbWFpbiB0aHJlYWQKK1BBU1MgY29weSBBcnJheUJ1ZmZlciBjb250YWluaW5nIEZsb2F0NjRB
cnJheSB2YWx1ZXMgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgcGluZy1wb25nIHdp
dGggY29weSBjb250YWluaW5nIEZsb2F0NjRBcnJheSB2YWx1ZXMgZnJvbSB3b3JrZXIgdG8gbWFp
biB0aHJlYWQKK1BBU1MgdHJhbnNmZXIgRmxvYXQ2NEFycmF5IGZyb20gd29ya2VyIHRvIG1haW4g
dGhyZWFkCitQQVNTIHBpbmctcG9uZyB3aXRoIHRyYW5zZmVyIEZsb2F0NjRBcnJheSBmcm9tIHdv
cmtlciB0byBtYWluIHRocmVhZAorUEFTUyB0cmFuc2ZlciBBcnJheUJ1ZmZlciBjb250YWluaW5n
IEZsb2F0NjRBcnJheSB2YWx1ZXMgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgcGlu
Zy1wb25nIHdpdGggdHJhbnNmZXIgY29udGFpbmluZyBGbG9hdDY0QXJyYXkgdmFsdWVzIGZyb20g
d29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIGNvcHkgSW50OEFycmF5IGZyb20gd29ya2VyIHRv
IG1haW4gdGhyZWFkCitQQVNTIGNvcHkgQXJyYXlCdWZmZXIgY29udGFpbmluZyBJbnQ4QXJyYXkg
dmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIHRyYW5zZmVyIEludDhBcnJh
eSBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyB0cmFuc2ZlciBBcnJheUJ1ZmZlciBj
b250YWluaW5nIEludDhBcnJheSB2YWx1ZXMgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BB
U1MgY29weSBJbnQ4QXJyYXkgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgcGluZy1w
b25nIHdpdGggY29weSBJbnQ4QXJyYXkgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1Mg
Y29weSBBcnJheUJ1ZmZlciBjb250YWluaW5nIEludDhBcnJheSB2YWx1ZXMgZnJvbSB3b3JrZXIg
dG8gbWFpbiB0aHJlYWQKK1BBU1MgcGluZy1wb25nIHdpdGggY29weSBjb250YWluaW5nIEludDhB
cnJheSB2YWx1ZXMgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgdHJhbnNmZXIgSW50
OEFycmF5IGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIHBpbmctcG9uZyB3aXRoIHRy
YW5zZmVyIEludDhBcnJheSBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyB0cmFuc2Zl
ciBBcnJheUJ1ZmZlciBjb250YWluaW5nIEludDhBcnJheSB2YWx1ZXMgZnJvbSB3b3JrZXIgdG8g
bWFpbiB0aHJlYWQKK1BBU1MgcGluZy1wb25nIHdpdGggdHJhbnNmZXIgY29udGFpbmluZyBJbnQ4
QXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIGNvcHkgSW50MTZB
cnJheSBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyBjb3B5IEFycmF5QnVmZmVyIGNv
bnRhaW5pbmcgSW50MTZBcnJheSB2YWx1ZXMgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BB
U1MgdHJhbnNmZXIgSW50MTZBcnJheSBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyB0
cmFuc2ZlciBBcnJheUJ1ZmZlciBjb250YWluaW5nIEludDE2QXJyYXkgdmFsdWVzIGZyb20gd29y
a2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIGNvcHkgSW50MTZBcnJheSBmcm9tIHdvcmtlciB0byBt
YWluIHRocmVhZAorUEFTUyBwaW5nLXBvbmcgd2l0aCBjb3B5IEludDE2QXJyYXkgZnJvbSB3b3Jr
ZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgY29weSBBcnJheUJ1ZmZlciBjb250YWluaW5nIEludDE2
QXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIHBpbmctcG9uZyB3
aXRoIGNvcHkgY29udGFpbmluZyBJbnQxNkFycmF5IHZhbHVlcyBmcm9tIHdvcmtlciB0byBtYWlu
IHRocmVhZAorUEFTUyB0cmFuc2ZlciBJbnQxNkFycmF5IGZyb20gd29ya2VyIHRvIG1haW4gdGhy
ZWFkCitQQVNTIHBpbmctcG9uZyB3aXRoIHRyYW5zZmVyIEludDE2QXJyYXkgZnJvbSB3b3JrZXIg
dG8gbWFpbiB0aHJlYWQKK1BBU1MgdHJhbnNmZXIgQXJyYXlCdWZmZXIgY29udGFpbmluZyBJbnQx
NkFycmF5IHZhbHVlcyBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyBwaW5nLXBvbmcg
d2l0aCB0cmFuc2ZlciBjb250YWluaW5nIEludDE2QXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRv
IG1haW4gdGhyZWFkCitQQVNTIGNvcHkgSW50MzJBcnJheSBmcm9tIHdvcmtlciB0byBtYWluIHRo
cmVhZAorUEFTUyBjb3B5IEFycmF5QnVmZmVyIGNvbnRhaW5pbmcgSW50MzJBcnJheSB2YWx1ZXMg
ZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgdHJhbnNmZXIgSW50MzJBcnJheSBmcm9t
IHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyB0cmFuc2ZlciBBcnJheUJ1ZmZlciBjb250YWlu
aW5nIEludDMyQXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIGNv
cHkgSW50MzJBcnJheSBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyBwaW5nLXBvbmcg
d2l0aCBjb3B5IEludDMyQXJyYXkgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgY29w
eSBBcnJheUJ1ZmZlciBjb250YWluaW5nIEludDMyQXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRv
IG1haW4gdGhyZWFkCitQQVNTIHBpbmctcG9uZyB3aXRoIGNvcHkgY29udGFpbmluZyBJbnQzMkFy
cmF5IHZhbHVlcyBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyB0cmFuc2ZlciBJbnQz
MkFycmF5IGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIHBpbmctcG9uZyB3aXRoIHRy
YW5zZmVyIEludDMyQXJyYXkgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgdHJhbnNm
ZXIgQXJyYXlCdWZmZXIgY29udGFpbmluZyBJbnQzMkFycmF5IHZhbHVlcyBmcm9tIHdvcmtlciB0
byBtYWluIHRocmVhZAorUEFTUyBwaW5nLXBvbmcgd2l0aCB0cmFuc2ZlciBjb250YWluaW5nIElu
dDMyQXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIGNvcHkgRGF0
YVZpZXcgY29udGFpbmluZyBJbnQzMiBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyB0
cmFuc2ZlciBEYXRhVmlldyBjb250YWluaW5nIEludDMyIGZyb20gd29ya2VyIHRvIG1haW4gdGhy
ZWFkCitQQVNTIGNvcHkgRGF0YVZpZXcgY29udGFpbmluZyBJbnQzMiBmcm9tIHdvcmtlciB0byBt
YWluIHRocmVhZAorUEFTUyBwaW5nLXBvbmcgd2l0aCBjb3B5IERhdGFWaWV3IGNvbnRhaW5pbmcg
SW50MzIgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgdHJhbnNmZXIgRGF0YVZpZXcg
Y29udGFpbmluZyBJbnQzMiBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyBwaW5nLXBv
bmcgd2l0aCB0cmFuc2ZlciBEYXRhVmlldyBjb250YWluaW5nIEludDMyIGZyb20gd29ya2VyIHRv
IG1haW4gdGhyZWFkCitQQVNTIGNvcHkgVWludDhBcnJheSBmcm9tIHdvcmtlciB0byBtYWluIHRo
cmVhZAorUEFTUyBjb3B5IEFycmF5QnVmZmVyIGNvbnRhaW5pbmcgVWludDhBcnJheSB2YWx1ZXMg
ZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgdHJhbnNmZXIgVWludDhBcnJheSBmcm9t
IHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyB0cmFuc2ZlciBBcnJheUJ1ZmZlciBjb250YWlu
aW5nIFVpbnQ4QXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIGNv
cHkgVWludDhBcnJheSBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyBwaW5nLXBvbmcg
d2l0aCBjb3B5IFVpbnQ4QXJyYXkgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgY29w
eSBBcnJheUJ1ZmZlciBjb250YWluaW5nIFVpbnQ4QXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRv
IG1haW4gdGhyZWFkCitQQVNTIHBpbmctcG9uZyB3aXRoIGNvcHkgY29udGFpbmluZyBVaW50OEFy
cmF5IHZhbHVlcyBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyB0cmFuc2ZlciBVaW50
OEFycmF5IGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIHBpbmctcG9uZyB3aXRoIHRy
YW5zZmVyIFVpbnQ4QXJyYXkgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgdHJhbnNm
ZXIgQXJyYXlCdWZmZXIgY29udGFpbmluZyBVaW50OEFycmF5IHZhbHVlcyBmcm9tIHdvcmtlciB0
byBtYWluIHRocmVhZAorUEFTUyBwaW5nLXBvbmcgd2l0aCB0cmFuc2ZlciBjb250YWluaW5nIFVp
bnQ4QXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIGNvcHkgVWlu
dDhDbGFtcGVkQXJyYXkgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgY29weSBBcnJh
eUJ1ZmZlciBjb250YWluaW5nIFVpbnQ4Q2xhbXBlZEFycmF5IHZhbHVlcyBmcm9tIHdvcmtlciB0
byBtYWluIHRocmVhZAorUEFTUyB0cmFuc2ZlciBVaW50OENsYW1wZWRBcnJheSBmcm9tIHdvcmtl
ciB0byBtYWluIHRocmVhZAorUEFTUyB0cmFuc2ZlciBBcnJheUJ1ZmZlciBjb250YWluaW5nIFVp
bnQ4Q2xhbXBlZEFycmF5IHZhbHVlcyBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyBj
b3B5IFVpbnQ4Q2xhbXBlZEFycmF5IGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIHBp
bmctcG9uZyB3aXRoIGNvcHkgVWludDhDbGFtcGVkQXJyYXkgZnJvbSB3b3JrZXIgdG8gbWFpbiB0
aHJlYWQKK1BBU1MgY29weSBBcnJheUJ1ZmZlciBjb250YWluaW5nIFVpbnQ4Q2xhbXBlZEFycmF5
IHZhbHVlcyBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyBwaW5nLXBvbmcgd2l0aCBj
b3B5IGNvbnRhaW5pbmcgVWludDhDbGFtcGVkQXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1h
aW4gdGhyZWFkCitQQVNTIHRyYW5zZmVyIFVpbnQ4Q2xhbXBlZEFycmF5IGZyb20gd29ya2VyIHRv
IG1haW4gdGhyZWFkCitQQVNTIHBpbmctcG9uZyB3aXRoIHRyYW5zZmVyIFVpbnQ4Q2xhbXBlZEFy
cmF5IGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIHRyYW5zZmVyIEFycmF5QnVmZmVy
IGNvbnRhaW5pbmcgVWludDhDbGFtcGVkQXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4g
dGhyZWFkCitQQVNTIHBpbmctcG9uZyB3aXRoIHRyYW5zZmVyIGNvbnRhaW5pbmcgVWludDhDbGFt
cGVkQXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIGNvcHkgVWlu
dDE2QXJyYXkgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgY29weSBBcnJheUJ1ZmZl
ciBjb250YWluaW5nIFVpbnQxNkFycmF5IHZhbHVlcyBmcm9tIHdvcmtlciB0byBtYWluIHRocmVh
ZAorUEFTUyB0cmFuc2ZlciBVaW50MTZBcnJheSBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAor
UEFTUyB0cmFuc2ZlciBBcnJheUJ1ZmZlciBjb250YWluaW5nIFVpbnQxNkFycmF5IHZhbHVlcyBm
cm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyBjb3B5IFVpbnQxNkFycmF5IGZyb20gd29y
a2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIHBpbmctcG9uZyB3aXRoIGNvcHkgVWludDE2QXJyYXkg
ZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgY29weSBBcnJheUJ1ZmZlciBjb250YWlu
aW5nIFVpbnQxNkFycmF5IHZhbHVlcyBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyBw
aW5nLXBvbmcgd2l0aCBjb3B5IGNvbnRhaW5pbmcgVWludDE2QXJyYXkgdmFsdWVzIGZyb20gd29y
a2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIHRyYW5zZmVyIFVpbnQxNkFycmF5IGZyb20gd29ya2Vy
IHRvIG1haW4gdGhyZWFkCitQQVNTIHBpbmctcG9uZyB3aXRoIHRyYW5zZmVyIFVpbnQxNkFycmF5
IGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIHRyYW5zZmVyIEFycmF5QnVmZmVyIGNv
bnRhaW5pbmcgVWludDE2QXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQ
QVNTIHBpbmctcG9uZyB3aXRoIHRyYW5zZmVyIGNvbnRhaW5pbmcgVWludDE2QXJyYXkgdmFsdWVz
IGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIGNvcHkgVWludDMyQXJyYXkgZnJvbSB3
b3JrZXIgdG8gbWFpbiB0aHJlYWQKK1BBU1MgY29weSBBcnJheUJ1ZmZlciBjb250YWluaW5nIFVp
bnQzMkFycmF5IHZhbHVlcyBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyB0cmFuc2Zl
ciBVaW50MzJBcnJheSBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyB0cmFuc2ZlciBB
cnJheUJ1ZmZlciBjb250YWluaW5nIFVpbnQzMkFycmF5IHZhbHVlcyBmcm9tIHdvcmtlciB0byBt
YWluIHRocmVhZAorUEFTUyBjb3B5IFVpbnQzMkFycmF5IGZyb20gd29ya2VyIHRvIG1haW4gdGhy
ZWFkCitQQVNTIHBpbmctcG9uZyB3aXRoIGNvcHkgVWludDMyQXJyYXkgZnJvbSB3b3JrZXIgdG8g
bWFpbiB0aHJlYWQKK1BBU1MgY29weSBBcnJheUJ1ZmZlciBjb250YWluaW5nIFVpbnQzMkFycmF5
IHZhbHVlcyBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZAorUEFTUyBwaW5nLXBvbmcgd2l0aCBj
b3B5IGNvbnRhaW5pbmcgVWludDMyQXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4gdGhy
ZWFkCitQQVNTIHRyYW5zZmVyIFVpbnQzMkFycmF5IGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFk
CitQQVNTIHBpbmctcG9uZyB3aXRoIHRyYW5zZmVyIFVpbnQzMkFycmF5IGZyb20gd29ya2VyIHRv
IG1haW4gdGhyZWFkCitQQVNTIHRyYW5zZmVyIEFycmF5QnVmZmVyIGNvbnRhaW5pbmcgVWludDMy
QXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRvIG1haW4gdGhyZWFkCitQQVNTIHBpbmctcG9uZyB3
aXRoIHRyYW5zZmVyIGNvbnRhaW5pbmcgVWludDMyQXJyYXkgdmFsdWVzIGZyb20gd29ya2VyIHRv
IG1haW4gdGhyZWFkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvdHlwZWQt
YXJyYXlzLWluLXdvcmtlcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3R5
cGVkLWFycmF5cy1pbi13b3JrZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDAwYjdkMjQzNGJlNmMzNDNi
MjlhZjc4NGEwOTgzMmUxMzBkZmRiOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL3R5cGVkLWFycmF5cy1pbi13b3JrZXJzLmh0bWwKQEAgLTAsMCArMSwy
ODEgQEAKKzwhLS0KKworLyoKKyoqIENvcHlyaWdodCAoYykgMjAxMyBUaGUgS2hyb25vcyBHcm91
cCBJbmMuCisqKgorKiogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy
Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh
bmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMi
KSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJpYWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu
ZworKiogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks
IG1lcmdlLCBwdWJsaXNoLAorKiogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwg
Y29waWVzIG9mIHRoZSBNYXRlcmlhbHMsIGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxs
IGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoq
IFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg
QU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU
RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z
CisqKiBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU
SU9OIE9GIENPTlRSQUNULAorKiogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VU
IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9S
IE9USEVSIERFQUxJTkdTIElOIFRIRSBNQVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdHlwZWQtYXJyYXktdGVzdC1jYXNlcy5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorInVzZSBzdHJpY3QiOworCit2YXIgdGVzdFF1ZXVl
ID0gW107Cit2YXIgdHJhbnNmZXJTdXBwb3J0ZWQgPSB0cnVlOworCitmdW5jdGlvbiBuZXh0VGVz
dCgpIHsKKyAgaWYgKHRlc3RRdWV1ZVswXS5zdWJUZXN0cy5sZW5ndGggPiAwKSB7CisgICAgdGVz
dFF1ZXVlWzBdLnN1YlRlc3RzLnNoaWZ0KCk7CisgIH0KKworICB3aGlsZSAodGVzdFF1ZXVlLmxl
bmd0aCA+IDAgJiYgdGVzdFF1ZXVlWzBdLnN1YlRlc3RzLmxlbmd0aCA9PSAwKSB7CisgICAgdGVz
dFF1ZXVlLnNoaWZ0KCk7CisgIH0KKworICBpZiAodGVzdFF1ZXVlLmxlbmd0aCA9PSAwKSB7Cisg
ICAgZmluaXNoVGVzdCgpOworICAgIHJldHVybjsKKyAgfQorCisgIHRlc3RRdWV1ZVswXS5zdWJU
ZXN0c1swXS5ydW5uZXIoKTsKK30KKworZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShldmVudCkgewor
ICBpZiAodGVzdFF1ZXVlLmxlbmd0aCA9PSAwKQorICAgIHJldHVybjsKKworICBpZiAodGVzdFF1
ZXVlWzBdLnN1YlRlc3RzLmxlbmd0aCA9PSAwKQorICAgIHJldHVybjsKKworICB0ZXN0UXVldWVb
MF0uc3ViVGVzdHNbMF0uY2hlY2tlcihldmVudCk7CisgIG5leHRUZXN0KCk7Cit9CisKK2Z1bmN0
aW9uIHNldHVwVGVzdCh0ZXN0Q2FzZSwgcnVubmVyLCBjaGVja2VyKSB7CisgIHRlc3RDYXNlLnN1
YlRlc3RzLnB1c2goeyBydW5uZXI6IHJ1bm5lci5iaW5kKG51bGwsIHRlc3RDYXNlKSwgY2hlY2tl
cjogY2hlY2tlci5iaW5kKG51bGwsIHRlc3RDYXNlKSB9KTsKK30KKworZnVuY3Rpb24gYXJyYXlU
b1N0cmluZyhhcnIpIHsKKyAgdmFyIHJlc3VsdCA9ICJbICI7CisgIGZvciAodmFyIGlpID0gMDsg
aWkgPCBhcnIubGVuZ3RoOyArK2lpKSB7CisgICAgaWYgKGlpID4gMCkKKyAgICAgIHJlc3VsdCAr
PSAiLCAiOworICAgIHJlc3VsdCArPSBhcnJbaWldOworICB9CisgIHJldHVybiByZXN1bHQgKyAi
IF0iOworfQorCitmdW5jdGlvbiBjb25zdHJ1Y3RUeXBlZEFycmF5KHR5cGUsIGRhdGEpIHsKKyAg
aWYgKHR5cGUgPT0gJ0ludDhBcnJheScpIHsKKyAgICByZXR1cm4gbmV3IEludDhBcnJheShkYXRh
KTsKKyAgfSBlbHNlIGlmICh0eXBlID09ICdVaW50OEFycmF5JykgeworICAgIHJldHVybiBuZXcg
VWludDhBcnJheShkYXRhKTsKKyAgfSBlbHNlIGlmICh0eXBlID09ICdVaW50OENsYW1wZWRBcnJh
eScpIHsKKyAgICByZXR1cm4gbmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGRhdGEpOworICB9IGVsc2Ug
aWYgKHR5cGUgPT0gJ0ludDE2QXJyYXknKSB7CisgICAgcmV0dXJuIG5ldyBJbnQxNkFycmF5KGRh
dGEpOworICB9IGVsc2UgaWYgKHR5cGUgPT0gJ1VpbnQxNkFycmF5JykgeworICAgIHJldHVybiBu
ZXcgVWludDE2QXJyYXkoZGF0YSk7CisgIH0gZWxzZSBpZiAodHlwZSA9PSAnSW50MzJBcnJheScp
IHsKKyAgICByZXR1cm4gbmV3IEludDMyQXJyYXkoZGF0YSk7CisgIH0gZWxzZSBpZiAodHlwZSA9
PSAnVWludDMyQXJyYXknKSB7CisgICAgcmV0dXJuIG5ldyBVaW50MzJBcnJheShkYXRhKTsKKyAg
fSBlbHNlIGlmICh0eXBlID09ICdGbG9hdDMyQXJyYXknKSB7CisgICAgcmV0dXJuIG5ldyBGbG9h
dDMyQXJyYXkoZGF0YSk7CisgIH0gZWxzZSBpZiAodHlwZSA9PSAnRmxvYXQ2NEFycmF5Jykgewor
ICAgIHJldHVybiBuZXcgRmxvYXQ2NEFycmF5KGRhdGEpOworICB9Cit9CisKKy8vIFRlc3QgcnVu
bmVyIC8gY2hlY2tlciBwYWlycworZnVuY3Rpb24gcnVuVGVzdFdpdGhEYXRhKGNvbW1hbmQsIHRl
c3RDYXNlKSB7CisgIHdvcmtlci5wb3N0TWVzc2FnZSh7Y29tbWFuZDogY29tbWFuZCwgdHlwZTog
dGVzdENhc2UubmFtZSwgc3ViVHlwZTogdGVzdENhc2Uuc3ViVHlwZSwgZWxlbWVudFNpemVJbkJ5
dGVzOiB0ZXN0Q2FzZS5lbGVtZW50U2l6ZUluQnl0ZXMsIGRhdGE6IHRlc3RDYXNlLnRlc3RWYWx1
ZXN9KTsKK30KKworZnVuY3Rpb24gY2hlY2tBcnJheXNFcXVhbCh0ZXN0S2luZCwgdGVzdENhc2Us
IGV2ZW50KSB7CisgIHZhciBhcnJheSA9IGV2ZW50LmRhdGE7CisgIHZhciB0ZXN0TmFtZSA9IHRl
c3RLaW5kICsgIiAiICsgdGVzdENhc2UubmFtZSArICIgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJl
YWQiOworICBpZiAoYXJlQXJyYXlzRXF1YWwoYXJyYXksIHRlc3RDYXNlLmV4cGVjdGVkVmFsdWVz
KSkgeworICAgIHRlc3RQYXNzZWQodGVzdE5hbWUpOworICB9IGVsc2UgeworICAgIHRlc3RGYWls
ZWQodGVzdE5hbWUgKyAiOiBleHBlY3RlZCAiICsgYXJyYXlUb1N0cmluZyh0ZXN0Q2FzZS5leHBl
Y3RlZFZhbHVlcykgKyAiLCByZWNlaXZlZCAiICsgYXJyYXlUb1N0cmluZyhhcnJheSkpOworICB9
Cit9CisKK2Z1bmN0aW9uIGNoZWNrQnVmZmVyQ29udGVudHNFcXVhbCh0ZXN0S2luZCwgdGVzdENh
c2UsIGV2ZW50KSB7CisgIHZhciBhcnJheSA9IGNvbnN0cnVjdFR5cGVkQXJyYXkodGVzdENhc2Uu
bmFtZSwgZXZlbnQuZGF0YSk7CisgIHZhciB0ZXN0TmFtZSA9IHRlc3RLaW5kICsgIiBjb250YWlu
aW5nICIgKyB0ZXN0Q2FzZS5uYW1lICsgIiB2YWx1ZXMgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJl
YWQiOworICBpZiAoYXJlQXJyYXlzRXF1YWwoYXJyYXksIHRlc3RDYXNlLmV4cGVjdGVkVmFsdWVz
KSkgeworICAgIHRlc3RQYXNzZWQodGVzdE5hbWUpOworICB9IGVsc2UgeworICAgIHRlc3RGYWls
ZWQodGVzdE5hbWUgKyAiOiBleHBlY3RlZCAiICsgYXJyYXlUb1N0cmluZyh0ZXN0Q2FzZS5leHBl
Y3RlZFZhbHVlcykgKyAiLCByZWNlaXZlZCAiICsgYXJyYXlUb1N0cmluZyhhcnJheSkpOworICB9
Cit9CisKK2Z1bmN0aW9uIGNoZWNrRGF0YVZpZXdDb250ZW50cyh0ZXN0S2luZCwgdGVzdENhc2Us
IGV2ZW50KSB7CisgIHZhciBkYXRhVmlldyA9IGV2ZW50LmRhdGE7CisgIHZhciB0ZXN0TmFtZSA9
IHRlc3RLaW5kICsgIiAiICsgdGVzdENhc2UubmFtZSArICIgY29udGFpbmluZyAiICsgdGVzdENh
c2Uuc3ViVHlwZSArICIgZnJvbSB3b3JrZXIgdG8gbWFpbiB0aHJlYWQiOworICB2YXIgYnl0ZU9m
ZnNldCA9IDA7CisgIHZhciBhbGxQYXNzZWQgPSB0cnVlOworICBmb3IgKHZhciBpaSA9IDA7IGlp
IDwgdGVzdENhc2UuZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoOyArK2lpKSB7CisgICAgdmFyIGV4cGVj
dGVkID0gdGVzdENhc2UuZXhwZWN0ZWRWYWx1ZXNbaWldOworICAgIHZhciByZWNlaXZlZCA9IGRh
dGFWaWV3WydnZXQnICsgdGVzdENhc2Uuc3ViVHlwZV0oYnl0ZU9mZnNldCk7CisgICAgaWYgKHJl
Y2VpdmVkICE9IGV4cGVjdGVkKSB7CisgICAgICBhbGxQYXNzZWQgPSBmYWxzZTsKKyAgICAgIHRl
c3RGYWlsZWQodGVzdE5hbWUgKyAiOiBhdCBieXRlIG9mZnNldCAiICsgYnl0ZU9mZnNldCArICI6
IGV4cGVjdGVkICIgKyBleHBlY3RlZCArICIsIHJlY2VpdmVkICIgKyByZWNlaXZlZCk7CisgICAg
fQorICAgIGJ5dGVPZmZzZXQgKz0gdGVzdENhc2UuZWxlbWVudFNpemVJbkJ5dGVzOworICB9Cisg
IGlmIChhbGxQYXNzZWQpIHsKKyAgICB0ZXN0UGFzc2VkKHRlc3ROYW1lKTsKKyAgfQorfQorCisv
LyBNaXNzaW5nIHRlc3Q6IGNvcHkgb3IgdHJhbnNmZXIgQXJyYXlCdWZmZXIsIHdyYXAgaW4gRGF0
YVZpZXcgb24gdGhpcyBlbmQsIHZlcmlmeSBjb250ZW50cy4KKworZnVuY3Rpb24gbm9vcCgpIHsK
K30KKworZnVuY3Rpb24gY2hlY2tBcnJheXNFcXVhbEFuZFBpbmdQb25nKHRlc3RLaW5kLCB0cmFu
c2ZlciwgdGVzdENhc2UsIGV2ZW50KSB7CisgIGNoZWNrQXJyYXlzRXF1YWwodGVzdEtpbmQsIHRl
c3RDYXNlLCBldmVudCk7CisgIHZhciB0cmFuc2ZlcmFibGVzID0gW107CisgIGlmICh0cmFuc2Zl
cikgeworICAgIHRyYW5zZmVyYWJsZXMucHVzaChldmVudC5kYXRhLmJ1ZmZlcik7CisgIH0KKyAg
dHJ5IHsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoeyBjb21tYW5kOiAncG9uZycsIGRhdGE6IGV2
ZW50LmRhdGEsIHRyYW5zZmVyYWJsZXM6IHRyYW5zZmVyYWJsZXMgfSwgdHJhbnNmZXJhYmxlcyk7
CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0RmFpbGVkKCJ1bmV4cGVjdGVkIGV4Y2VwdGlvbjog
IiArIGUpOworICB9Cit9CisKK2Z1bmN0aW9uIGNoZWNrQnVmZmVyQ29udGVudHNFcXVhbEFuZFBp
bmdQb25nKHRlc3RLaW5kLCB0cmFuc2ZlciwgdGVzdENhc2UsIGV2ZW50KSB7CisgIGNoZWNrQnVm
ZmVyQ29udGVudHNFcXVhbCh0ZXN0S2luZCwgdGVzdENhc2UsIGV2ZW50KTsKKyAgdmFyIHRyYW5z
ZmVyYWJsZXMgPSBbXTsKKyAgaWYgKHRyYW5zZmVyKSB7CisgICAgdHJhbnNmZXJhYmxlcy5wdXNo
KGV2ZW50LmRhdGEpOworICB9CisgIHRyeSB7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKHsgY29t
bWFuZDogJ3BvbmcnLCBkYXRhOiBldmVudC5kYXRhLCB0cmFuc2ZlcmFibGVzOiB0cmFuc2ZlcmFi
bGVzIH0sIHRyYW5zZmVyYWJsZXMpOworICB9IGNhdGNoIChlKSB7CisgICAgdGVzdEZhaWxlZCgi
dW5leHBlY3RlZCBleGNlcHRpb246ICIgKyBlKTsKKyAgfQorfQorCitmdW5jdGlvbiBjaGVja0Rh
dGFWaWV3Q29udGVudHNBbmRQaW5nUG9uZyh0ZXN0S2luZCwgdHJhbnNmZXIsIHRlc3RDYXNlLCBl
dmVudCkgeworICBjaGVja0RhdGFWaWV3Q29udGVudHModGVzdEtpbmQsIHRlc3RDYXNlLCBldmVu
dCk7CisgIHZhciB0cmFuc2ZlcmFibGVzID0gW107CisgIGlmICh0cmFuc2ZlcikgeworICAgIHRy
YW5zZmVyYWJsZXMucHVzaChldmVudC5kYXRhLmJ1ZmZlcik7CisgIH0KKyAgdHJ5IHsKKyAgICB3
b3JrZXIucG9zdE1lc3NhZ2UoeyBjb21tYW5kOiAncG9uZycsIGRhdGE6IGV2ZW50LmRhdGEsIHRy
YW5zZmVyYWJsZXM6IHRyYW5zZmVyYWJsZXMgfSwgdHJhbnNmZXJhYmxlcyk7CisgIH0gY2F0Y2gg
KGUpIHsKKyAgICB0ZXN0RmFpbGVkKCJ1bmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUpOworICB9
Cit9CisKK2Rlc2NyaXB0aW9uKCJUZXN0cyBjb3B5aW5nIGFuZCB0cmFuc2ZlcnJpbmcgdHlwZWQg
YXJyYXlzIGFuZCBBcnJheUJ1ZmZlcnMgdG8gYW5kIGZyb20gd29ya2VycyIpOworCisvLyBTZWUg
d2hldGhlciB3b3JrZXJzIGFyZSBzdXBwb3J0ZWQgYXQgYWxsCitpZiAod2luZG93Lldvcmtlcikg
eworICBpZiAod2luZG93LmluaXROb25LaHJvbm9zRnJhbWV3b3JrKQorICAgIHdpbmRvdy5pbml0
Tm9uS2hyb25vc0ZyYW1ld29yayh0cnVlKTsKKworICAvLyBTdGFydCB1cCB0aGUgd29ya2VyCisg
IHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCdyZXNvdXJjZXMvdHlwZWQtYXJyYXktd29ya2VyLmpz
Jyk7CisgIHdvcmtlci5vbm1lc3NhZ2UgPSBoYW5kbGVNZXNzYWdlOworCisgIC8vIFNlZSB3aGV0
aGVyIHRyYW5zZmVyYWJsZXMgYXJlIHN1cHBvcnRlZAorICB2YXIgYnVmZmVyID0gbmV3IEFycmF5
QnVmZmVyKDE2KTsKKyAgdHJ5IHsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoeyBjb21tYW5kOiAn
aWdub3JlJywgZGF0YTogYnVmZmVyIH0sIFtidWZmZXJdKTsKKyAgICBpZiAoYnVmZmVyLmJ5dGVM
ZW5ndGggPiAwKQorICAgICAgdHJhbnNmZXJTdXBwb3J0ZWQgPSBmYWxzZTsKKyAgfSBjYXRjaCAo
ZSkgeworICAgIHRyYW5zZmVyU3VwcG9ydGVkID0gZmFsc2U7CisgIH0KKworICAvLyBJdGVyYXRl
IGRvd24gdGhlIHRlc3RzLCBxdWV1ZWluZyB0aGVtIHVwCisgIGZvciAodmFyIGlpID0gMDsgaWkg
PCB0ZXN0Q2FzZXMubGVuZ3RoOyArK2lpKSB7CisgICAgdmFyIHRlc3RDYXNlID0gdGVzdENhc2Vz
W2lpXTsKKyAgICB0ZXN0Q2FzZS5zdWJUZXN0cyA9IFtdOworICAgIHNldHVwVGVzdCh0ZXN0Q2Fz
ZSwgcnVuVGVzdFdpdGhEYXRhLmJpbmQobnVsbCwgJ2NvcHknKSwgY2hlY2tBcnJheXNFcXVhbC5i
aW5kKG51bGwsICdjb3B5JykpOworICAgIHNldHVwVGVzdCh0ZXN0Q2FzZSwgcnVuVGVzdFdpdGhE
YXRhLmJpbmQobnVsbCwgJ2NvcHlCdWZmZXInKSwgY2hlY2tCdWZmZXJDb250ZW50c0VxdWFsLmJp
bmQobnVsbCwgJ2NvcHkgQXJyYXlCdWZmZXInKSk7CisgICAgc2V0dXBUZXN0KHRlc3RDYXNlLCBy
dW5UZXN0V2l0aERhdGEuYmluZChudWxsLCAndHJhbnNmZXInKSwgY2hlY2tBcnJheXNFcXVhbC5i
aW5kKG51bGwsICd0cmFuc2ZlcicpKTsKKyAgICBzZXR1cFRlc3QodGVzdENhc2UsIHJ1blRlc3RX
aXRoRGF0YS5iaW5kKG51bGwsICd0cmFuc2ZlckJ1ZmZlcicpLCBjaGVja0J1ZmZlckNvbnRlbnRz
RXF1YWwuYmluZChudWxsLCAndHJhbnNmZXIgQXJyYXlCdWZmZXInKSk7CisKKyAgICAvLyBUaGVz
ZSB0d28gbXVzdCBydW4gYmFjay10by1iYWNrCisgICAgc2V0dXBUZXN0KHRlc3RDYXNlLCBydW5U
ZXN0V2l0aERhdGEuYmluZChudWxsLCAnY29weScpLCBjaGVja0FycmF5c0VxdWFsQW5kUGluZ1Bv
bmcuYmluZChudWxsLCAnY29weScsIGZhbHNlKSk7CisgICAgc2V0dXBUZXN0KHRlc3RDYXNlLCBu
b29wLCBjaGVja0FycmF5c0VxdWFsLmJpbmQobnVsbCwgJ3BpbmctcG9uZyB3aXRoIGNvcHknKSk7
CisKKyAgICAvLyBUaGVzZSB0d28gbXVzdCBydW4gYmFjay10by1iYWNrCisgICAgc2V0dXBUZXN0
KHRlc3RDYXNlLCBydW5UZXN0V2l0aERhdGEuYmluZChudWxsLCAnY29weUJ1ZmZlcicpLCBjaGVj
a0J1ZmZlckNvbnRlbnRzRXF1YWxBbmRQaW5nUG9uZy5iaW5kKG51bGwsICdjb3B5IEFycmF5QnVm
ZmVyJywgZmFsc2UpKTsKKyAgICBzZXR1cFRlc3QodGVzdENhc2UsIG5vb3AsIGNoZWNrQnVmZmVy
Q29udGVudHNFcXVhbC5iaW5kKG51bGwsICdwaW5nLXBvbmcgd2l0aCBjb3B5JykpOworCisgICAg
Ly8gVGhlc2UgdHdvIG11c3QgcnVuIGJhY2stdG8tYmFjaworICAgIHNldHVwVGVzdCh0ZXN0Q2Fz
ZSwgcnVuVGVzdFdpdGhEYXRhLmJpbmQobnVsbCwgJ3RyYW5zZmVyJyksIGNoZWNrQXJyYXlzRXF1
YWxBbmRQaW5nUG9uZy5iaW5kKG51bGwsICd0cmFuc2ZlcicsIHRydWUpKTsKKyAgICBzZXR1cFRl
c3QodGVzdENhc2UsIG5vb3AsIGNoZWNrQXJyYXlzRXF1YWwuYmluZChudWxsLCAncGluZy1wb25n
IHdpdGggdHJhbnNmZXInKSk7CisKKyAgICAvLyBUaGVzZSB0d28gbXVzdCBydW4gYmFjay10by1i
YWNrCisgICAgc2V0dXBUZXN0KHRlc3RDYXNlLCBydW5UZXN0V2l0aERhdGEuYmluZChudWxsLCAn
dHJhbnNmZXJCdWZmZXInKSwgY2hlY2tCdWZmZXJDb250ZW50c0VxdWFsQW5kUGluZ1BvbmcuYmlu
ZChudWxsLCAndHJhbnNmZXIgQXJyYXlCdWZmZXInLCBmYWxzZSkpOworICAgIHNldHVwVGVzdCh0
ZXN0Q2FzZSwgbm9vcCwgY2hlY2tCdWZmZXJDb250ZW50c0VxdWFsLmJpbmQobnVsbCwgJ3Bpbmct
cG9uZyB3aXRoIHRyYW5zZmVyJykpOworCisgICAgdGVzdFF1ZXVlLnB1c2godGVzdENhc2UpOwor
CisgICAgLy8gQWRkIGp1c3QgYSBjb3VwbGUgb2YgRGF0YVZpZXcgdGVzdHM7IHRoZSBiZWhhdmlv
ciBvZiB0aGF0IHZpZXcgdHlwZSBpcyB0aG9yb3VnaGx5IHRlc3RlZCBlbHNld2hlcmUKKyAgICBp
ZiAodGVzdENhc2UubmFtZSA9PSAiRmxvYXQzMkFycmF5IiB8fCB0ZXN0Q2FzZS5uYW1lID09ICJJ
bnQzMkFycmF5IikgeworICAgICAgdmFyIHN1YlR5cGVOYW1lID0gKHRlc3RDYXNlLm5hbWUgPT0g
IkZsb2F0MzJBcnJheSIgPyAiRmxvYXQzMiIgOiAiSW50MzIiKTsKKyAgICAgIHZhciBkYXRhVmll
d1Rlc3RDYXNlID0geyBuYW1lOiAiRGF0YVZpZXciLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN1YlR5cGU6IHN1YlR5cGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnRTaXplSW5CeXRlczogdGVzdENhc2UuZWxlbWVudFNpemVJbkJ5dGVzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RWYWx1ZXM6IHRlc3RDYXNlLnRlc3RWYWx1
ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRWYWx1ZXM6IHRlc3RD
YXNlLmV4cGVjdGVkVmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YlRl
c3RzOiBbXSB9OworICAgICAgc2V0dXBUZXN0KGRhdGFWaWV3VGVzdENhc2UsIHJ1blRlc3RXaXRo
RGF0YS5iaW5kKG51bGwsICdjb3B5JyksIGNoZWNrRGF0YVZpZXdDb250ZW50cy5iaW5kKG51bGws
ICdjb3B5JykpOworICAgICAgc2V0dXBUZXN0KGRhdGFWaWV3VGVzdENhc2UsIHJ1blRlc3RXaXRo
RGF0YS5iaW5kKG51bGwsICd0cmFuc2ZlcicpLCBjaGVja0RhdGFWaWV3Q29udGVudHMuYmluZChu
dWxsLCAndHJhbnNmZXInKSk7CisKKyAgICAgIC8vIFRoZXNlIHR3byBtdXN0IHJ1biBiYWNrLXRv
LWJhY2sKKyAgICAgIHNldHVwVGVzdChkYXRhVmlld1Rlc3RDYXNlLCBydW5UZXN0V2l0aERhdGEu
YmluZChudWxsLCAnY29weScpLCBjaGVja0RhdGFWaWV3Q29udGVudHNBbmRQaW5nUG9uZy5iaW5k
KG51bGwsICdjb3B5JywgZmFsc2UpKTsKKyAgICAgIHNldHVwVGVzdChkYXRhVmlld1Rlc3RDYXNl
LCBub29wLCBjaGVja0RhdGFWaWV3Q29udGVudHMuYmluZChudWxsLCAncGluZy1wb25nIHdpdGgg
Y29weScpKTsKKworICAgICAgLy8gVGhlc2UgdHdvIG11c3QgcnVuIGJhY2stdG8tYmFjaworICAg
ICAgc2V0dXBUZXN0KGRhdGFWaWV3VGVzdENhc2UsIHJ1blRlc3RXaXRoRGF0YS5iaW5kKG51bGws
ICd0cmFuc2ZlcicpLCBjaGVja0RhdGFWaWV3Q29udGVudHNBbmRQaW5nUG9uZy5iaW5kKG51bGws
ICd0cmFuc2ZlcicsIGZhbHNlKSk7CisgICAgICBzZXR1cFRlc3QoZGF0YVZpZXdUZXN0Q2FzZSwg
bm9vcCwgY2hlY2tEYXRhVmlld0NvbnRlbnRzLmJpbmQobnVsbCwgJ3BpbmctcG9uZyB3aXRoIHRy
YW5zZmVyJykpOworCisgICAgICB0ZXN0UXVldWUucHVzaChkYXRhVmlld1Rlc3RDYXNlKTsKKyAg
ICB9CisgIH0KKworICAvLyBLaWNrIHRoaW5ncyBvZmYKKyAgdGVzdFF1ZXVlWzBdLnN1YlRlc3Rz
WzBdLnJ1bm5lcigpOworfSBlbHNlIHsKKyAgZGVidWcoIldvcmtlcnMgbm90IHN1cHBvcnRlZCAt
LSBza2lwcGluZyB0ZXN0Iik7CisgIGZpbmlzaFRlc3QoKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3R5cGVkYXJyYXlzL3R5cGVkLWFycmF5cy1p
bi13b3JrZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3R5
cGVkYXJyYXlzL3R5cGVkLWFycmF5cy1pbi13b3JrZXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45Mzg3Nzc5N2NmMjBkNjU5MmM3MzI0OTgyNTM5ZWJkYTI4ODQ1NDY2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdHlwZWRhcnJheXMvdHlwZWQtYXJy
YXlzLWluLXdvcmtlcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IHJ1
bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQ
QVNTIG9yIEZBSUwuCisKK1Rlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2Nv
bmZvcm1hbmNlL3R5cGVkYXJyYXlzL3R5cGVkLWFycmF5cy1pbi13b3JrZXJzLmh0bWwKK1BBU1MK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvdHlwZWRhcnJheXMv
dHlwZWQtYXJyYXlzLWluLXdvcmtlcnMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1h
bmNlL3R5cGVkYXJyYXlzL3R5cGVkLWFycmF5cy1pbi13b3JrZXJzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTFiMTUyZDc3OGE1MWU0ZDhmNjYxMjRhNzNjMzI5YjUwY2MzYTY1MwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL3R5cGVkYXJyYXlzL3R5cGVkLWFycmF5
cy1pbi13b3JrZXJzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0
by1nZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPldlYkdMIENvbmZvcm1hbmNlIFRlc3QgV3JhcHBlciBmb3IgdHlwZWQtYXJyYXlzLWlu
LXdvcmtlcnMuaHRtbDwvdGl0bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9yZXNvdXJjZXMvd2Via2l0
LXdlYmdsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBhbiBpZnJhbWUgYW5k
IHJlcG9ydHMgUEFTUyBvciBGQUlMLjwvcD4KK1Rlc3Q6IDxhIGhyZWY9Ii4uLy4uL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3R5cGVkYXJyYXlzL3R5cGVkLWFycmF5cy1p
bi13b3JrZXJzLmh0bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1h
bmNlL3R5cGVkYXJyYXlzL3R5cGVkLWFycmF5cy1pbi13b3JrZXJzLmh0bWw8L2E+Cis8ZGl2IGlk
PSJyZXN1bHQiPjwvZGl2PgorPGRpdiBpZD0iaWZyYW1lIj4KKzxpZnJhbWUgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90eXBlZGFycmF5cy90eXBlZC1h
cnJheXMtaW4td29ya2Vycy5odG1sIiB3aWR0aD0iODAwIiBoZWlnaHQ9IjYwMCI+PC9pZnJhbWU+
Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3R5cGVkYXJyYXlzLzAwX3Rl
c3RfbGlzdC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxl
cy9jb25mb3JtYW5jZS90eXBlZGFycmF5cy8wMF90ZXN0X2xpc3QudHh0CmluZGV4IDQ0YTA2MDU3
Zjc3ZmVhMDA4ZjBlMzBlMTgwMjJjNTRjMmUzMWY3MzAuLjgzODcxZTdkMDE0ODZkNjI3YzBhZDlk
YmNjNDExMzBhZmMxNjRjMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNl
cy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3R5cGVkYXJyYXlzLzAwX3Rlc3RfbGlzdC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29u
Zm9ybWFuY2UvdHlwZWRhcnJheXMvMDBfdGVzdF9saXN0LnR4dApAQCAtMywzICszLDQgQEAgYXJy
YXktYnVmZmVyLXZpZXctY3Jhc2guaHRtbAogYXJyYXktdW5pdC10ZXN0cy5odG1sCiBkYXRhLXZp
ZXctY3Jhc2guaHRtbAogZGF0YS12aWV3LXRlc3QuaHRtbAorLS1taW4tdmVyc2lvbiAxLjAuMyB0
eXBlZC1hcnJheXMtaW4td29ya2Vycy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJn
bC9yZXNvdXJjZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90eXBlZGFycmF5cy9hcnJh
eS11bml0LXRlc3RzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS90eXBlZGFycmF5cy9hcnJheS11bml0LXRlc3RzLmh0bWwKaW5k
ZXggNjQwNDFkNzBlYWIyZmM5NTUwYjJkNjkyMmUzYzcxMDM2YjlhM2FhOC4uODk0M2I5NzQxNTNj
MGI1ODI5NGFlNzM1Yjk1MDQ0ZDMyNjJmYjlkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
Z2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdHlwZWRhcnJheXMvYXJy
YXktdW5pdC10ZXN0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL3Jlc291cmNlcy93ZWJn
bF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3R5cGVkYXJyYXlzL2FycmF5LXVuaXQtdGVzdHMuaHRt
bApAQCAtMzMsNiArMzMsNyBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3Qu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0LWV2YWwuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90eXBlZC1hcnJheS10ZXN0LWNhc2Vz
LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgogPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwv
ZGl2PgpAQCAtMTQzLDYgKzE0NCwzMyBAQCBmdW5jdGlvbiB0ZXN0U2xpY2UoKSB7CiAgIH0KIH0K
IAorZnVuY3Rpb24gdGVzdEluaGVyaXRhbmNlSGllcmFyY2h5KCkgeworICBkZWJ1ZygndGVzdCBp
bmhlcml0YW5jZSBoaWVyYXJjaHkgb2YgdHlwZWQgYXJyYXkgdmlld3MnKTsKKworICB0cnkgewor
ICAgIHZhciBmb28gPSBBcnJheUJ1ZmZlclZpZXc7CisgICAgdGVzdFBhc3NlZCgnQXJyYXlCdWZm
ZXJWaWV3IGRvZXMgbm90IGhhdmUgW05vSW50ZXJmYWNlT2JqZWN0XSBleHRlbmRlZCBhdHRyaWJ1
dGUgYW5kIHNob3VsZCBiZSBkZWZpbmVkJyk7CisKKyAgICBzaG91bGRCZSgnbmV3IEludDhBcnJh
eSgxKSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyVmlldycsICd0cnVlJyk7CisgICAgc2hvdWxkQmUo
J25ldyBVaW50OEFycmF5KDEpIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJWaWV3JywgJ3RydWUnKTsK
KyAgICBzaG91bGRCZSgnbmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDEpIGluc3RhbmNlb2YgQXJyYXlC
dWZmZXJWaWV3JywgJ3RydWUnKTsKKyAgICBzaG91bGRCZSgnbmV3IEludDE2QXJyYXkoMSkgaW5z
dGFuY2VvZiBBcnJheUJ1ZmZlclZpZXcnLCAndHJ1ZScpOworICAgIHNob3VsZEJlKCduZXcgVWlu
dDE2QXJyYXkoMSkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlclZpZXcnLCAndHJ1ZScpOworICAgIHNo
b3VsZEJlKCduZXcgSW50MzJBcnJheSgxKSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyVmlldycsICd0
cnVlJyk7CisgICAgc2hvdWxkQmUoJ25ldyBVaW50MzJBcnJheSgxKSBpbnN0YW5jZW9mIEFycmF5
QnVmZmVyVmlldycsICd0cnVlJyk7CisgICAgc2hvdWxkQmUoJ25ldyBGbG9hdDMyQXJyYXkoMSkg
aW5zdGFuY2VvZiBBcnJheUJ1ZmZlclZpZXcnLCAndHJ1ZScpOworICAgIHNob3VsZEJlKCduZXcg
RmxvYXQ2NEFycmF5KDEpIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJWaWV3JywgJ3RydWUnKTsKKyAg
ICBzaG91bGRCZSgnbmV3IERhdGFWaWV3KG5ldyBBcnJheUJ1ZmZlcig4KSkgaW5zdGFuY2VvZiBB
cnJheUJ1ZmZlclZpZXcnLCAndHJ1ZScpOworCisgICAgc2hvdWxkVGhyb3dUeXBlRXJyb3IoZnVu
Y3Rpb24oKSB7IG5ldyBBcnJheUJ1ZmZlclZpZXcoKSB9LCAibmV3IEFycmF5QnVmZmVyVmlldygp
Iik7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0RmFpbGVkKCdBcnJheUJ1ZmZlclZpZXcgZG9l
cyBub3QgaGF2ZSBbTm9JbnRlcmZhY2VPYmplY3RdIGV4dGVuZGVkIGF0dHJpYnV0ZSBidXQgd2Fz
IG5vdCBkZWZpbmVkJyk7CisgIH0KKworICAvLyBUaGVyZSBpcyBjdXJyZW50bHkgb25seSBvbmUg
a2luZCBvZiB2aWV3IHRoYXQgaW5oZXJpdHMgZnJvbSBhbm90aGVyCisgIHNob3VsZEJlKCduZXcg
VWludDhDbGFtcGVkQXJyYXkoMSkgaW5zdGFuY2VvZiBVaW50OEFycmF5JywgJ3RydWUnKTsKK30K
KwogLy8KIC8vIFRlc3RzIGZvciB1bnNpZ25lZCBhcnJheSB2YXJpYW50cwogLy8KQEAgLTk2NCwz
NCArOTkyLDYgQEAgZnVuY3Rpb24gdGVzdE5hTkNvbnZlcnNpb24odHlwZSwgbmFtZSkgewogICB9
CiB9CiAKLWZ1bmN0aW9uIHRlc3RJbmhlcml0YW5jZUhpZXJhcmNoeSgpIHsKLSAgZGVidWcoJ3Rl
c3QgaW5oZXJpdGFuY2UgaGllcmFyY2h5IG9mIHR5cGVkIGFycmF5IHZpZXdzJyk7Ci0KLSAgdHJ5
IHsKLSAgICB2YXIgZm9vID0gQXJyYXlCdWZmZXJWaWV3OwotICAgIHRlc3RQYXNzZWQoJ0FycmF5
QnVmZmVyVmlldyBkb2VzIG5vdCBoYXZlIFtOb0ludGVyZmFjZU9iamVjdF0gZXh0ZW5kZWQgYXR0
cmlidXRlIGFuZCBzaG91bGQgYmUgZGVmaW5lZCcpOwotCi0gICAgc2hvdWxkQmUoJ25ldyBJbnQ4
QXJyYXkoMSkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlclZpZXcnLCAndHJ1ZScpOwotICAgIHNob3Vs
ZEJlKCduZXcgVWludDhBcnJheSgxKSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyVmlldycsICd0cnVl
Jyk7Ci0gICAgc2hvdWxkQmUoJ25ldyBVaW50OENsYW1wZWRBcnJheSgxKSBpbnN0YW5jZW9mIEFy
cmF5QnVmZmVyVmlldycsICd0cnVlJyk7Ci0gICAgc2hvdWxkQmUoJ25ldyBJbnQxNkFycmF5KDEp
IGluc3RhbmNlb2YgQXJyYXlCdWZmZXJWaWV3JywgJ3RydWUnKTsKLSAgICBzaG91bGRCZSgnbmV3
IFVpbnQxNkFycmF5KDEpIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJWaWV3JywgJ3RydWUnKTsKLSAg
ICBzaG91bGRCZSgnbmV3IEludDMyQXJyYXkoMSkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlclZpZXcn
LCAndHJ1ZScpOwotICAgIHNob3VsZEJlKCduZXcgVWludDMyQXJyYXkoMSkgaW5zdGFuY2VvZiBB
cnJheUJ1ZmZlclZpZXcnLCAndHJ1ZScpOwotICAgIHNob3VsZEJlKCduZXcgRmxvYXQzMkFycmF5
KDEpIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJWaWV3JywgJ3RydWUnKTsKLSAgICBzaG91bGRCZSgn
bmV3IEZsb2F0NjRBcnJheSgxKSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyVmlldycsICd0cnVlJyk7
Ci0gICAgc2hvdWxkQmUoJ25ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoOCkpIGluc3RhbmNl
b2YgQXJyYXlCdWZmZXJWaWV3JywgJ3RydWUnKTsKLQotICAgIHNob3VsZFRocm93VHlwZUVycm9y
KGZ1bmN0aW9uKCkgeyBuZXcgQXJyYXlCdWZmZXJWaWV3KCkgfSwgIm5ldyBBcnJheUJ1ZmZlclZp
ZXcoKSIpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgdGVzdEZhaWxlZCgnQXJyYXlCdWZmZXJWaWV3
IGRvZXMgbm90IGhhdmUgW05vSW50ZXJmYWNlT2JqZWN0XSBleHRlbmRlZCBhdHRyaWJ1dGUgYnV0
IHdhcyBub3QgZGVmaW5lZCcpOwotICB9Ci0KLSAgLy8gVGhlcmUgaXMgY3VycmVudGx5IG9ubHkg
b25lIGtpbmQgb2YgdmlldyB0aGF0IGluaGVyaXRzIGZyb20gYW5vdGhlcgotICBzaG91bGRCZSgn
bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDEpIGluc3RhbmNlb2YgVWludDhBcnJheScsICd0cnVlJyk7
Ci19Ci0KLQogLy8KIC8vIFRlc3QgZHJpdmVyCiAvLwpAQCAtMTAwMiw3MyArMTAwMiw2IEBAIGZ1
bmN0aW9uIHJ1blRlc3RzKCkgewogICB0ZXN0U2xpY2UoKTsKICAgdGVzdEluaGVyaXRhbmNlSGll
cmFyY2h5KCk7CiAKLSAgLy8gVGhlICJuYW1lIiBhdHRyaWJ1dGUgaXMgYSBjb25jZXNzaW9uIHRv
IGJyb3dzZXJzIHdoaWNoIGRvbid0Ci0gIC8vIGltcGxlbWVudCB0aGUgIm5hbWUiIHByb3BlcnR5
IG9uIGZ1bmN0aW9uIG9iamVjdHMKLSAgdmFyIHRlc3RDYXNlcyA9Ci0gICAgWyB7bmFtZTogIkZs
b2F0MzJBcnJheSIsCi0gICAgICAgdW5zaWduZWQ6IGZhbHNlLAotICAgICAgIGludGVncmFsOiBm
YWxzZSwKLSAgICAgICBlbGVtZW50U2l6ZUluQnl0ZXM6IDQsCi0gICAgICAgdGVzdFZhbHVlczog
ICAgIFsgLTUwMC41LCA1MDAuNSBdLAotICAgICAgIGV4cGVjdGVkVmFsdWVzOiBbIC01MDAuNSwg
NTAwLjUgXQotICAgICAgfSwKLSAgICAgIHtuYW1lOiAiRmxvYXQ2NEFycmF5IiwKLSAgICAgICB1
bnNpZ25lZDogZmFsc2UsCi0gICAgICAgaW50ZWdyYWw6IGZhbHNlLAotICAgICAgIGVsZW1lbnRT
aXplSW5CeXRlczogOCwKLSAgICAgICB0ZXN0VmFsdWVzOiAgICAgWyAtNTAwLjUsIDUwMC41IF0s
Ci0gICAgICAgZXhwZWN0ZWRWYWx1ZXM6IFsgLTUwMC41LCA1MDAuNSBdCi0gICAgICB9LAotICAg
ICAge25hbWU6ICJJbnQ4QXJyYXkiLAotICAgICAgIHVuc2lnbmVkOiBmYWxzZSwKLSAgICAgICBp
bnRlZ3JhbDogdHJ1ZSwKLSAgICAgICBlbGVtZW50U2l6ZUluQnl0ZXM6IDEsCi0gICAgICAgdGVz
dFZhbHVlczogICAgIFsgLTEyOCwgMTI3LCAtMTI5LCAgMTI4IF0sCi0gICAgICAgZXhwZWN0ZWRW
YWx1ZXM6IFsgLTEyOCwgMTI3LCAgMTI3LCAtMTI4IF0KLSAgICAgIH0sCi0gICAgICB7bmFtZTog
IkludDE2QXJyYXkiLAotICAgICAgIHVuc2lnbmVkOiBmYWxzZSwKLSAgICAgICBpbnRlZ3JhbDog
dHJ1ZSwKLSAgICAgICBlbGVtZW50U2l6ZUluQnl0ZXM6IDIsCi0gICAgICAgdGVzdFZhbHVlczog
ICAgIFsgLTMyNzY4LCAzMjc2NywgLTMyNzY5LCAgMzI3NjggXSwKLSAgICAgICBleHBlY3RlZFZh
bHVlczogWyAtMzI3NjgsIDMyNzY3LCAgMzI3NjcsIC0zMjc2OCBdCi0gICAgICB9LAotICAgICAg
e25hbWU6ICJJbnQzMkFycmF5IiwKLSAgICAgICB1bnNpZ25lZDogZmFsc2UsCi0gICAgICAgaW50
ZWdyYWw6IHRydWUsCi0gICAgICAgZWxlbWVudFNpemVJbkJ5dGVzOiA0LAotICAgICAgIHRlc3RW
YWx1ZXM6ICAgICBbIC0yMTQ3NDgzNjQ4LCAyMTQ3NDgzNjQ3LCAtMjE0NzQ4MzY0OSwgIDIxNDc0
ODM2NDggXSwKLSAgICAgICBleHBlY3RlZFZhbHVlczogWyAtMjE0NzQ4MzY0OCwgMjE0NzQ4MzY0
NywgIDIxNDc0ODM2NDcsIC0yMTQ3NDgzNjQ4IF0KLSAgICAgIH0sCi0gICAgICB7bmFtZTogIlVp
bnQ4QXJyYXkiLAotICAgICAgIHVuc2lnbmVkOiB0cnVlLAotICAgICAgIGludGVncmFsOiB0cnVl
LAotICAgICAgIGVsZW1lbnRTaXplSW5CeXRlczogMSwKLSAgICAgICB0ZXN0VmFsdWVzOiAgICAg
WyAwLCAyNTUsICAtMSwgMjU2IF0sCi0gICAgICAgZXhwZWN0ZWRWYWx1ZXM6IFsgMCwgMjU1LCAy
NTUsICAgMCBdCi0gICAgICB9LAotICAgICAge25hbWU6ICJVaW50OENsYW1wZWRBcnJheSIsCi0g
ICAgICAgdW5zaWduZWQ6IHRydWUsCi0gICAgICAgaW50ZWdyYWw6IHRydWUsCi0gICAgICAgZWxl
bWVudFNpemVJbkJ5dGVzOiAxLAotICAgICAgIHRlc3RWYWx1ZXM6ICAgICBbIDAsIDI1NSwgIC0x
LCAyNTYgXSwKLSAgICAgICBleHBlY3RlZFZhbHVlczogWyAwLCAyNTUsICAgMCwgMjU1IF0KLSAg
ICAgIH0sCi0gICAgICB7bmFtZTogIlVpbnQxNkFycmF5IiwKLSAgICAgICB1bnNpZ25lZDogdHJ1
ZSwKLSAgICAgICBpbnRlZ3JhbDogdHJ1ZSwKLSAgICAgICBlbGVtZW50U2l6ZUluQnl0ZXM6IDIs
Ci0gICAgICAgdGVzdFZhbHVlczogICAgIFsgMCwgNjU1MzUsICAgIC0xLCA2NTUzNiBdLAotICAg
ICAgIGV4cGVjdGVkVmFsdWVzOiBbIDAsIDY1NTM1LCA2NTUzNSwgICAgIDAgXQotICAgICAgfSwK
LSAgICAgIHtuYW1lOiAiVWludDMyQXJyYXkiLAotICAgICAgIHVuc2lnbmVkOiB0cnVlLAotICAg
ICAgIGludGVncmFsOiB0cnVlLAotICAgICAgIGVsZW1lbnRTaXplSW5CeXRlczogNCwKLSAgICAg
ICB0ZXN0VmFsdWVzOiAgICAgWyAwLCA0Mjk0OTY3Mjk1LCAgICAgICAgIC0xLCA0Mjk0OTY3Mjk2
IF0sCi0gICAgICAgZXhwZWN0ZWRWYWx1ZXM6IFsgMCwgNDI5NDk2NzI5NSwgNDI5NDk2NzI5NSwg
ICAgICAgICAgMCBdCi0gICAgICB9Ci0gICAgXTsKICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0
Q2FzZXMubGVuZ3RoOyBpKyspIHsKICAgICB2YXIgdGVzdENhc2UgPSB0ZXN0Q2FzZXNbaV07CiAg
ICAgcnVubmluZyh0ZXN0Q2FzZS5uYW1lKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3R5cGVkYXJyYXlzL3Jlc291
cmNlcy90eXBlZC1hcnJheS10ZXN0LWNhc2VzLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3Vy
Y2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvdHlwZWRhcnJheXMvcmVzb3VyY2VzL3R5
cGVkLWFycmF5LXRlc3QtY2FzZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDYyZWFhZTFiZGVhOTFjNmU5NTdi
NzgwNDY4MzBkYTc1NDIxYWE2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmds
L3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL3R5cGVkYXJyYXlzL3Jlc291
cmNlcy90eXBlZC1hcnJheS10ZXN0LWNhc2VzLmpzCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisqKiBD
b3B5cmlnaHQgKGMpIDIwMTMgVGhlIEtocm9ub3MgR3JvdXAgSW5jLgorKioKKyoqIFBlcm1pc3Np
b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp
bmluZyBhCisqKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kL29yIGFzc29jaWF0ZWQgZG9jdW1l
bnRhdGlvbiBmaWxlcyAodGhlCisqKiAiTWF0ZXJpYWxzIiksIHRvIGRlYWwgaW4gdGhlIE1hdGVy
aWFscyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKKyoqIHdpdGhvdXQgbGltaXRhdGlv
biB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKKyoqIGRp
c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgTWF0ZXJpYWxz
LCBhbmQgdG8KKyoqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIE1hdGVyaWFscyBhcmUgZnVy
bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisqKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
CisqKgorKiogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyoqIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIE1hdGVyaWFscy4KKyoqCisqKiBUSEUgTUFURVJJQUxTIEFSRSBQUk9W
SURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorKiogRVhQUkVTUyBP
UiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9G
CisqKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RCBOT05JTkZSSU5HRU1FTlQuCisqKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBD
T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorKiogQ0xBSU0sIERBTUFHRVMgT1Ig
T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyoqIFRP
UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ
VEggVEhFCisqKiBNQVRFUklBTFMgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUg
TUFURVJJQUxTLgorKi8KKworLy8gVGhlICJuYW1lIiBhdHRyaWJ1dGUgaXMgYSBjb25jZXNzaW9u
IHRvIGJyb3dzZXJzIHdoaWNoIGRvbid0CisvLyBpbXBsZW1lbnQgdGhlICJuYW1lIiBwcm9wZXJ0
eSBvbiBmdW5jdGlvbiBvYmplY3RzLgordmFyIHRlc3RDYXNlcyA9CisgIFsge25hbWU6ICJGbG9h
dDMyQXJyYXkiLAorICAgICB1bnNpZ25lZDogZmFsc2UsCisgICAgIGludGVncmFsOiBmYWxzZSwK
KyAgICAgZWxlbWVudFNpemVJbkJ5dGVzOiA0LAorICAgICB0ZXN0VmFsdWVzOiAgICAgWyAtNTAw
LjUsIDUwMC41IF0sCisgICAgIGV4cGVjdGVkVmFsdWVzOiBbIC01MDAuNSwgNTAwLjUgXQorICAg
IH0sCisgICAge25hbWU6ICJGbG9hdDY0QXJyYXkiLAorICAgICB1bnNpZ25lZDogZmFsc2UsCisg
ICAgIGludGVncmFsOiBmYWxzZSwKKyAgICAgZWxlbWVudFNpemVJbkJ5dGVzOiA4LAorICAgICB0
ZXN0VmFsdWVzOiAgICAgWyAtNTAwLjUsIDUwMC41IF0sCisgICAgIGV4cGVjdGVkVmFsdWVzOiBb
IC01MDAuNSwgNTAwLjUgXQorICAgIH0sCisgICAge25hbWU6ICJJbnQ4QXJyYXkiLAorICAgICB1
bnNpZ25lZDogZmFsc2UsCisgICAgIGludGVncmFsOiB0cnVlLAorICAgICBlbGVtZW50U2l6ZUlu
Qnl0ZXM6IDEsCisgICAgIHRlc3RWYWx1ZXM6ICAgICBbIC0xMjgsIDEyNywgLTEyOSwgIDEyOCBd
LAorICAgICBleHBlY3RlZFZhbHVlczogWyAtMTI4LCAxMjcsICAxMjcsIC0xMjggXQorICAgIH0s
CisgICAge25hbWU6ICJJbnQxNkFycmF5IiwKKyAgICAgdW5zaWduZWQ6IGZhbHNlLAorICAgICBp
bnRlZ3JhbDogdHJ1ZSwKKyAgICAgZWxlbWVudFNpemVJbkJ5dGVzOiAyLAorICAgICB0ZXN0VmFs
dWVzOiAgICAgWyAtMzI3NjgsIDMyNzY3LCAtMzI3NjksICAzMjc2OCBdLAorICAgICBleHBlY3Rl
ZFZhbHVlczogWyAtMzI3NjgsIDMyNzY3LCAgMzI3NjcsIC0zMjc2OCBdCisgICAgfSwKKyAgICB7
bmFtZTogIkludDMyQXJyYXkiLAorICAgICB1bnNpZ25lZDogZmFsc2UsCisgICAgIGludGVncmFs
OiB0cnVlLAorICAgICBlbGVtZW50U2l6ZUluQnl0ZXM6IDQsCisgICAgIHRlc3RWYWx1ZXM6ICAg
ICBbIC0yMTQ3NDgzNjQ4LCAyMTQ3NDgzNjQ3LCAtMjE0NzQ4MzY0OSwgIDIxNDc0ODM2NDggXSwK
KyAgICAgZXhwZWN0ZWRWYWx1ZXM6IFsgLTIxNDc0ODM2NDgsIDIxNDc0ODM2NDcsICAyMTQ3NDgz
NjQ3LCAtMjE0NzQ4MzY0OCBdCisgICAgfSwKKyAgICB7bmFtZTogIlVpbnQ4QXJyYXkiLAorICAg
ICB1bnNpZ25lZDogdHJ1ZSwKKyAgICAgaW50ZWdyYWw6IHRydWUsCisgICAgIGVsZW1lbnRTaXpl
SW5CeXRlczogMSwKKyAgICAgdGVzdFZhbHVlczogICAgIFsgMCwgMjU1LCAgLTEsIDI1NiBdLAor
ICAgICBleHBlY3RlZFZhbHVlczogWyAwLCAyNTUsIDI1NSwgICAwIF0KKyAgICB9LAorICAgIHtu
YW1lOiAiVWludDhDbGFtcGVkQXJyYXkiLAorICAgICB1bnNpZ25lZDogdHJ1ZSwKKyAgICAgaW50
ZWdyYWw6IHRydWUsCisgICAgIGVsZW1lbnRTaXplSW5CeXRlczogMSwKKyAgICAgdGVzdFZhbHVl
czogICAgIFsgMCwgMjU1LCAgLTEsIDI1NiBdLAorICAgICBleHBlY3RlZFZhbHVlczogWyAwLCAy
NTUsICAgMCwgMjU1IF0KKyAgICB9LAorICAgIHtuYW1lOiAiVWludDE2QXJyYXkiLAorICAgICB1
bnNpZ25lZDogdHJ1ZSwKKyAgICAgaW50ZWdyYWw6IHRydWUsCisgICAgIGVsZW1lbnRTaXplSW5C
eXRlczogMiwKKyAgICAgdGVzdFZhbHVlczogICAgIFsgMCwgNjU1MzUsICAgIC0xLCA2NTUzNiBd
LAorICAgICBleHBlY3RlZFZhbHVlczogWyAwLCA2NTUzNSwgNjU1MzUsICAgICAwIF0KKyAgICB9
LAorICAgIHtuYW1lOiAiVWludDMyQXJyYXkiLAorICAgICB1bnNpZ25lZDogdHJ1ZSwKKyAgICAg
aW50ZWdyYWw6IHRydWUsCisgICAgIGVsZW1lbnRTaXplSW5CeXRlczogNCwKKyAgICAgdGVzdFZh
bHVlczogICAgIFsgMCwgNDI5NDk2NzI5NSwgICAgICAgICAtMSwgNDI5NDk2NzI5NiBdLAorICAg
ICBleHBlY3RlZFZhbHVlczogWyAwLCA0Mjk0OTY3Mjk1LCA0Mjk0OTY3Mjk1LCAgICAgICAgICAw
IF0KKyAgICB9CisgIF07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMv
d2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90eXBlZGFycmF5cy9yZXNvdXJjZXMvdHlwZWQt
YXJyYXktd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UvdHlwZWRhcnJheXMvcmVzb3VyY2VzL3R5cGVkLWFycmF5LXdvcmtl
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42MDUwODY1Mjk4ZWY5ODdjNjE1MWY3NjVkNTM4MmQ5NDA5NDM3MmJi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rl
c3RfZmlsZXMvY29uZm9ybWFuY2UvdHlwZWRhcnJheXMvcmVzb3VyY2VzL3R5cGVkLWFycmF5LXdv
cmtlci5qcwpAQCAtMCwwICsxLDg5IEBACisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBL
aHJvbm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm
cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlz
IHNvZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiog
Ik1hdGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNv
cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBh
bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj
dCB0bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVk
CisqKiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlh
bHMuCisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX
QVJSQU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJV
VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiog
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO
RyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9S
IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKK2Z1bmN0
aW9uIGNvbnN0cnVjdFR5cGVkQXJyYXkodHlwZSwgZGF0YSkgeworICBpZiAodHlwZSA9PSAnSW50
OEFycmF5JykgeworICAgIHJldHVybiBuZXcgSW50OEFycmF5KGRhdGEpOworICB9IGVsc2UgaWYg
KHR5cGUgPT0gJ1VpbnQ4QXJyYXknKSB7CisgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGRhdGEp
OworICB9IGVsc2UgaWYgKHR5cGUgPT0gJ1VpbnQ4Q2xhbXBlZEFycmF5JykgeworICAgIHJldHVy
biBuZXcgVWludDhDbGFtcGVkQXJyYXkoZGF0YSk7CisgIH0gZWxzZSBpZiAodHlwZSA9PSAnSW50
MTZBcnJheScpIHsKKyAgICByZXR1cm4gbmV3IEludDE2QXJyYXkoZGF0YSk7CisgIH0gZWxzZSBp
ZiAodHlwZSA9PSAnVWludDE2QXJyYXknKSB7CisgICAgcmV0dXJuIG5ldyBVaW50MTZBcnJheShk
YXRhKTsKKyAgfSBlbHNlIGlmICh0eXBlID09ICdJbnQzMkFycmF5JykgeworICAgIHJldHVybiBu
ZXcgSW50MzJBcnJheShkYXRhKTsKKyAgfSBlbHNlIGlmICh0eXBlID09ICdVaW50MzJBcnJheScp
IHsKKyAgICByZXR1cm4gbmV3IFVpbnQzMkFycmF5KGRhdGEpOworICB9IGVsc2UgaWYgKHR5cGUg
PT0gJ0Zsb2F0MzJBcnJheScpIHsKKyAgICByZXR1cm4gbmV3IEZsb2F0MzJBcnJheShkYXRhKTsK
KyAgfSBlbHNlIGlmICh0eXBlID09ICdGbG9hdDY0QXJyYXknKSB7CisgICAgcmV0dXJuIG5ldyBG
bG9hdDY0QXJyYXkoZGF0YSk7CisgIH0KK30KKworZnVuY3Rpb24gY29uc3RydWN0RGF0YVZpZXco
c3ViVHlwZSwgZWxlbWVudFNpemVJbkJ5dGVzLCBkYXRhKSB7CisgIHZhciBzZXR0ZXIgPSAic2V0
IiArIHN1YlR5cGU7CisgIHZhciBieXRlT2Zmc2V0ID0gMDsKKyAgdmFyIGJ1ZmZlciA9IG5ldyBB
cnJheUJ1ZmZlcihlbGVtZW50U2l6ZUluQnl0ZXMgKiBkYXRhLmxlbmd0aCk7CisgIHZhciBkYXRh
VmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIpOworICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgZGF0
YS5sZW5ndGg7ICsraWkpIHsKKyAgICBkYXRhVmlld1tzZXR0ZXJdKGJ5dGVPZmZzZXQsIGRhdGFb
aWldKTsKKyAgICBieXRlT2Zmc2V0ICs9IGVsZW1lbnRTaXplSW5CeXRlczsKKyAgfQorICByZXR1
cm4gZGF0YVZpZXc7Cit9CisKK29ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgIHZhciBt
ZXNzYWdlID0gZXZlbnQuZGF0YTsKKyAgaWYgKG1lc3NhZ2UuY29tbWFuZCA9PSAnY29weScgfHwK
KyAgICAgIG1lc3NhZ2UuY29tbWFuZCA9PSAndHJhbnNmZXInIHx8CisgICAgICBtZXNzYWdlLmNv
bW1hbmQgPT0gJ2NvcHlCdWZmZXInIHx8CisgICAgICBtZXNzYWdlLmNvbW1hbmQgPT0gJ3RyYW5z
ZmVyQnVmZmVyJykgeworICAgIHZhciB2aWV3OworICAgIGlmIChtZXNzYWdlLnR5cGUgIT0gJ0Rh
dGFWaWV3JykgeworICAgICAgdmlldyA9IGNvbnN0cnVjdFR5cGVkQXJyYXkobWVzc2FnZS50eXBl
LCBtZXNzYWdlLmRhdGEpOworICAgIH0gZWxzZSB7CisgICAgICB2aWV3ID0gY29uc3RydWN0RGF0
YVZpZXcobWVzc2FnZS5zdWJUeXBlLCBtZXNzYWdlLmVsZW1lbnRTaXplSW5CeXRlcywgbWVzc2Fn
ZS5kYXRhKTsKKyAgICB9CisgICAgdmFyIHZhbHVlVG9TZW5kOworICAgIGlmIChtZXNzYWdlLmNv
bW1hbmQgPT0gJ2NvcHknIHx8CisgICAgICAgIG1lc3NhZ2UuY29tbWFuZCA9PSAndHJhbnNmZXIn
KSB7CisgICAgICB2YWx1ZVRvU2VuZCA9IHZpZXc7CisgICAgfSBlbHNlIHsKKyAgICAgIHZhbHVl
VG9TZW5kID0gdmlldy5idWZmZXI7CisgICAgfQorICAgIHZhciB0cmFuc2ZlcmFibGVzVG9TZW5k
ID0gbnVsbDsKKyAgICBpZiAobWVzc2FnZS5jb21tYW5kID09ICd0cmFuc2ZlcicgfHwKKyAgICAg
ICAgbWVzc2FnZS5jb21tYW5kID09ICd0cmFuc2ZlckJ1ZmZlcicpIHsKKyAgICAgIHRyYW5zZmVy
YWJsZXNUb1NlbmQgPSBbIHZpZXcuYnVmZmVyIF07CisgICAgfQorICAgIHBvc3RNZXNzYWdlKHZh
bHVlVG9TZW5kLCB0cmFuc2ZlcmFibGVzVG9TZW5kKTsKKyAgfSBlbHNlIGlmIChtZXNzYWdlLmNv
bW1hbmQgPT0gJ3BvbmcnKSB7CisgICAgcG9zdE1lc3NhZ2UobWVzc2FnZS5kYXRhLCBtZXNzYWdl
LnRyYW5zZmVyYWJsZXMpOworICB9IGVsc2UgaWYgKG1lc3NhZ2UuY29tbWFuZCA9PSAnaWdub3Jl
JykgeworICB9IGVsc2UgeworICAgIHBvc3RNZXNzYWdlKCdlcnJvcjogdW5rbm93biBtZXNzYWdl
Jyk7CisgIH0KK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS90eXBlZGFycmF5cy90eXBlZC1hcnJheXMtaW4td29y
a2Vycy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdHlwZWRhcnJheXMvdHlwZWQtYXJyYXlzLWluLXdvcmtlcnMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMjVlMjMxNmM2ZjhkN2I1ZDEyNWM3M2Q2NmYxNzk4MTBkYmJiNDM0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMv
Y29uZm9ybWFuY2UvdHlwZWRhcnJheXMvdHlwZWQtYXJyYXlzLWluLXdvcmtlcnMuaHRtbApAQCAt
MCwwICsxLDI3OSBAQAorPCEtLQorCisvKgorKiogQ29weXJpZ2h0IChjKSAyMDEzIFRoZSBLaHJv
bm9zIEdyb3VwIEluYy4KKyoqCisqKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl
IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorKiogY29weSBvZiB0aGlzIHNv
ZnR3YXJlIGFuZC9vciBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorKiogIk1h
dGVyaWFscyIpLCB0byBkZWFsIGluIHRoZSBNYXRlcmlhbHMgd2l0aG91dCByZXN0cmljdGlvbiwg
aW5jbHVkaW5nCisqKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisqKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv
b3Igc2VsbCBjb3BpZXMgb2YgdGhlIE1hdGVyaWFscywgYW5kIHRvCisqKiBwZXJtaXQgcGVyc29u
cyB0byB3aG9tIHRoZSBNYXRlcmlhbHMgYXJlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0
bworKiogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKioKKyoqIFRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisq
KiBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBNYXRlcmlhbHMu
CisqKgorKiogVEhFIE1BVEVSSUFMUyBBUkUgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS
QU5UWSBPRiBBTlkgS0lORCwKKyoqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO
T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKiogTUVSQ0hBTlRBQklMSVRZLCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKiogSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyoqIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisqKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBG
Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKiogTUFURVJJQUxTIE9SIFRI
RSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIE1BVEVSSUFMUy4KKyovCisKKy0tPgorCis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyIvPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0LWV2YWwuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy90eXBlZC1hcnJheS10ZXN0LWNhc2VzLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisidXNlIHN0cmljdCI7CisKK3ZhciB0ZXN0
UXVldWUgPSBbXTsKK3ZhciB0cmFuc2ZlclN1cHBvcnRlZCA9IHRydWU7CisKK2Z1bmN0aW9uIG5l
eHRUZXN0KCkgeworICBpZiAodGVzdFF1ZXVlWzBdLnN1YlRlc3RzLmxlbmd0aCA+IDApIHsKKyAg
ICB0ZXN0UXVldWVbMF0uc3ViVGVzdHMuc2hpZnQoKTsKKyAgfQorCisgIHdoaWxlICh0ZXN0UXVl
dWUubGVuZ3RoID4gMCAmJiB0ZXN0UXVldWVbMF0uc3ViVGVzdHMubGVuZ3RoID09IDApIHsKKyAg
ICB0ZXN0UXVldWUuc2hpZnQoKTsKKyAgfQorCisgIGlmICh0ZXN0UXVldWUubGVuZ3RoID09IDAp
IHsKKyAgICBmaW5pc2hUZXN0KCk7CisgICAgcmV0dXJuOworICB9CisKKyAgdGVzdFF1ZXVlWzBd
LnN1YlRlc3RzWzBdLnJ1bm5lcigpOworfQorCitmdW5jdGlvbiBoYW5kbGVNZXNzYWdlKGV2ZW50
KSB7CisgIGlmICh0ZXN0UXVldWUubGVuZ3RoID09IDApCisgICAgcmV0dXJuOworCisgIGlmICh0
ZXN0UXVldWVbMF0uc3ViVGVzdHMubGVuZ3RoID09IDApCisgICAgcmV0dXJuOworCisgIHRlc3RR
dWV1ZVswXS5zdWJUZXN0c1swXS5jaGVja2VyKGV2ZW50KTsKKyAgbmV4dFRlc3QoKTsKK30KKwor
ZnVuY3Rpb24gc2V0dXBUZXN0KHRlc3RDYXNlLCBydW5uZXIsIGNoZWNrZXIpIHsKKyAgdGVzdENh
c2Uuc3ViVGVzdHMucHVzaCh7IHJ1bm5lcjogcnVubmVyLmJpbmQobnVsbCwgdGVzdENhc2UpLCBj
aGVja2VyOiBjaGVja2VyLmJpbmQobnVsbCwgdGVzdENhc2UpIH0pOworfQorCitmdW5jdGlvbiBh
cnJheVRvU3RyaW5nKGFycikgeworICB2YXIgcmVzdWx0ID0gIlsgIjsKKyAgZm9yICh2YXIgaWkg
PSAwOyBpaSA8IGFyci5sZW5ndGg7ICsraWkpIHsKKyAgICBpZiAoaWkgPiAwKQorICAgICAgcmVz
dWx0ICs9ICIsICI7CisgICAgcmVzdWx0ICs9IGFycltpaV07CisgIH0KKyAgcmV0dXJuIHJlc3Vs
dCArICIgXSI7Cit9CisKK2Z1bmN0aW9uIGNvbnN0cnVjdFR5cGVkQXJyYXkodHlwZSwgZGF0YSkg
eworICBpZiAodHlwZSA9PSAnSW50OEFycmF5JykgeworICAgIHJldHVybiBuZXcgSW50OEFycmF5
KGRhdGEpOworICB9IGVsc2UgaWYgKHR5cGUgPT0gJ1VpbnQ4QXJyYXknKSB7CisgICAgcmV0dXJu
IG5ldyBVaW50OEFycmF5KGRhdGEpOworICB9IGVsc2UgaWYgKHR5cGUgPT0gJ1VpbnQ4Q2xhbXBl
ZEFycmF5JykgeworICAgIHJldHVybiBuZXcgVWludDhDbGFtcGVkQXJyYXkoZGF0YSk7CisgIH0g
ZWxzZSBpZiAodHlwZSA9PSAnSW50MTZBcnJheScpIHsKKyAgICByZXR1cm4gbmV3IEludDE2QXJy
YXkoZGF0YSk7CisgIH0gZWxzZSBpZiAodHlwZSA9PSAnVWludDE2QXJyYXknKSB7CisgICAgcmV0
dXJuIG5ldyBVaW50MTZBcnJheShkYXRhKTsKKyAgfSBlbHNlIGlmICh0eXBlID09ICdJbnQzMkFy
cmF5JykgeworICAgIHJldHVybiBuZXcgSW50MzJBcnJheShkYXRhKTsKKyAgfSBlbHNlIGlmICh0
eXBlID09ICdVaW50MzJBcnJheScpIHsKKyAgICByZXR1cm4gbmV3IFVpbnQzMkFycmF5KGRhdGEp
OworICB9IGVsc2UgaWYgKHR5cGUgPT0gJ0Zsb2F0MzJBcnJheScpIHsKKyAgICByZXR1cm4gbmV3
IEZsb2F0MzJBcnJheShkYXRhKTsKKyAgfSBlbHNlIGlmICh0eXBlID09ICdGbG9hdDY0QXJyYXkn
KSB7CisgICAgcmV0dXJuIG5ldyBGbG9hdDY0QXJyYXkoZGF0YSk7CisgIH0KK30KKworLy8gVGVz
dCBydW5uZXIgLyBjaGVja2VyIHBhaXJzCitmdW5jdGlvbiBydW5UZXN0V2l0aERhdGEoY29tbWFu
ZCwgdGVzdENhc2UpIHsKKyAgd29ya2VyLnBvc3RNZXNzYWdlKHtjb21tYW5kOiBjb21tYW5kLCB0
eXBlOiB0ZXN0Q2FzZS5uYW1lLCBzdWJUeXBlOiB0ZXN0Q2FzZS5zdWJUeXBlLCBlbGVtZW50U2l6
ZUluQnl0ZXM6IHRlc3RDYXNlLmVsZW1lbnRTaXplSW5CeXRlcywgZGF0YTogdGVzdENhc2UudGVz
dFZhbHVlc30pOworfQorCitmdW5jdGlvbiBjaGVja0FycmF5c0VxdWFsKHRlc3RLaW5kLCB0ZXN0
Q2FzZSwgZXZlbnQpIHsKKyAgdmFyIGFycmF5ID0gZXZlbnQuZGF0YTsKKyAgdmFyIHRlc3ROYW1l
ID0gdGVzdEtpbmQgKyAiICIgKyB0ZXN0Q2FzZS5uYW1lICsgIiBmcm9tIHdvcmtlciB0byBtYWlu
IHRocmVhZCI7CisgIGlmIChhcmVBcnJheXNFcXVhbChhcnJheSwgdGVzdENhc2UuZXhwZWN0ZWRW
YWx1ZXMpKSB7CisgICAgdGVzdFBhc3NlZCh0ZXN0TmFtZSk7CisgIH0gZWxzZSB7CisgICAgdGVz
dEZhaWxlZCh0ZXN0TmFtZSArICI6IGV4cGVjdGVkICIgKyBhcnJheVRvU3RyaW5nKHRlc3RDYXNl
LmV4cGVjdGVkVmFsdWVzKSArICIsIHJlY2VpdmVkICIgKyBhcnJheVRvU3RyaW5nKGFycmF5KSk7
CisgIH0KK30KKworZnVuY3Rpb24gY2hlY2tCdWZmZXJDb250ZW50c0VxdWFsKHRlc3RLaW5kLCB0
ZXN0Q2FzZSwgZXZlbnQpIHsKKyAgdmFyIGFycmF5ID0gY29uc3RydWN0VHlwZWRBcnJheSh0ZXN0
Q2FzZS5uYW1lLCBldmVudC5kYXRhKTsKKyAgdmFyIHRlc3ROYW1lID0gdGVzdEtpbmQgKyAiIGNv
bnRhaW5pbmcgIiArIHRlc3RDYXNlLm5hbWUgKyAiIHZhbHVlcyBmcm9tIHdvcmtlciB0byBtYWlu
IHRocmVhZCI7CisgIGlmIChhcmVBcnJheXNFcXVhbChhcnJheSwgdGVzdENhc2UuZXhwZWN0ZWRW
YWx1ZXMpKSB7CisgICAgdGVzdFBhc3NlZCh0ZXN0TmFtZSk7CisgIH0gZWxzZSB7CisgICAgdGVz
dEZhaWxlZCh0ZXN0TmFtZSArICI6IGV4cGVjdGVkICIgKyBhcnJheVRvU3RyaW5nKHRlc3RDYXNl
LmV4cGVjdGVkVmFsdWVzKSArICIsIHJlY2VpdmVkICIgKyBhcnJheVRvU3RyaW5nKGFycmF5KSk7
CisgIH0KK30KKworZnVuY3Rpb24gY2hlY2tEYXRhVmlld0NvbnRlbnRzKHRlc3RLaW5kLCB0ZXN0
Q2FzZSwgZXZlbnQpIHsKKyAgdmFyIGRhdGFWaWV3ID0gZXZlbnQuZGF0YTsKKyAgdmFyIHRlc3RO
YW1lID0gdGVzdEtpbmQgKyAiICIgKyB0ZXN0Q2FzZS5uYW1lICsgIiBjb250YWluaW5nICIgKyB0
ZXN0Q2FzZS5zdWJUeXBlICsgIiBmcm9tIHdvcmtlciB0byBtYWluIHRocmVhZCI7CisgIHZhciBi
eXRlT2Zmc2V0ID0gMDsKKyAgdmFyIGFsbFBhc3NlZCA9IHRydWU7CisgIGZvciAodmFyIGlpID0g
MDsgaWkgPCB0ZXN0Q2FzZS5leHBlY3RlZFZhbHVlcy5sZW5ndGg7ICsraWkpIHsKKyAgICB2YXIg
ZXhwZWN0ZWQgPSB0ZXN0Q2FzZS5leHBlY3RlZFZhbHVlc1tpaV07CisgICAgdmFyIHJlY2VpdmVk
ID0gZGF0YVZpZXdbJ2dldCcgKyB0ZXN0Q2FzZS5zdWJUeXBlXShieXRlT2Zmc2V0KTsKKyAgICBp
ZiAocmVjZWl2ZWQgIT0gZXhwZWN0ZWQpIHsKKyAgICAgIGFsbFBhc3NlZCA9IGZhbHNlOworICAg
ICAgdGVzdEZhaWxlZCh0ZXN0TmFtZSArICI6IGF0IGJ5dGUgb2Zmc2V0ICIgKyBieXRlT2Zmc2V0
ICsgIjogZXhwZWN0ZWQgIiArIGV4cGVjdGVkICsgIiwgcmVjZWl2ZWQgIiArIHJlY2VpdmVkKTsK
KyAgICB9CisgICAgYnl0ZU9mZnNldCArPSB0ZXN0Q2FzZS5lbGVtZW50U2l6ZUluQnl0ZXM7Cisg
IH0KKyAgaWYgKGFsbFBhc3NlZCkgeworICAgIHRlc3RQYXNzZWQodGVzdE5hbWUpOworICB9Cit9
CisKKy8vIE1pc3NpbmcgdGVzdDogY29weSBvciB0cmFuc2ZlciBBcnJheUJ1ZmZlciwgd3JhcCBp
biBEYXRhVmlldyBvbiB0aGlzIGVuZCwgdmVyaWZ5IGNvbnRlbnRzLgorCitmdW5jdGlvbiBub29w
KCkgeworfQorCitmdW5jdGlvbiBjaGVja0FycmF5c0VxdWFsQW5kUGluZ1BvbmcodGVzdEtpbmQs
IHRyYW5zZmVyLCB0ZXN0Q2FzZSwgZXZlbnQpIHsKKyAgY2hlY2tBcnJheXNFcXVhbCh0ZXN0S2lu
ZCwgdGVzdENhc2UsIGV2ZW50KTsKKyAgdmFyIHRyYW5zZmVyYWJsZXMgPSBbXTsKKyAgaWYgKHRy
YW5zZmVyKSB7CisgICAgdHJhbnNmZXJhYmxlcy5wdXNoKGV2ZW50LmRhdGEuYnVmZmVyKTsKKyAg
fQorICB0cnkgeworICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7IGNvbW1hbmQ6ICdwb25nJywgZGF0
YTogZXZlbnQuZGF0YSwgdHJhbnNmZXJhYmxlczogdHJhbnNmZXJhYmxlcyB9LCB0cmFuc2ZlcmFi
bGVzKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHRlc3RGYWlsZWQoInVuZXhwZWN0ZWQgZXhjZXB0
aW9uOiAiICsgZSk7CisgIH0KK30KKworZnVuY3Rpb24gY2hlY2tCdWZmZXJDb250ZW50c0VxdWFs
QW5kUGluZ1BvbmcodGVzdEtpbmQsIHRyYW5zZmVyLCB0ZXN0Q2FzZSwgZXZlbnQpIHsKKyAgY2hl
Y2tCdWZmZXJDb250ZW50c0VxdWFsKHRlc3RLaW5kLCB0ZXN0Q2FzZSwgZXZlbnQpOworICB2YXIg
dHJhbnNmZXJhYmxlcyA9IFtdOworICBpZiAodHJhbnNmZXIpIHsKKyAgICB0cmFuc2ZlcmFibGVz
LnB1c2goZXZlbnQuZGF0YSk7CisgIH0KKyAgdHJ5IHsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2Uo
eyBjb21tYW5kOiAncG9uZycsIGRhdGE6IGV2ZW50LmRhdGEsIHRyYW5zZmVyYWJsZXM6IHRyYW5z
ZmVyYWJsZXMgfSwgdHJhbnNmZXJhYmxlcyk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICB0ZXN0RmFp
bGVkKCJ1bmV4cGVjdGVkIGV4Y2VwdGlvbjogIiArIGUpOworICB9Cit9CisKK2Z1bmN0aW9uIGNo
ZWNrRGF0YVZpZXdDb250ZW50c0FuZFBpbmdQb25nKHRlc3RLaW5kLCB0cmFuc2ZlciwgdGVzdENh
c2UsIGV2ZW50KSB7CisgIGNoZWNrRGF0YVZpZXdDb250ZW50cyh0ZXN0S2luZCwgdGVzdENhc2Us
IGV2ZW50KTsKKyAgdmFyIHRyYW5zZmVyYWJsZXMgPSBbXTsKKyAgaWYgKHRyYW5zZmVyKSB7Cisg
ICAgdHJhbnNmZXJhYmxlcy5wdXNoKGV2ZW50LmRhdGEuYnVmZmVyKTsKKyAgfQorICB0cnkgewor
ICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7IGNvbW1hbmQ6ICdwb25nJywgZGF0YTogZXZlbnQuZGF0
YSwgdHJhbnNmZXJhYmxlczogdHJhbnNmZXJhYmxlcyB9LCB0cmFuc2ZlcmFibGVzKTsKKyAgfSBj
YXRjaCAoZSkgeworICAgIHRlc3RGYWlsZWQoInVuZXhwZWN0ZWQgZXhjZXB0aW9uOiAiICsgZSk7
CisgIH0KK30KKworZGVzY3JpcHRpb24oIlRlc3RzIGNvcHlpbmcgYW5kIHRyYW5zZmVycmluZyB0
eXBlZCBhcnJheXMgYW5kIEFycmF5QnVmZmVycyB0byBhbmQgZnJvbSB3b3JrZXJzIik7CisKKy8v
IFNlZSB3aGV0aGVyIHdvcmtlcnMgYXJlIHN1cHBvcnRlZCBhdCBhbGwKK2lmICh3aW5kb3cuV29y
a2VyKSB7CisgIC8vIFN0YXJ0IHVwIHRoZSB3b3JrZXIKKyAgdmFyIHdvcmtlciA9IG5ldyBXb3Jr
ZXIoJ3Jlc291cmNlcy90eXBlZC1hcnJheS13b3JrZXIuanMnKTsKKyAgd29ya2VyLm9ubWVzc2Fn
ZSA9IGhhbmRsZU1lc3NhZ2U7CisKKyAgLy8gU2VlIHdoZXRoZXIgdHJhbnNmZXJhYmxlcyBhcmUg
c3VwcG9ydGVkCisgIHZhciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoMTYpOworICB0cnkgewor
ICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7IGNvbW1hbmQ6ICdpZ25vcmUnLCBkYXRhOiBidWZmZXIg
fSwgW2J1ZmZlcl0pOworICAgIGlmIChidWZmZXIuYnl0ZUxlbmd0aCA+IDApCisgICAgICB0cmFu
c2ZlclN1cHBvcnRlZCA9IGZhbHNlOworICB9IGNhdGNoIChlKSB7CisgICAgdHJhbnNmZXJTdXBw
b3J0ZWQgPSBmYWxzZTsKKyAgfQorCisgIC8vIEl0ZXJhdGUgZG93biB0aGUgdGVzdHMsIHF1ZXVl
aW5nIHRoZW0gdXAKKyAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRlc3RDYXNlcy5sZW5ndGg7ICsr
aWkpIHsKKyAgICB2YXIgdGVzdENhc2UgPSB0ZXN0Q2FzZXNbaWldOworICAgIHRlc3RDYXNlLnN1
YlRlc3RzID0gW107CisgICAgc2V0dXBUZXN0KHRlc3RDYXNlLCBydW5UZXN0V2l0aERhdGEuYmlu
ZChudWxsLCAnY29weScpLCBjaGVja0FycmF5c0VxdWFsLmJpbmQobnVsbCwgJ2NvcHknKSk7Cisg
ICAgc2V0dXBUZXN0KHRlc3RDYXNlLCBydW5UZXN0V2l0aERhdGEuYmluZChudWxsLCAnY29weUJ1
ZmZlcicpLCBjaGVja0J1ZmZlckNvbnRlbnRzRXF1YWwuYmluZChudWxsLCAnY29weSBBcnJheUJ1
ZmZlcicpKTsKKyAgICBzZXR1cFRlc3QodGVzdENhc2UsIHJ1blRlc3RXaXRoRGF0YS5iaW5kKG51
bGwsICd0cmFuc2ZlcicpLCBjaGVja0FycmF5c0VxdWFsLmJpbmQobnVsbCwgJ3RyYW5zZmVyJykp
OworICAgIHNldHVwVGVzdCh0ZXN0Q2FzZSwgcnVuVGVzdFdpdGhEYXRhLmJpbmQobnVsbCwgJ3Ry
YW5zZmVyQnVmZmVyJyksIGNoZWNrQnVmZmVyQ29udGVudHNFcXVhbC5iaW5kKG51bGwsICd0cmFu
c2ZlciBBcnJheUJ1ZmZlcicpKTsKKworICAgIC8vIFRoZXNlIHR3byBtdXN0IHJ1biBiYWNrLXRv
LWJhY2sKKyAgICBzZXR1cFRlc3QodGVzdENhc2UsIHJ1blRlc3RXaXRoRGF0YS5iaW5kKG51bGws
ICdjb3B5JyksIGNoZWNrQXJyYXlzRXF1YWxBbmRQaW5nUG9uZy5iaW5kKG51bGwsICdjb3B5Jywg
ZmFsc2UpKTsKKyAgICBzZXR1cFRlc3QodGVzdENhc2UsIG5vb3AsIGNoZWNrQXJyYXlzRXF1YWwu
YmluZChudWxsLCAncGluZy1wb25nIHdpdGggY29weScpKTsKKworICAgIC8vIFRoZXNlIHR3byBt
dXN0IHJ1biBiYWNrLXRvLWJhY2sKKyAgICBzZXR1cFRlc3QodGVzdENhc2UsIHJ1blRlc3RXaXRo
RGF0YS5iaW5kKG51bGwsICdjb3B5QnVmZmVyJyksIGNoZWNrQnVmZmVyQ29udGVudHNFcXVhbEFu
ZFBpbmdQb25nLmJpbmQobnVsbCwgJ2NvcHkgQXJyYXlCdWZmZXInLCBmYWxzZSkpOworICAgIHNl
dHVwVGVzdCh0ZXN0Q2FzZSwgbm9vcCwgY2hlY2tCdWZmZXJDb250ZW50c0VxdWFsLmJpbmQobnVs
bCwgJ3BpbmctcG9uZyB3aXRoIGNvcHknKSk7CisKKyAgICAvLyBUaGVzZSB0d28gbXVzdCBydW4g
YmFjay10by1iYWNrCisgICAgc2V0dXBUZXN0KHRlc3RDYXNlLCBydW5UZXN0V2l0aERhdGEuYmlu
ZChudWxsLCAndHJhbnNmZXInKSwgY2hlY2tBcnJheXNFcXVhbEFuZFBpbmdQb25nLmJpbmQobnVs
bCwgJ3RyYW5zZmVyJywgdHJ1ZSkpOworICAgIHNldHVwVGVzdCh0ZXN0Q2FzZSwgbm9vcCwgY2hl
Y2tBcnJheXNFcXVhbC5iaW5kKG51bGwsICdwaW5nLXBvbmcgd2l0aCB0cmFuc2ZlcicpKTsKKwor
ICAgIC8vIFRoZXNlIHR3byBtdXN0IHJ1biBiYWNrLXRvLWJhY2sKKyAgICBzZXR1cFRlc3QodGVz
dENhc2UsIHJ1blRlc3RXaXRoRGF0YS5iaW5kKG51bGwsICd0cmFuc2ZlckJ1ZmZlcicpLCBjaGVj
a0J1ZmZlckNvbnRlbnRzRXF1YWxBbmRQaW5nUG9uZy5iaW5kKG51bGwsICd0cmFuc2ZlciBBcnJh
eUJ1ZmZlcicsIGZhbHNlKSk7CisgICAgc2V0dXBUZXN0KHRlc3RDYXNlLCBub29wLCBjaGVja0J1
ZmZlckNvbnRlbnRzRXF1YWwuYmluZChudWxsLCAncGluZy1wb25nIHdpdGggdHJhbnNmZXInKSk7
CisKKyAgICB0ZXN0UXVldWUucHVzaCh0ZXN0Q2FzZSk7CisKKyAgICAvLyBBZGQganVzdCBhIGNv
dXBsZSBvZiBEYXRhVmlldyB0ZXN0czsgdGhlIGJlaGF2aW9yIG9mIHRoYXQgdmlldyB0eXBlIGlz
IHRob3JvdWdobHkgdGVzdGVkIGVsc2V3aGVyZQorICAgIGlmICh0ZXN0Q2FzZS5uYW1lID09ICJG
bG9hdDMyQXJyYXkiIHx8IHRlc3RDYXNlLm5hbWUgPT0gIkludDMyQXJyYXkiKSB7CisgICAgICB2
YXIgc3ViVHlwZU5hbWUgPSAodGVzdENhc2UubmFtZSA9PSAiRmxvYXQzMkFycmF5IiA/ICJGbG9h
dDMyIiA6ICJJbnQzMiIpOworICAgICAgdmFyIGRhdGFWaWV3VGVzdENhc2UgPSB7IG5hbWU6ICJE
YXRhVmlldyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViVHlwZTogc3ViVHlw
ZU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudFNpemVJbkJ5dGVz
OiB0ZXN0Q2FzZS5lbGVtZW50U2l6ZUluQnl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdFZhbHVlczogdGVzdENhc2UudGVzdFZhbHVlcywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBleHBlY3RlZFZhbHVlczogdGVzdENhc2UuZXhwZWN0ZWRWYWx1ZXMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViVGVzdHM6IFtdIH07CisgICAgICBzZXR1
cFRlc3QoZGF0YVZpZXdUZXN0Q2FzZSwgcnVuVGVzdFdpdGhEYXRhLmJpbmQobnVsbCwgJ2NvcHkn
KSwgY2hlY2tEYXRhVmlld0NvbnRlbnRzLmJpbmQobnVsbCwgJ2NvcHknKSk7CisgICAgICBzZXR1
cFRlc3QoZGF0YVZpZXdUZXN0Q2FzZSwgcnVuVGVzdFdpdGhEYXRhLmJpbmQobnVsbCwgJ3RyYW5z
ZmVyJyksIGNoZWNrRGF0YVZpZXdDb250ZW50cy5iaW5kKG51bGwsICd0cmFuc2ZlcicpKTsKKwor
ICAgICAgLy8gVGhlc2UgdHdvIG11c3QgcnVuIGJhY2stdG8tYmFjaworICAgICAgc2V0dXBUZXN0
KGRhdGFWaWV3VGVzdENhc2UsIHJ1blRlc3RXaXRoRGF0YS5iaW5kKG51bGwsICdjb3B5JyksIGNo
ZWNrRGF0YVZpZXdDb250ZW50c0FuZFBpbmdQb25nLmJpbmQobnVsbCwgJ2NvcHknLCBmYWxzZSkp
OworICAgICAgc2V0dXBUZXN0KGRhdGFWaWV3VGVzdENhc2UsIG5vb3AsIGNoZWNrRGF0YVZpZXdD
b250ZW50cy5iaW5kKG51bGwsICdwaW5nLXBvbmcgd2l0aCBjb3B5JykpOworCisgICAgICAvLyBU
aGVzZSB0d28gbXVzdCBydW4gYmFjay10by1iYWNrCisgICAgICBzZXR1cFRlc3QoZGF0YVZpZXdU
ZXN0Q2FzZSwgcnVuVGVzdFdpdGhEYXRhLmJpbmQobnVsbCwgJ3RyYW5zZmVyJyksIGNoZWNrRGF0
YVZpZXdDb250ZW50c0FuZFBpbmdQb25nLmJpbmQobnVsbCwgJ3RyYW5zZmVyJywgZmFsc2UpKTsK
KyAgICAgIHNldHVwVGVzdChkYXRhVmlld1Rlc3RDYXNlLCBub29wLCBjaGVja0RhdGFWaWV3Q29u
dGVudHMuYmluZChudWxsLCAncGluZy1wb25nIHdpdGggdHJhbnNmZXInKSk7CisKKyAgICAgIHRl
c3RRdWV1ZS5wdXNoKGRhdGFWaWV3VGVzdENhc2UpOworICAgIH0KKyAgfQorCisgIC8vIEtpY2sg
dGhpbmdzIG9mZgorICB0ZXN0UXVldWVbMF0uc3ViVGVzdHNbMF0ucnVubmVyKCk7Cit9IGVsc2Ug
eworICBkZWJ1ZygiV29ya2VycyBub3Qgc3VwcG9ydGVkIC0tIHNraXBwaW5nIHRlc3QiKTsKKyAg
ZmluaXNoVGVzdCgpOworfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>