<?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>198044</bug_id>
          
          <creation_ts>2019-05-20 10:14:21 -0700</creation_ts>
          <short_desc>Replace Util::run with runUntil that takes a bool reference instead of a pointer</short_desc>
          <delta_ts>2019-07-18 16:33:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>aestes</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1537597</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-05-20 10:14:21 -0700</bug_when>
    <thetext>Replace Util::run with Util::runUntil that takes a bool reference instead of a pointer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537609</commentid>
    <comment_count>1</comment_count>
      <attachid>370260</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-05-20 10:29:21 -0700</bug_when>
    <thetext>Created attachment 370260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537613</commentid>
    <comment_count>2</comment_count>
      <attachid>370261</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-05-20 10:33:43 -0700</bug_when>
    <thetext>Created attachment 370261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537631</commentid>
    <comment_count>3</comment_count>
      <attachid>370261</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-05-20 11:02:44 -0700</bug_when>
    <thetext>Comment on attachment 370261
Patch

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

&gt; Tools/TestWebKitAPI/Utilities.h:33
&gt; -void run(bool* done);
&gt; +void runUntil(const bool&amp; done);

I made this (or at least I think it was me) a pointer rather than a reference because I thought it looked better at call sites to use the &amp;. I still kind of feel that way, but not too strongly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537644</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-05-20 11:33:13 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #3)
&gt; Comment on attachment 370261 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=370261&amp;action=review
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Utilities.h:33
&gt; &gt; -void run(bool* done);
&gt; &gt; +void runUntil(const bool&amp; done);
&gt; 
&gt; I made this (or at least I think it was me) a pointer rather than a
&gt; reference because I thought it looked better at call sites to use the &amp;. I
&gt; still kind of feel that way, but not too strongly.

I think the new name makes it clear what is going on, and I think this is a significant improvement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554068</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-07-18 16:32:39 -0700</bug_when>
    <thetext>This has bit rotted, and apparently wasn&apos;t popular.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370260</attachid>
            <date>2019-05-20 10:29:21 -0700</date>
            <delta_ts>2019-05-20 10:33:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198044-20190520102921.patch</filename>
            <type>text/plain</type>
            <size>658685</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI0NTUxNykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDc0NyBAQAorMjAxOS0wNS0yMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgorCisgICAgICAgIFJlcGxhY2UgVXRpbDo6cnVuIHdpdGggVXRpbDo6cnVuVW50
aWwgdGhhdCB0YWtlcyBhIGJvb2wgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTgwNDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIG1ha2VzIHRo
ZSBzeW50YXggbmljZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0VkaXRpbmdUZXN0SGFy
bmVzcy5tbToKKyAgICAgICAgKC1bRWRpdGluZ1Rlc3RIYXJuZXNzIF9leGVjQ29tbWFuZDphcmd1
bWVudDpleHBlY3RFbnRyaWVzOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvSmF2YVNjcmlw
dFRlc3QuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6cnVuSlNUZXN0KToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL0N1c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0Lm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvUmVmUHRyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1J1bkxvb3AuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Fi
b3J0YWJsZVRhc2tRdWV1ZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvTGluZUJyZWFraW5nLm1tOgorICAgICAgICAodGVzdEFGZXdTdHJpbmdzKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvV2ViQ29yZU5TVVJM
U2Vzc2lvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYkNvcmVOU1VSTFNlc3Npb25U
ZXN0OjpTZXRVcCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Fib3V0QmxhbmtMb2FkLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0NhbkhhbmRsZVJlcXVlc3QuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGluQ3Jl
YXRlUGFnZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZVRoZW5UZXJtaW5hdGUuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvQ29va2llTWFuYWdlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25C
YXNpYy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0RlZmVycmVkVmlld0luV2luZG93U3RhdGVDaGFuZ2UubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9EaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGlkTm90SGFuZGxl
S2V5RG93bi5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFn
ZUNhY2hlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFz
aC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9Eb3dubG9hZERlY2lkZURlc3RpbmF0aW9uQ3Jhc2guY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvRW51bWVyYXRlTWVkaWFEZXZpY2VzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VwaGVt
ZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9F
dmFsdWF0ZUphdmFTY3JpcHQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRXZlbnRNb2RpZmllcnMuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvRmFpbGVkTG9hZC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9GaW5kLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0ZpbmRNYXRjaGVzLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmlyc3RNZWFuaW5nZnVsUGFpbnRN
aWxlc3RvbmUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25l
V2l0aERlZmVycmVkU2NyaXB0Lm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvRm9yY2VSZXBhaW50LmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZyYW1l
SGFuZGxlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZyYW1lTUlNRVR5cGVIVE1MLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0ZyYW1lTUlNRVR5cGVQTkcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2VvbG9jYXRpb24uY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJh
Y2suY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0dldFVzZXJNZWRpYVJlcHJvbXB0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSGl0VGVzdFJlc3VsdE5v
ZGVIYW5kbGUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVCYXNpYy5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVGcmFtZUhpdFRlc3QuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHA6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9MYXlvdXRNaWxlc3RvbmVzV2l0aEFsbENvbnRlbnRJbkZyYW1lLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0xvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpsb2FkQWx0ZXJuYXRlSFRNTFN0cmluZyk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRp
cmVjdENhbGxiYWNrLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0xvYWRQYWdlT25DcmFzaC5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZW51VHlw
ZXNGb3JNb3VzZUV2ZW50cy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpidWlsZEFuZFBl
cmZvcm1UZXN0KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Nb2RhbEFs
ZXJ0c1NQSS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Nb3VzZU1vdmVBZnRlckNyYXNoLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L05hdmlnYXRpb25DbGllbnREZWZhdWx0Q3J5cHRvLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L05l
dHdvcmtQcm9jZXNzQ3Jhc2hXaXRoUGVuZGluZ0Nvbm5lY3Rpb24ubW06CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9O
ZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTmV3Rmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTmV3Rmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L05ld0ZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Ob0hpc3RvcnlJdGVt
U2Nyb2xsVG9GcmFnbWVudC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VMb2FkQmFzaWMuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvUGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZS5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9QYXJlbnRGcmFtZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYXN0ZWJvYXJkTm90
aWZpY2F0aW9ucy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BlbmRpbmdBUElSZXF1ZXN0VVJMLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1ByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcml2YXRl
QnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcm9j
ZXNzRGlkVGVybWluYXRlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1JlbG9hZFBhZ2VBZnRlckNyYXNoLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1Jlc2l6ZVJldmVyc2VQYWdpbmF0ZWRXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1Jlc2l6ZVdpbmRvd0FmdGVyQ3Jhc2guY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzcG9uc2l2
ZW5lc3NUaW1lckNyYXNoLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzdG9yZVNlc3Npb25TdGF0ZS5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjcmVhdGVTZXNzaW9uU3RhdGVEYXRhKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1Jlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGEuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6Y3JlYXRlU2Vzc2lvblN0YXRlRGF0YUNvbnRhaW5pbmdGb3JtRGF0
YSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9TY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L1Nob3VsZEtlZXBDdXJyZW50QmFja0ZvcndhcmRMaXN0SXRlbUluTGlzdC5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9TcGFjZWJhclNjcm9sbGluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TdG9wTG9hZGluZ0R1cmlu
Z0RpZEZhaWxQcm92aXNpb25hbExvYWQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVGVybWluYXRlVHdpY2Uu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYktpdDJUZXh0RmllbGRCZWdpbkFuZEVkaXRFZGl0aW5n
VGVzdDo6ZXhlY3V0ZUphdmFTY3JpcHRBbmRDaGVja0RpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvVXNlck1lc3NhZ2UuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViS2l0MlVzZXJN
ZXNzYWdlUm91bmRUcmlwVGVzdDo6U2V0VXApOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2Vi
S2l0MlVzZXJNZXNzYWdlUm91bmRUcmlwVGVzdDo6cm91bmRUcmlwKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9WaWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tOgor
ICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tC
YWNrRm9yd2FyZExpc3QubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dL
UGFnZUNvcHlTZXNzaW9uU3RhdGVXaXRoRmlsdGVyaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OmNyZWF0ZVNlc3Npb25TdGF0ZXMpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlR2V0U2NhbGVG
YWN0b3JOb3RaZXJvLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNyZWF0ZVNlc3Npb25T
dGF0ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VJc1BsYXlpbmdBdWRpby5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9XS1RodW1ibmFpbFZpZXcubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XZWJBcmNoaXZlLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1dlYkNvcmVTdGF0aXN0aWNzV2l0aE5vV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9XaWxsTG9hZC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJLaXQyV2lsbExvYWRU
ZXN0Ojp0ZXN0V2lsbExvYWRVUkxSZXF1ZXN0UmV0dXJuVmFsdWVzKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OldlYktpdDJXaWxsTG9hZFRlc3Q6OnRlc3RXaWxsTG9hZERhdGFSZXF1ZXN0UmV0
dXJuVmFsdWVzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XaWxsU2Vu
ZFN1Ym1pdEV2ZW50LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9y
UHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudURv
d25sb2FkLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51SW1nV2l0aFZpZGVvLm1tOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvbWFjL0N1c3RvbUJ1bmRsZVBhcmFtZXRlci5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21h
Yy9FZGl0b3JDb21tYW5kcy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Gb3JjZUxpZ2h0QXBwZWFyYW5j
ZUluQnVuZGxlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0dldEJhY2tpbmdTY2FsZUZhY3Rvci5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L21hYy9HZXRQSURBZnRlckFib3J0ZWRQcm9jZXNzTGF1bmNoLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L21hYy9JbmplY3RlZEJ1bmRsZUFwcGxlRXZlbnQuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
bWFjL1Jlc3RvcmVTdGF0ZUFmdGVyVGVybWluYXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FW
Rm91bmRhdGlvblByZWZlcmVuY2UubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpBVkZvdW5k
YXRpb25QcmVmOjp0ZXN0V2l0aFByZWZlcmVuY2UpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvQWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2VkVVJMcy5tbToKKyAg
ICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW06CisgICAgICAgIChydW5UZXN0KToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FuaW1hdGVkUmVzaXplLm1t
OgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9BcHBsZVBheS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXBwbGljYXRpb25NYW5pZmVzdC5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQXN5bmNQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2UubW06
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0F0dHJTdHlsZS5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXV0b0xheW91dEludGVncmF0aW9u
Lm1tOgorICAgICAgICAoLVtBdXRvTGF5b3V0V0tXZWJWaWV3IHdhaXRGb3JDb250ZW50U2l6ZUNo
YW5nZVJlc2V0dGluZ1dpZHRoOl0pOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVFZGl0aW5nRGVsZWdhdGUubW06CisgICAg
ICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1
bmRsZVBhcmFtZXRlcnMubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZVJhbmdlSGFuZGxlLm1tOgorICAgICAgICAoVEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2Uu
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKFRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2xvc2VXZWJWaWV3QWZ0ZXJF
bnRlckZ1bGxzY3JlZW4ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Nsb3NlV2ViVmlld0R1cmluZ0Vu
dGVyRnVsbHNjcmVlbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29tbWFuZEJhY2tGb3J3YXJkLm1t
OgorICAgICAgICAoV2ViS2l0Ml9Db21tYW5kQmFja0ZvcndhcmRUZXN0V0tWaWV3Ojpsb2FkRmls
ZXMpOgorICAgICAgICAoVEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0NvbnRlbnRGaWx0ZXJpbmcubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAg
KGRvd25sb2FkVGVzdCk6CisgICAgICAgIChsb2FkQWx0ZXJuYXRlVGVzdCk6CisgICAgICAgICgt
W0xhemlseUxvYWRQbGF0Zm9ybUZyYW1ld29ya3NDb250cm9sbGVyIGV4cGVjdFBhcmVudGFsQ29u
dHJvbHNMb2FkZWQ6bmV0d29ya0V4dGVuc2lvbkxvYWRlZDpdKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbi5tbToK
KyAgICAgICAgKG1ha2VDb250ZW50UnVsZUxpc3QpOgorICAgICAgICAoVEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db29raWVBY2NlcHRQb2xpY3kubW06
CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0Nvb2tpZVByaXZhdGVCcm93c2luZy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ3VzdG9tVXNlckFnZW50Lm1tOgorICAg
ICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9E
YXRhRGV0ZWN0aW9uLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgc3luY2hyb25vdXNseURldGVj
dERhdGFXaXRoVHlwZXM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzeW5jaHJvbm91c2x5UmVt
b3ZlRGF0YURldGVjdGVkTGlua3NdKToKKyAgICAgICAgKGV4cGVjdExpbmtDb3VudCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgIChydW5EZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uRm9ySHlwZXJsaW5rVGhhdFJlZGlyZWN0cyk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EZXZpY2VPcmllbnRhdGlvbi5tbToK
KyAgICAgICAgKHJ1bkRldmljZU9yaWVudGF0aW9uVGVzdCk6CisgICAgICAgIChURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvQWZ0ZXJOZXh0UHJlc2Vu
dGF0aW9uVXBkYXRlQWZ0ZXJDcmFzaC5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbToK
KyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29u
dGV4dDpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBzeW5jaHJvbm91c2x5QWRqdXN0U2Vs
ZWN0aW9uV2l0aERlbHRhOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHN5bmNocm9ub3Vz
bHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6XSk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3VibGVEZWZlcnNMb2FkaW5nLm1tOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW06CisgICAgICAgIChy
dW5UZXN0KToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAoLVtDYW5jZWxEb3dubG9hZFdoaWxl
RGVjaWRpbmdEZXN0aW5hdGlvbkRlbGVnYXRlIF9kb3dubG9hZDpkZWNpZGVEZXN0aW5hdGlvbldp
dGhTdWdnZXN0ZWRGaWxlbmFtZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bRG93
bmxvYWRBdHRyaWJ1dGVUZXN0RGVsZWdhdGUgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dKToK
KyAgICAgICAgKC1bRG93bmxvYWRBdHRyaWJ1dGVUZXN0RGVsZWdhdGUgd2FpdEZvckRvd25sb2Fk
RGlkU3RhcnRdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRvd25sb2FkQXRSYXRlKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkUHJvZ3Jlc3Mu
bW06CisgICAgICAgICgtW0Rvd25sb2FkUHJvZ3Jlc3NUZXN0UnVubmVyIHN1YnNjcmliZUFuZFdh
aXRGb3JQcm9ncmVzc10pOgorICAgICAgICAoLVtEb3dubG9hZFByb2dyZXNzVGVzdFJ1bm5lciB3
YWl0VG9Mb3NlUHJvZ3Jlc3NdKToKKyAgICAgICAgKC1bRG93bmxvYWRQcm9ncmVzc1Rlc3RSdW5u
ZXIgc3RhcnREb3dubG9hZDpleHBlY3RlZExlbmd0aDpdKToKKyAgICAgICAgKC1bRG93bmxvYWRQ
cm9ncmVzc1Rlc3RSdW5uZXIgd2FpdEZvckRvd25sb2FkRGlkQ3JlYXRlRGVzdGluYXRpb25dKToK
KyAgICAgICAgKC1bRG93bmxvYWRQcm9ncmVzc1Rlc3RSdW5uZXIgd2FpdEZvckRvd25sb2FkRmlu
aXNoZWRdKToKKyAgICAgICAgKC1bRG93bmxvYWRQcm9ncmVzc1Rlc3RSdW5uZXIgd2FpdEZvckRv
d25sb2FkQ2FuY2VsZWRdKToKKyAgICAgICAgKC1bRG93bmxvYWRQcm9ncmVzc1Rlc3RSdW5uZXIg
d2FpdEZvckRvd25sb2FkRmFpbGVkXSk6CisgICAgICAgICgtW0Rvd25sb2FkUHJvZ3Jlc3NUZXN0
UnVubmVyIHdhaXRGb3JVcGRhdGVkQ29tcGxldGVkVW5pdENvdW50XSk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EcmFnQW5kRHJvcFRlc3RzLm1tOgorICAgICAg
ICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EdXBs
aWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FeGl0RnVsbHNjcmVlbk9uRW50ZXJQ
aVAubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW06CisgICAgICAgIChmaW5kTWF0
Y2hlcyk6CisgICAgICAgIChyZXBsYWNlTWF0Y2hlcyk6CisgICAgICAgIChURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpeGVkTGF5b3V0U2l6ZS5tbToK
KyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GdWxsc2NyZWVuTGF5
b3V0Q29uc3RyYWludHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5Ub3BDb250ZW50
SW5zZXQubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dlb2xvY2F0aW9uLm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9HZXREaXNwbGF5TWVkaWEubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpHZXREaXNw
bGF5TWVkaWFUZXN0Ojpwcm9tcHRGb3JDYXB0dXJlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0dldFJlc291cmNlRGF0YS5tbToKKyAgICAgICAgKFRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSURCRGVsZXRlUmVjb3Zl
cnkubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0lEQkluZGV4VXBncmFkZVRvVjIubW06CisgICAgICAgIChURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ljb25Mb2FkaW5nRGVsZWdhdGUu
bW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0luZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW06CisgICAgICAgIChURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQkZpbGVO
YW1lLm1tOgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQk11bHRpUHJvY2Vzcy5tbToK
KyAgICAgICAgKGdldE5leHRNZXNzYWdlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNlLm1tOgorICAgICAgICAoVEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdHJ1Y3R1
cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW06CisgICAgICAgIChnZXROZXh0TWVzc2Fn
ZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJT
dXNwZW5kSW1taW5lbnRseS5tbToKKyAgICAgICAgKHJ1blRlc3RBbmRDaGVja1Jlc3VsdCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJUZW1wRmls
ZVNpemUubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0luZGV4ZWREQlVzZXJEZWxldGUubW06CisgICAgICAgIChURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0pJVEVuYWJsZWQubW06Cisg
ICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0phdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkQWx0ZXJuYXRlSFRNTFN0cmlu
Zy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvTG9hZEZpbGVUaGVuUmVsb2FkLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkSW52YWxpZFVSTFJlcXVlc3Qu
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZUNsZWFyLm1tOgorICAgICAgICAoVEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3Jh
Z2VEYXRhYmFzZVRyYWNrZXIubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZU51bGxFbnRyaWVzLm1tOgorICAg
ICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9M
b2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUXVpcmtUZXN0Lm1tOgor
ICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9NZWRpYUJ1ZmZlcmluZ1BvbGljeS5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTWVzc2FnZVBvcnRQcm92aWRlcnMubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL01vZGFsQWxlcnRzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tOgorICAgICAg
ICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZp
Z2F0aW9uQWN0aW9uLm1tOgorICAgICAgICAoLVtOYXZpZ2F0aW9uQWN0aW9uVGVzdERlbGVnYXRl
IHdhaXRGb3JOYXZpZ2F0aW9uQWN0aW9uQ2FsbGJhY2tdKToKKyAgICAgICAgKC1bTmF2aWdhdGlv
bkFjdGlvblRlc3REZWxlZ2F0ZSB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl0pOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmV0d29ya1Byb2Nlc3NDcmFzaE5v
blBlcnNpc3RlbnREYXRhU3RvcmUubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05vd1BsYXlpbmcubW06CisgICAgICAgIChnZXRO
b3dQbGF5aW5nQ2xpZW50KToKKyAgICAgICAgKE5vd1BsYXlpbmdUZXN0OjpydW5TY3JpcHRXaXRo
VXNlckdlc3R1cmUpOgorICAgICAgICAoTm93UGxheWluZ1Rlc3Q6OnJ1blNjcmlwdFdpdGhvdXRV
c2VyR2VzdHVyZSk6CisgICAgICAgIChOb3dQbGF5aW5nVGVzdDo6ZXhlY3V0ZUFuZFdhaXRGb3JQ
bGF5aW5nKToKKyAgICAgICAgKE5vd1BsYXlpbmdUZXN0OjpleGVjdXRlQW5kV2FpdEZvcldlYlZp
ZXdUb0JlY29tZU5vd1BsYXlpbmcpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvTm93UGxheWluZ0NvbnRyb2xzVGVzdHMubW06CisgICAgICAgICgtW05vd1BsYXlp
bmdUZXN0V2ViVmlldyBoYXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbl0pOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvT2JzZXJ2ZWRSZW5kZXJpbmdQcm9ncmVzc0V2
ZW50c0FmdGVyQ3Jhc2gubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL09wZW5BbmRDbG9zZVdpbmRvdy5tbToKKyAgICAgICAgKFRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGFyc2VyWWll
bGRUb2tlblRlc3RzLm1tOgorICAgICAgICAod2FpdEZvckRlbGF5KToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Bhc3RlSW1hZ2UubW06CisgICAgICAgICgtW1Rl
c3RXS1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6YWZ0ZXJFdmFsdWF0aW5nU2NyaXB0Ol0pOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGljdHVyZUluUGljdHVyZURl
bGVnYXRlLm1tOgorICAgICAgICAod2FpdFVudGlsT25Mb2FkSXNDb21wbGV0ZWQpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9QbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMubW06CisgICAgICAgIChURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZWZlcmVuY2VzLm1t
OgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9QcmVmZXJyZWRBdWRpb0J1ZmZlclNpemUubW06CisgICAgICAgIChQcmVmZXJyZWRBdWRp
b0J1ZmZlclNpemU6OnJ1blBsYXlpbmdUZXN0V2l0aFBhZ2VOYW1lZCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVwYXJlRm9yTW92ZVRvV2luZG93Lm1tOgor
ICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Qcm9jZXNzU3VzcGVuZE1lZGlhQnVmZmVyaW5nLm1tOgorICAgICAgICAoVEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdh
dGlvbi5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb3Zp
c2lvbmFsVVJMTm90Q2hhbmdlLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm94eS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUXVp
Y2tMb29rLm1tOgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgIChURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1t
OgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9SZW5kZXJlZEltYWdlV2l0aE9wdGlvbnMubW06CisgICAgICAgIChydW5UZXN0V2l0aFdp
ZHRoKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmlu
Z1Byb2dyZXNzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9SZXBhcmVudFdlYlZpZXdUaW1lb3V0Lm1tOgorICAgICAgICAoVEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4
dElucHV0Q29udGV4dC5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1
ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzeW5j
aHJvbm91c2x5Rm9jdXNUZXh0SW5wdXRDb250ZXh0Ol0pOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWlyZXNVc2VyQWN0aW9uRm9yUGxheWJhY2subW06Cisg
ICAgICAgIChSZXF1aXJlc1VzZXJBY3Rpb25Gb3JQbGF5YmFja1Rlc3Q6OnRlc3RWaWRlb1dpdGhB
dWRpbyk6CisgICAgICAgIChSZXF1aXJlc1VzZXJBY3Rpb25Gb3JQbGF5YmFja1Rlc3Q6OnRlc3RW
aWRlb1dpdGhvdXRBdWRpbyk6CisgICAgICAgIChSZXF1aXJlc1VzZXJBY3Rpb25Gb3JQbGF5YmFj
a1Rlc3Q6OnRlc3RBdWRpb09ubHkpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbToKKyAgICAgICAgKFRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzcG9uc2l2ZW5lc3NUaW1l
ci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJs
eS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzdG9yZVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0
aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y3JlYXRlU2Vzc2lvblN0YXRlRGF0YSk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1J1bk9wZW5QYW5lbC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Fm
ZUJyb3dzaW5nLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9TY2hlbWVSZWdpc3RyeS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vy
dmljZVdvcmtlckJhc2ljLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0ubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnMubW06CisgICAgICAgIChU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nocmlua1Rv
Rml0Lm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TbmFwc2hvdFN0b3JlLm1tOgorICAgICAgICAoLVtTbmFwc2hvdFRlc3RXS1dl
YlZpZXcgc3luY2hyb25vdXNseUZvcmNlUmVwYWludF0pOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU3RvcFN1c3BlbmRSZXN1bWVBbGxNZWRpYS5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU3RvcmFnZVF1b3RhLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvU3RvcmVCbG9iVGhlbkRlbGV0ZS5tbToKKyAgICAgICAgKFRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbToK
KyAgICAgICAgKFRFU1QpOgorICAgICAgICAodGVzdERpZFJlc2lnbklucHV0RWxlbWVudFN0cm9u
Z1Bhc3N3b3JkQXBwZWFyYW5jZUFmdGVyRXZhbHVhdGluZ0phdmFTY3JpcHQpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlckNvbnRlbnRDb250cm9sbGVyLm1t
OgorICAgICAgICAoVEVTVCk6CisgICAgICAgIChleHBlY3RTY3JpcHRFdmFsdWF0ZXNUb0NvbG9y
KToKKyAgICAgICAgKHdhaXRGb3JNZXNzYWdlcyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Vc2VyQ29udGVudFdvcmxkLm1tOgorICAgICAgICAoVEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VySW5pdGlhdGVkQWN0
aW9uSW5OYXZpZ2F0aW9uQWN0aW9uLm1tOgorICAgICAgICAoVXNlckluaXRpYXRlZEFjdGlvblRl
c3Q6OmxvYWRUZXN0KToKKyAgICAgICAgKFRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbToKKyAgICAgICAgKE1lZGlh
Q2FwdHVyZURpc2FibGVkVGVzdDo6bG9hZFRlc3RBbmRXYWl0Rm9yTWVzc2FnZSk6CisgICAgICAg
IChURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNl
ck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tOgorICAgICAgICAoTWVkaWFDYXB0dXJlU2lt
dWxhdGVGYWlsZWRTYW5kYm94Ojpsb2FkVGVzdEFuZFdhaXRGb3JNZXNzYWdlKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1t
OgorICAgICAgICAoLVtWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IGV4cGVjdENvbnRy
b2xzTWFuYWdlcjphZnRlclJlY2VpdmluZ01lc3NhZ2U6XSk6CisgICAgICAgICgtW1ZpZGVvQ29u
dHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdW
aWRlb3M6XSk6CisgICAgICAgICgtW1ZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcgY29u
dHJvbGxlZEVsZW1lbnRJRF0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5t
bToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBzeW5jaHJvbm91c2x5SW5zZXJ0QXR0YWNobWVu
dFdpdGhGaWxlV3JhcHBlcjpjb250ZW50VHlwZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmll
dyBzeW5jaHJvbm91c2x5SW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlbmFtZTpjb250ZW50VHlwZTpk
YXRhOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IGF0dGFjaG1lbnRFbGVtZW50TWlkUG9p
bnRdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBhdHRhY2htZW50RWxlbWVudFNpemVdKToK
KyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBpbWFnZUVsZW1lbnRTaXplXSk6CisgICAgICAgICgt
W19XS0F0dGFjaG1lbnQgc3luY2hyb25vdXNseVNldEZpbGVXcmFwcGVyOm5ld0NvbnRlbnRUeXBl
OmVycm9yOl0pOgorICAgICAgICAoLVtfV0tBdHRhY2htZW50IHN5bmNocm9ub3VzbHlTZXREYXRh
Om5ld0NvbnRlbnRUeXBlOm5ld0ZpbGVuYW1lOmVycm9yOl0pOgorICAgICAgICAoLVtOU0l0ZW1Q
cm92aWRlciBleHBlY3RUeXBlOndpdGhEYXRhOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRl
bnRFeHRlbnNpb25TdG9yZS5tbToKKyAgICAgICAgKFRFU1RfRik6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMubW06
CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLSFRUUENvb2tpZVN0b3JlLm1tOgorICAgICAgICAocnVuVGVzdFdpdGhXZWJzaXRlRGF0
YVN0b3JlKToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAocnVuV0tIVFRQQ29va2llU3RvcmVX
aXRob3V0UHJvY2Vzc1Bvb2wpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAg
KC1bTmF2aWdhdGlvblJlc3BvbnNlVGVzdERlbGVnYXRlIHdhaXRGb3JOYXZpZ2F0aW9uUmVzcG9u
c2VDYWxsYmFja10pOgorICAgICAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VUZXN0RGVsZWdhdGUg
d2FpdEZvck5hdmlnYXRpb25GaW5pc2hlZENhbGxiYWNrXSk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW06CisgICAgICAgIChURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlld1Jlc2l6ZUNy
YXNoLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1BERlZpZXdTdGFibGVQcmVzZW50YXRpb25VcGRhdGVDYWxsYmFjay5tbToK
KyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm8ubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
VVJMU2NoZW1lSGFuZGxlci0xLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgIChjaGVja0Nh
bGxTZXF1ZW5jZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
S1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbToKKyAgICAgICAgKC1bQ2FuZGlkYXRlVGVzdFdlYlZp
ZXcgaW5zZXJ0Q2FuZGlkYXRlc0FuZFdhaXRGb3JSZXNwb25zZTpyYW5nZTpdKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
bW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dLV2ViVmlld0RlZmF1bHROYXZpZ2F0aW9uRGVsZWdhdGUubW06CisgICAgICAgIChU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmll
d0RpYWdub3N0aWNMb2dnaW5nLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW06
CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLV2ViVmlld0ZpbmRTdHJpbmcubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0Zp
cnN0UmVzcG9uZGVyVGVzdHMubW06CisgICAgICAgICgtW0ZpcnN0UmVzcG9uZGVyVGVzdGluZ1Zp
ZXcgaW5pdFdpdGhGcmFtZTpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdTbmFwc2hvdC5tbToK
KyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1tOgorICAgICAgICAoLVtOYXZpZ2F0aW9uVGVzdERlbGVn
YXRlIHdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkNv
bnRlbnRQcm9jZXNzRGlkVGVybWluYXRlLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJDcnlwdG9NYXN0ZXJLZXkubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dlYkdMUG9saWN5Lm1tOgorICAgICAgICAocnVuVGVzdCk6CisgICAg
ICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dl
YlByb2Nlc3NLaWxsSURCQ2xlYW51cC5tbToKKyAgICAgICAgKGdldE5leHRNZXNzYWdlKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVD
dXN0b21QYXRocy5tbToKKyAgICAgICAgKGdldE5leHRNZXNzYWdlKToKKyAgICAgICAgKHJ1bldl
YnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocyk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbToKKyAgICAg
ICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dL
SW5wdXREZWxlZ2F0ZS5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5tbToKKyAg
ICAgICAgKFRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdh
Y3kvaW9zL0F1ZGlvU2Vzc2lvbkNhdGVnb3J5SU9TLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvaW9z
L1Njcm9sbGluZ0RvZXNOb3RQYXVzZU1lZGlhLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvaW9zL1Nu
YXBzaG90VmlhUmVuZGVySW5Db250ZXh0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvbWFjL0FjY2Vz
c2luZ1Bhc3RlZEltYWdlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvbWFjL0Nsb3NpbmdXZWJWaWV3
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvbWFjL0RlYWxsb2NXZWJWaWV3SW5FdmVudExpc3RlbmVy
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvbWFjL0Rvd25sb2FkVGhyZWFkLm1tOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRPYmpDL0N1c3RvbVByb3RvY29sc0ludmFsaWRTY2hlbWUubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdE9iakMv
Q3VzdG9tUHJvdG9jb2xzVGVzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnJ1blRlc3Qp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRPYmpDL1ByZXZlbnRJbWFnZUxvYWRXaXRoQXV0b1Jlc2l6aW5nLm1tOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRPYmpDL1VzZXJDb250ZW50VGVzdC5tbToKKyAgICAgICAgKFRFU1RfRik6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRPYmpDL1dLQnJvd3NpbmdDb250ZXh0
TG9hZERlbGVnYXRlVGVzdC5tbToKKyAgICAgICAgKFRFU1RfRik6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9pb3MvQWNjZXNzaWJpbGl0eVRlc3RzSU9TLm1tOgorICAgICAgICAoLVtX
S1dlYlZpZXcgcmVjdHNBdFNlbGVjdGlvbk9mZnNldDp3aXRoVGV4dDpdKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9BY3Rpb25TaGVldFRlc3RzLm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpwcmVzZW50QWN0aW9u
U2hlZXRBbmRDaG9vc2VBY3Rpb24pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9z
L0RyYWdBbmREcm9wVGVzdHNJT1MubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9Gb2N1c1ByZXNlcnZhdGlvblRlc3Rz
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tOgorICAgICAgICAod2ViVmll
d1dpdGhBdXRvZm9jdXNlZElucHV0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1JlbmRlcmluZ1Byb2dyZXNzVGVzdHMu
bW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9T
Y3JvbGxWaWV3SW5zZXRUZXN0cy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1NldFRpbWVvdXRGdW5jdGlvbi5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL1VJUGFzdGVib2FyZFRlc3RzLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvV0tTY3JvbGxWaWV3RGVs
ZWdhdGUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL2lvcy9XS1Njcm9sbFZpZXdUZXN0cy5tbToKKyAgICAgICAgKFRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1dLV2ViVmlld0F1dG9maWxsVGVz
dHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OnJ1blRlc3QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL0JhY2tGb3J3YXJkTGlzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NhbmNlbExvYWRGcm9tUmVzb3Vy
Y2VMb2FkRGVsZWdhdGUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9DYW5kaWRhdGVUZXN0cy5tbToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0Nsb3NlTmV3V2luZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVsZWdhdGUubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9D
b250ZW50RmlsdGVyaW5nLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6bG9hZEFsdGVybmF0
ZVRlc3QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2Fu
Q29weVVSTC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRhZ3MubW06
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9Dcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVBY2Nlc3MubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9E
T01IVE1MVGFibGVDZWxsQ2VsbEFib3ZlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRE9NSFRNTFZpZGVvRWxlbWVu
dFdyYXBwZXIubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9ET01Ob2RlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRE9NUmFuZ2VPZlN0
cmluZy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0RldmljZVNjYWxlRmFjdG9ySW5EYXNoYm9hcmRSZWdpb25zLm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRmlyc3RS
ZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU3Vw
cHJlc3Npb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Gb250TWFuYWdlclRlc3RzLm1tOgorICAgICAgICAoLVtU
ZXN0V0tXZWJWaWV3IHR5cGluZ0F0dHJpYnV0ZXNdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9GcmFnbWVudE5hdmlnYXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9v
bUluaXRpYWxGcmFtZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkZ1bGxzY3JlZW5ab29t
SW5pdGlhbEZyYW1lOjpydW5UZXN0KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9IVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hUTUxGb3JtQ29sbGVjdGlv
bk5hbWVkSXRlbS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0luc3BlY3RvckJhci5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0lzTmF2
aWdhdGlvbkFjdGlvblRydXN0ZWQubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9KU1dyYXBwZXJGb3JOb2RlSW5XZWJG
cmFtZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0xlZ2FjeURyYWdBbmREcm9wVGVzdHMubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjp3ZWJWaWV3QWZ0ZXJQZXJmb3JtaW5nRHJhZ09wZXJhdGlvbik6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTGltaXRUaXRsZVNpemUubW06CisgICAgICAg
IChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Mb2FkSW52YWxpZFVS
TFJlcXVlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Mb2FkV2ViQXJjaGl2ZS5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL01lZGlh
UGxheWJhY2tTbGVlcEFzc2VydGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL01lbW9yeUNhY2hlRGlzYWJsZVdp
dGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTWVtb3J5Q2FjaGVQcnVuZVdp
dGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTmF2aWdhdG9yTGFuZ3VhZ2Uu
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9Ob1BvbGljeURlbGVnYXRlUmVzcG9uc2UubW06CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9QYWdl
VmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXM6OnJ1blRlc3QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1JlbmRlcmVkSW1hZ2VGcm9tRE9NTm9kZS5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1JlbmRlcmVkSW1hZ2VGcm9tRE9NUmFuZ2UubW06CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TZXRE
b2N1bWVudFVSSS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1NpbXBsaWZ5TWFya3VwLm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3Rh
cnRMb2FkSW5EaWRGYWlsUHJvdmlzaW9uYWxMb2FkLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3RvcExvYWRpbmdG
cm9tRGlkRmluaXNoTG9hZGluZy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1N0b3BMb2FkaW5nRnJvbURpZFJlY2Vp
dmVSZXNwb25zZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dLV2ViVmlld01hY0VkaXRpbmdUZXN0cy5tbToKKyAg
ICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlNjcmlw
dE9iamVjdERlc2NyaXB0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0Nsb3NlSW5zaWRlRGlkRmlu
aXNoTG9hZEZvckZyYW1lLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0RpZENyZWF0ZUphdmFTY3JpcHRD
b250ZXh0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dlYlZpZXdJY29uTG9hZGluZy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFNlbmRTdWJtaXRFdmVu
dC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL1dpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlhLm1tOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9VdGlsaXRpZXMu
aDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUu
bW06CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2FpdEZvckRpZFN0YXJ0UHJv
dmlzaW9uYWxOYXZpZ2F0aW9uXSk6CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUg
d2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF90ZXN0
X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3N5bmNocm9ub3Vz
bHlFeGVjdXRlRWRpdENvbW1hbmQ6YXJndW1lbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBv
YmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgb2Jq
ZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdFdpdGhVc2VyR2VzdHVyZTpdKToKKyAgICAgICAgKC1b
VGVzdFdLV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmll
dyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV0pOgorICAgICAgICAoLVtUZXN0V0tXZWJW
aWV3IHNlbGVjdGlvblJlY3RzQWZ0ZXJQcmVzZW50YXRpb25VcGRhdGVdKToKKyAgICAgICAgKC1b
VGVzdFdLV2ViVmlldyBhY3RpdmF0ZWRFbGVtZW50QXRQb3NpdGlvbjpdKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL2NvY29hL1V0aWxpdGllc0NvY29hLm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuVW50aWwpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2dlbmVyaWMvVXRpbGl0aWVzR2Vu
ZXJpYy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4pOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvaW9zL0RyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tOgorICAgICAgICAo
LVtEcmFnQW5kRHJvcFNpbXVsYXRvciBydW5Gcm9tOnRvOmFkZGl0aW9uYWxJdGVtUmVxdWVzdExv
Y2F0aW9uczpdKToKKyAgICAgICAgKC1bRHJhZ0FuZERyb3BTaW11bGF0b3IgZW5zdXJlSW5wdXRT
ZXNzaW9uXSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvRHJhZ0FuZERyb3BTaW11bGF0
b3JNYWMubW06CisgICAgICAgICgtW0RyYWdBbmREcm9wVGVzdFdLV2ViVmlldyB3YWl0Rm9yUGVu
ZGluZ01vdXNlRXZlbnRzXSk6CisgICAgICAgICgtW0RyYWdBbmREcm9wU2ltdWxhdG9yIHJ1bkZy
b206dG86XSk6CisgICAgICAgICgtW0RyYWdBbmREcm9wU2ltdWxhdG9yIHJlY2VpdmVQcm9taXNl
ZEZpbGVzXSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvV2ViS2l0QWdub3N0aWNUZXN0
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViS2l0QWdub3N0aWNUZXN0Ojp3YWl0Rm9y
TG9hZFRvRmluaXNoKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYktpdEFnbm9zdGljVGVz
dDo6d2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGUpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvd2luL1V0aWxpdGllc1dpbi5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4pOgorCiAyMDE5LTA1LTIwICBMdWRvdmljbyBkZSBOaXR0aXMgIDxsdWRvdmljby5kZW5pdHRp
c0Bjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtXUEVdW1F0XSBVc2UgQysrMTcgaW5zdGVhZCBv
ZiBDKysxNApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9FZGl0aW5nVGVzdEhhcm5lc3MubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9FZGl0aW5nVGVzdEhhcm5lc3MubW0J
KHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvRWRpdGluZ1Rlc3RIYXJu
ZXNzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xODgsNyArMTg4LDcgQEAgLSAodm9pZClfZXhlY0Nv
bW1hbmQ6KE5TU3RyaW5nICopY29tbWFuZAogICAgICAgICByZXN1bHQgPSBzdWNjZXNzOwogICAg
ICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgW193ZWJW
aWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKIApJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9KYXZhU2NyaXB0VGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9KYXZhU2NyaXB0VGVzdC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvSmF2YVNjcmlwdFRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Miw3ICs3Miw3
IEBAIHN0YXRpYyB2b2lkIGphdmFTY3JpcHRDYWxsYmFjayhXS1NlcmlhbGkKIHsKICAgICBKYXZh
U2NyaXB0Q2FsbGJhY2tDb250ZXh0IGNvbnRleHQ7CiAgICAgV0tQYWdlUnVuSmF2YVNjcmlwdElu
TWFpbkZyYW1lKHBhZ2UsIFV0aWw6OnRvV0soc2NyaXB0KS5nZXQoKSwgJmNvbnRleHQsIGphdmFT
Y3JpcHRDYWxsYmFjayk7Ci0gICAgVXRpbDo6cnVuKCZjb250ZXh0LmRpZEZpbmlzaCk7CisgICAg
cnVuVW50aWwoY29udGV4dC5kaWRGaW5pc2gpOwogCiAgICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBK
U1N0cmluZ0dldE1heGltdW1VVEY4Q1N0cmluZ1NpemUoY29udGV4dC5hY3R1YWxTdHJpbmcuZ2V0
KCkpOwogICAgIGF1dG8gYnVmZmVyID0gc3RkOjptYWtlX3VuaXF1ZTxjaGFyW10+KGJ1ZmZlclNp
emUpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9VdGlsaXRpZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1V0aWxpdGllcy5oCShyZXZpc2lvbiAyNDU1MTYpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1V0aWxpdGllcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMCAr
MjYsMTMgQEAKICNwcmFnbWEgb25jZQogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Ci1uYW1l
c3BhY2UgVXRpbCB7CisKKyNkZWZpbmUgSEFWRV9SVU5fVU5USUwgMSAvLyBUZW1wb3JhcnkgdG8g
aGVscCBub3QgYnJlYWsgYnVpbGQgd2hpbGUgY2hhbmdpbmcgdG8gcnVuVW50aWwuCiAKIC8vIFJ1
bnMgYSBwbGF0Zm9ybSBydW5sb29wIHVudGlsIHRoZSAnZG9uZScgZmxhZyBpcyB0cnVlLgotdm9p
ZCBydW4oYm9vbCogZG9uZSk7Cit2b2lkIHJ1blVudGlsKGNvbnN0IGJvb2wmIGRvbmUpOworCitu
YW1lc3BhY2UgVXRpbCB7CiAKIC8vIFJ1bnMgYSBwbGF0Zm9ybSBydW5sb29wIGBjb3VudGAgbnVt
YmVyIG9mIHNwaW5zLgogdm9pZCBzcGluUnVuTG9vcCh1aW50NjRfdCBjb3VudCA9IDEpOwpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0b21Qcm90b2NvbHNTeW5jWEhSVGVzdC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0N1c3RvbVByb3RvY29s
c1N5bmNYSFJUZXN0Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL0N1c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC02
NSw3ICs2NSw3IEBAIFRFU1QoV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3QsIFN5bmNYSFIKIAog
ICAgIFdLUGFnZUxvYWRVUkwod2tWaWV3LmdldCgpLnBhZ2VSZWYsIFV0aWw6OmNyZWF0ZVVSTEZv
clJlc291cmNlKCJjdXN0b20tcHJvdG9jb2wtc3luYy14aHIiLCAiaHRtbCIpKTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbCh0ZXN0RmluaXNoZWQpOwogICAgIFtUZXN0UHJvdG9jb2wgdW5yZWdpc3Rlcl07
CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcAkocmV2
aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTc4LDcgKzU3OCw3IEBAIFRFU1QoV1RGX1JlZlB0ciwgUmVs
ZWFzZUluTm9uTWFpblRocmVhZCkKIHsKICAgICBkb25lID0gZmFsc2U7CiAgICAgVGhyZWFkOjpj
cmVhdGUoIiIsIFtvYmplY3QgPSBUaHJlYWRTYWZlUmVmQ291bnRlZE9iamVjdDo6Y3JlYXRlKCld
IHsgfSk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKIAogICAgIEVYUEVDVF9GQUxTRShpc0Rlc3Ryb3llZElu
TWFpblRocmVhZCk7CiB9CkBAIC01ODgsNyArNTg4LDcgQEAgVEVTVChXVEZfUmVmUHRyLCBSZWxl
YXNlSW5Ob25NYWluVGhyZWFkRAogICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
OwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBUaHJlYWQ6OmNyZWF0ZSgiIiwgW29iamVjdCA9IE1h
aW5UaHJlYWRTYWZlUmVmQ291bnRlZE9iamVjdDo6Y3JlYXRlKCldIHsgfSk7Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKIAogICAgIEVYUEVDVF9UUlVFKGlzRGVzdHJveWVkSW5NYWluVGhyZWFkKTsKIH0KSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1J1bkxvb3AuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1J1bkxvb3AuY3BwCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9SdW5Mb29wLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBURVNUKFdURl9SdW5Mb29wLCBEZWFkbG9jaykK
ICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYXB0dXJlXSB7IH0pOwogICAgIH0K
IAotICAgIFV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICBydW5VbnRpbCh0ZXN0RmluaXNo
ZWQpOwogfQogCiBjbGFzcyBEZXJpdmVkT25lU2hvdFRpbWVyIDogcHVibGljIFJ1bkxvb3A6OlRp
bWVyPERlcml2ZWRPbmVTaG90VGltZXI+IHsKQEAgLTgxLDcgKzgxLDcgQEAgVEVTVChXVEZfUnVu
TG9vcCwgT25lU2hvdFRpbWVyKQogICAgIGJvb2wgdGVzdEZpbmlzaGVkID0gZmFsc2U7CiAgICAg
RGVyaXZlZE9uZVNob3RUaW1lciB0aW1lcih0ZXN0RmluaXNoZWQpOwogICAgIHRpbWVyLnN0YXJ0
T25lU2hvdCgxMDBfbXMpOwotICAgIFV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICBydW5V
bnRpbCh0ZXN0RmluaXNoZWQpOwogfQogCiBjbGFzcyBEZXJpdmVkUmVwZWF0aW5nVGltZXIgOiBw
dWJsaWMgUnVuTG9vcDo6VGltZXI8RGVyaXZlZFJlcGVhdGluZ1RpbWVyPiB7CkBAIC0xMTMsNyAr
MTEzLDcgQEAgVEVTVChXVEZfUnVuTG9vcCwgUmVwZWF0aW5nVGltZXIpCiAgICAgYm9vbCB0ZXN0
RmluaXNoZWQgPSBmYWxzZTsKICAgICBEZXJpdmVkUmVwZWF0aW5nVGltZXIgdGltZXIodGVzdEZp
bmlzaGVkKTsKICAgICB0aW1lci5zdGFydFJlcGVhdGluZygxMF9tcyk7Ci0gICAgVXRpbDo6cnVu
KCZ0ZXN0RmluaXNoZWQpOworICAgIHJ1blVudGlsKHRlc3RGaW5pc2hlZCk7CiAgICAgQVNTRVJU
X0ZBTFNFKHRpbWVyLmlzQWN0aXZlKCkpOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvQWJvcnRhYmxlVGFza1F1ZXVlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQWJvcnRhYmxlVGFza1F1ZXVlLmNwcAkocmV2
aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Fib3J0
YWJsZVRhc2tRdWV1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAgVEVTVChB
Ym9ydGFibGVUYXNrUXVldWUsIEFzeW5jVGFza3MpCiAgICAgICAgIFdURjo6VGhyZWFkOjpjcmVh
dGUoImF0cS1iYWNrZ3JvdW5kIiwgV1RGTW92ZShiYWNrZ3JvdW5kVGhyZWFkRnVuY3Rpb24pKS0+
ZGV0YWNoKCk7CiAgICAgfSk7CiAKLSAgICBVdGlsOjpydW4oJnRlc3RGaW5pc2hlZCk7CisgICAg
cnVuVW50aWwodGVzdEZpbmlzaGVkKTsKIH0KIAogc3RydWN0IEZhbmN5UmVzcG9uc2UgewpAQCAt
MTI3LDcgKzEyNyw3IEBAIFRFU1QoQWJvcnRhYmxlVGFza1F1ZXVlLCBTeW5jVGFza3MpCiAgICAg
ICAgIFdURjo6VGhyZWFkOjpjcmVhdGUoImF0cS1iYWNrZ3JvdW5kIiwgV1RGTW92ZShiYWNrZ3Jv
dW5kVGhyZWFkRnVuY3Rpb24pKS0+ZGV0YWNoKCk7CiAgICAgfSk7CiAKLSAgICBVdGlsOjpydW4o
JnRlc3RGaW5pc2hlZCk7CisgICAgcnVuVW50aWwodGVzdEZpbmlzaGVkKTsKIH0KIAogdGVtcGxh
dGUgPHR5cGVuYW1lIFRocmVhZEVudW0+CkBAIC0yMzMsNyArMjMzLDcgQEAgVEVTVChBYm9ydGFi
bGVUYXNrUXVldWUsIEFib3J0KQogICAgICAgICBtYWluVGhyZWFkQ29udGV4dC55aWVsZFRvVGhy
ZWFkKFRlc3RUaHJlYWQ6OkJhY2tncm91bmQpOwogICAgIH0pOwogCi0gICAgVXRpbDo6cnVuKCZ0
ZXN0RmluaXNoZWQpOworICAgIHJ1blVudGlsKHRlc3RGaW5pc2hlZCk7CiB9CiAKIFRFU1QoQWJv
cnRhYmxlVGFza1F1ZXVlLCBBYm9ydEJlZm9yZVN5bmNUYXNrUnVuKQpAQCAtMjY4LDcgKzI2OCw3
IEBAIFRFU1QoQWJvcnRhYmxlVGFza1F1ZXVlLCBBYm9ydEJlZm9yZVN5bmMKICAgICAgICAgdGFz
a1F1ZXVlLnN0YXJ0QWJvcnRpbmcoKTsKICAgICB9KTsKIAotICAgIFV0aWw6OnJ1bigmdGVzdEZp
bmlzaGVkKTsKKyAgICBydW5VbnRpbCh0ZXN0RmluaXNoZWQpOwogfQogCiBURVNUKEFib3J0YWJs
ZVRhc2tRdWV1ZSwgQWJvcnRlZEJ5U3luY1Rhc2tIYW5kbGVyKQpAQCAtMzEwLDcgKzMxMCw3IEBA
IFRFU1QoQWJvcnRhYmxlVGFza1F1ZXVlLCBBYm9ydGVkQnlTeW5jVGEKICAgICAgICAgV1RGOjpU
aHJlYWQ6OmNyZWF0ZSgiYXRxLWJhY2tncm91bmQiLCBXVEZNb3ZlKGJhY2tncm91bmRUaHJlYWRG
dW5jdGlvbikpLT5kZXRhY2goKTsKICAgICB9KTsKIAotICAgIFV0aWw6OnJ1bigmdGVzdEZpbmlz
aGVkKTsKKyAgICBydW5VbnRpbCh0ZXN0RmluaXNoZWQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmls
ZU1vbml0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9GaWxlTW9uaXRvci5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3
MSw3ICsxNzEsNyBAQCBURVNUX0YoRmlsZU1vbml0b3JUZXN0LCBEZXRlY3RDaGFuZ2UpCiAgICAg
ICAgICAgICBkaWRGaW5pc2ggPSB0cnVlOwogICAgIH0pOwogCi0gICAgVXRpbDo6cnVuKCZkaWRG
aW5pc2gpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaCk7CiAKICAgICBFWFBFQ1RfVFJVRShvYnNl
cnZlZEZpbGVNb2RpZmljYXRpb24pOwogICAgIEVYUEVDVF9GQUxTRShvYnNlcnZlZEZpbGVEZWxl
dGlvbik7CkBAIC0yMTMsNyArMjEzLDcgQEAgVEVTVF9GKEZpbGVNb25pdG9yVGVzdCwgRGV0ZWN0
TXVsdGlwbGVDaAogICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKICAgICB9KTsKIAotICAg
IFV0aWw6OnJ1bigmZGlkRmluaXNoKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2gpOwogCiAgICAg
RVhQRUNUX1RSVUUob2JzZXJ2ZWRGaWxlTW9kaWZpY2F0aW9uKTsKICAgICBFWFBFQ1RfRkFMU0Uo
b2JzZXJ2ZWRGaWxlRGVsZXRpb24pOwpAQCAtMjMxLDcgKzIzMSw3IEBAIFRFU1RfRihGaWxlTW9u
aXRvclRlc3QsIERldGVjdE11bHRpcGxlQ2gKICAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7
CiAgICAgfSk7CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaCk7CisgICAgcnVuVW50aWwoZGlk
RmluaXNoKTsKIAogICAgIEVYUEVDVF9UUlVFKG9ic2VydmVkRmlsZU1vZGlmaWNhdGlvbik7CiAg
ICAgRVhQRUNUX0ZBTFNFKG9ic2VydmVkRmlsZURlbGV0aW9uKTsKQEAgLTI3Myw3ICsyNzMsNyBA
QCBURVNUX0YoRmlsZU1vbml0b3JUZXN0LCBEZXRlY3REZWxldGlvbikKICAgICAgICAgICAgIGRp
ZEZpbmlzaCA9IHRydWU7CiAgICAgfSk7CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaCk7Cisg
ICAgcnVuVW50aWwoZGlkRmluaXNoKTsKIAogICAgIEVYUEVDVF9GQUxTRShvYnNlcnZlZEZpbGVN
b2RpZmljYXRpb24pOwogICAgIEVYUEVDVF9UUlVFKG9ic2VydmVkRmlsZURlbGV0aW9uKTsKQEAg
LTMxMiw3ICszMTIsNyBAQCBURVNUX0YoRmlsZU1vbml0b3JUZXN0LCBEZXRlY3RDaGFuZ2VBbmRU
CiAgICAgICAgICAgICBkaWRGaW5pc2ggPSB0cnVlOwogICAgIH0pOwogCi0gICAgVXRpbDo6cnVu
KCZkaWRGaW5pc2gpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaCk7CiAKICAgICBFWFBFQ1RfVFJV
RShvYnNlcnZlZEZpbGVNb2RpZmljYXRpb24pOwogICAgIEVYUEVDVF9GQUxTRShvYnNlcnZlZEZp
bGVEZWxldGlvbik7CkBAIC0zMzAsNyArMzMwLDcgQEAgVEVTVF9GKEZpbGVNb25pdG9yVGVzdCwg
RGV0ZWN0Q2hhbmdlQW5kVAogICAgICAgICAgICAgZGlkRmluaXNoID0gdHJ1ZTsKICAgICB9KTsK
IAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2gpOwog
CiAgICAgRVhQRUNUX0ZBTFNFKG9ic2VydmVkRmlsZU1vZGlmaWNhdGlvbik7CiAgICAgRVhQRUNU
X1RSVUUob2JzZXJ2ZWRGaWxlRGVsZXRpb24pOwpAQCAtMzY5LDcgKzM2OSw3IEBAIFRFU1RfRihG
aWxlTW9uaXRvclRlc3QsIERldGVjdERlbGV0ZUJ1dE4KICAgICAgICAgICAgIGRpZEZpbmlzaCA9
IHRydWU7CiAgICAgfSk7CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaCk7CisgICAgcnVuVW50
aWwoZGlkRmluaXNoKTsKIAogICAgIEVYUEVDVF9GQUxTRShvYnNlcnZlZEZpbGVNb2RpZmljYXRp
b24pOwogICAgIEVYUEVDVF9UUlVFKG9ic2VydmVkRmlsZURlbGV0aW9uKTsKQEAgLTQwMCw3ICs0
MDAsNyBAQCBURVNUX0YoRmlsZU1vbml0b3JUZXN0LCBEZXRlY3REZWxldGVCdXROCiAgICAgICAg
IGRpZEZpbmlzaCA9IHRydWU7CiAgICAgfSk7CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaCk7
CisgICAgcnVuVW50aWwoZGlkRmluaXNoKTsKIAogICAgIEVYUEVDVF9GQUxTRShvYnNlcnZlZEZp
bGVNb2RpZmljYXRpb24pOwogICAgIEVYUEVDVF9GQUxTRShvYnNlcnZlZEZpbGVEZWxldGlvbik7
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvTGluZUJyZWFraW5nLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9MaW5lQnJl
YWtpbmcubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9MaW5lQnJlYWtpbmcubW0JKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcgQEAg
c3RhdGljIHZvaWQgdGVzdEFGZXdTdHJpbmdzKFZlY3RvcjxWZWN0bwogICAgICAgICAgICAgICAg
ICAgICAgICAgd2Via2l0TG9jYXRpb25zLmFwcGVuZChmbG9vcihbdiBmbG9hdFZhbHVlXSArIDAu
NSkpOwogICAgICAgICAgICAgICAgICAgICBkaWRFdmFsdWF0ZUphdmFTY3JpcHQgPSB0cnVlOwog
ICAgICAgICAgICAgICAgIH1dOwotICAgICAgICAgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZGlkRXZhbHVhdGVKYXZhU2NyaXB0KTsKKyAgICAgICAgICAgICAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkaWRFdmFsdWF0ZUphdmFTY3JpcHQpOwogCiAgICAgICAgICAgICAgICAg
Y29uc3QgYXV0byYgaWN1TG9jYXRpb25zID0gYnJlYWtpbmdMb2NhdGlvbnNGcm9tSUNVKHRlc3RD
b2RlUG9pbnRzLCBsb2NhbGUsIGxpbmVCcmVha1ZhbHVlKTsKICAgICAgICAgICAgICAgICBFWFBF
Q1RfRVEoaWN1TG9jYXRpb25zLnNpemUoKSwgd2Via2l0TG9jYXRpb25zLnNpemUoKSk7CkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvV2ViQ29yZU5TVVJMU2Vz
c2lvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Y29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0J
KHdvcmtpbmcgY29weSkKQEAgLTEyMSw3ICsxMjEsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgZGlk
TG9hZE1haW5SZXNvdXJjZSA9IGZhbHNlOwogICAgICAgICB2aWV3Lm1haW5GcmFtZVVSTCA9IGRv
Y3VtZW50VVJMLmFic29sdXRlU3RyaW5nOwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRpZExvYWRNYWluUmVzb3VyY2UpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkaWRMb2FkTWFpblJlc291cmNlKTsKIAogICAgICAgICBkZWxlZ2F0ZSA9IFtbVGVzdE5TVVJM
U2Vzc2lvbkRhdGFEZWxlZ2F0ZSBhbGxvY10gaW5pdF07CiAgICAgICAgIGZyYW1lID0gW3ZpZXcg
X21haW5Db3JlRnJhbWVdOwpAQCAtMTQ3LDkgKzE0Nyw5IEBAIFRFU1RfRihXZWJDb3JlTlNVUkxT
ZXNzaW9uVGVzdCwgQmFzaWNPcGUKICAgICBOU1VSTFNlc3Npb25EYXRhVGFzayAqdGFzayA9IFtz
ZXNzaW9uIGRhdGFUYXNrV2l0aFVSTDpyZXNvdXJjZVVSTF07CiAgICAgW3Rhc2sgcmVzdW1lXTsK
IAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkUmVjaWV2ZVJlc3BvbnNlKTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZFJlY2lldmVEYXRhKTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRpZENvbXBsZXRlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkaWRSZWNpZXZlUmVzcG9uc2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRp
ZFJlY2lldmVEYXRhKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDb21wbGV0ZSk7
CiAKICAgICBkaWRJbnZhbGlkYXRlID0gZmFsc2U7CiAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBURVNU
X0YoV2ViQ29yZU5TVVJMU2Vzc2lvblRlc3QsIEJhc2ljT3BlCiAgICAgW3Rhc2sgcmVzdW1lXTsK
ICAgICBbc2Vzc2lvbiBmaW5pc2hUYXNrc0FuZEludmFsaWRhdGVdOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkaWRJbnZhbGlkYXRlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkaWRJbnZhbGlkYXRlKTsKIAogICAgIFtzZXNzaW9uIHJlbGVhc2VdOwogfQpAQCAtMTY3
LDcgKzE2Nyw3IEBAIFRFU1RfRihXZWJDb3JlTlNVUkxTZXNzaW9uVGVzdCwgSW52YWxpZGEKICAg
ICBXZWJDb3JlTlNVUkxTZXNzaW9uKiBzZXNzaW9uID0gW1tXZWJDb3JlTlNVUkxTZXNzaW9uIGFs
bG9jXSBpbml0V2l0aFJlc291cmNlTG9hZGVyOipsb2FkZXIgZGVsZWdhdGU6ZGVsZWdhdGUgZGVs
ZWdhdGVRdWV1ZTpbTlNPcGVyYXRpb25RdWV1ZSBtYWluUXVldWVdXTsKICAgICBkaWRJbnZhbGlk
YXRlID0gZmFsc2U7CiAgICAgW3Nlc3Npb24gZmluaXNoVGFza3NBbmRJbnZhbGlkYXRlXTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEludmFsaWRhdGUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRpZEludmFsaWRhdGUpOwogICAgIFtzZXNzaW9uIHJlbGVhc2VdOwog
fQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9BYm91dEJsYW5rTG9h
ZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQWJv
dXRCbGFua0xvYWQuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9BYm91dEJsYW5rTG9hZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcg
KzU2LDcgQEAgVEVTVChXZWJLaXQsIEFib3V0QmxhbmtMb2FkKQogCiAgICAgV0tQYWdlTG9hZFVS
TCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWJv
dXQ6YmxhbmsiKSkuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRp
bChkb25lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2FuSGFuZGxlUmVxdWVzdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2FuSGFuZGxlUmVxdWVzdC5j
cHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0NhbkhhbmRsZVJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OSw3ICs2OSw3IEBAIFRF
U1QoV2ViS2l0LCBDYW5IYW5kbGVSZXF1ZXN0KQogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5w
YWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJodG1s
IikpLmdldCgpKTsKIAogICAgIFdLQ29udGV4dFBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShj
b250ZXh0LmdldCgpLCBVdGlsOjp0b1dLKCJDaGVja0NhbkhhbmRsZVJlcXVlc3QiKS5nZXQoKSwg
MCk7Ci0gICAgVXRpbDo6cnVuKCZkaWRSZWNlaXZlTWVzc2FnZSk7CisgICAgcnVuVW50aWwoZGlk
UmVjZWl2ZU1lc3NhZ2UpOwogICAgIEVYUEVDVF9UUlVFKGNhbkhhbmRsZVJlcXVlc3QpOwogfQog
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5D
cmVhdGVQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9DbG9zZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFn
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAgVEVTVChXZWJLaXQsIENsb3Nl
RnJvbVdpdGhpbkNyZWF0ZVBhZ2UpCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFk
b3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImNsb3NlLWZyb20td2l0aGluLWNyZWF0
ZS1wYWdlIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJs
LmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmdGVzdERvbmUpOworICAgIHJ1blVudGlsKHRlc3RE
b25lKTsKIAogICAgIG9wZW5lZFdlYlZpZXcgPSBudWxscHRyOwogfQpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VUaGVuVGVybWluYXRlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZVRoZW5UZXJtaW5hdGUu
Y3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9DbG9zZVRoZW5UZXJtaW5hdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBA
IFRFU1QoV2ViS2l0LCBDbG9zZVRoZW5UZXJtaW5hdGUpCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxS
ZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJo
dG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAK
LSAgICBVdGlsOjpydW4oJmxvYWRlZCk7CisgICAgcnVuVW50aWwobG9hZGVkKTsKIAogICAgIFdL
UGFnZUNsb3NlKHdlYlZpZXcucGFnZSgpKTsKICAgICBXS1BhZ2VUZXJtaW5hdGUod2ViVmlldy5w
YWdlKCkpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ29va2llTWFu
YWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
Q29va2llTWFuYWdlci5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0Nvb2tpZU1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSw3
ICs4NSw3IEBAIFRFU1QoV2ViS2l0LCBDb29raWVNYW5hZ2VyKQogCiAgICAgV0tQYWdlTG9hZFVS
TCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWJv
dXQ6YmxhbmsiKSkuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZ0ZXN0RG9uZSk7CisgICAgcnVu
VW50aWwodGVzdERvbmUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNp
Yy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9N
V2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEwNCwyNiArMTA0LDI2IEBAIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9ET01X
aW5kb3dFeHRlbnNpb24KICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsMSA9IGFkb3B0V0so
VXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZS1pZnJhbWUiLCAiaHRtbCIpKTsKICAg
ICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwxLmdldCgpKTsKIAotICAgIFV0aWw6
OnJ1bigmZmluaXNoZWQpOworICAgIHJ1blVudGlsKGZpbmlzaGVkKTsKICAgICBmaW5pc2hlZCA9
IGZhbHNlOwogICAgIAogICAgIC8vIE1ha2Ugc3VyZSB0aG9zZSBmaXJzdCA0IGV4dGVuc2lvbnMg
YXJlIGRpc2Nvbm5lY3RlZCwgYW5kIDIgbmV3IG9uZXMgYXJlIGluc3RhbGxlZC4KICAgICBXS1Jl
dGFpblB0cjxXS1VSTFJlZj4gdXJsMiA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3Vy
Y2UoInNpbXBsZSIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCks
IHVybDIuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgcnVuVW50aWwo
ZmluaXNoZWQpOwogICAgIGZpbmlzaGVkID0gZmFsc2U7CiAKICAgICAvLyBNYWtlIHN1cmUgdGhv
c2UgdHdvIGFyZSBkaXNjb25uZWN0ZWQsIGFuZCB0aGUgZmlyc3QgZm91ciBhcmUgcmVjb25uZWN0
ZWQuCiAgICAgV0tQYWdlR29CYWNrKHdlYlZpZXcucGFnZSgpKTsKIAotICAgIFV0aWw6OnJ1bigm
ZmluaXNoZWQpOworICAgIHJ1blVudGlsKGZpbmlzaGVkKTsKICAgICBmaW5pc2hlZCA9IGZhbHNl
OwogCiAgICAgLy8gTWFrZSBzdXJlIHRoZSAyIGRpc2Nvbm5lY3RlZCBleHRlbnNpb25zIGluIHRo
ZSBwYWdlIGNhY2hlIGFuZCB0aGUgNCBhY3RpdmUgZXh0ZW5zaW9ucyBhcmUgYWxsIHJlbW92ZWQu
CiAgICAgV0tQYWdlQ2xvc2Uod2ViVmlldy5wYWdlKCkpOwogCi0gICAgVXRpbDo6cnVuKCZmaW5p
c2hlZCk7CisgICAgcnVuVW50aWwoZmluaXNoZWQpOwogICAgICAgICAKICAgICBjb25zdCBzaXpl
X3QgZXhwZWN0ZWRTaXplID0gc2l6ZW9mKGV4cGVjdGVkTWVzc2FnZXMpIC8gc2l6ZW9mKGNvbnN0
IGNoYXIqKTsKICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRTaXplLCBtZXNzYWdlcy5zaXplKCkpOwpA
QCAtMTYxLDExICsxNjEsMTEgQEAgVEVTVChXZWJLaXQsIERPTVdpbmRvd0V4dGVuc2lvbkNyYXNo
T25SZQogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwxID0gYWRvcHRXSyhVdGlsOjpjcmVh
dGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlLWlmcmFtZSIsICJodG1sIikpOwogICAgIFdLUGFnZUxv
YWRVUkwod2ViVmlldy5wYWdlKCksIHVybDEuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZmaW5p
c2hlZCk7CisgICAgcnVuVW50aWwoZmluaXNoZWQpOwogICAgIGZpbmlzaGVkID0gZmFsc2U7CiAK
ICAgICBXS1BhZ2VSZWxvYWQod2ViVmlldy5wYWdlKCkpOwotICAgIFV0aWw6OnJ1bigmZmluaXNo
ZWQpOworICAgIHJ1blVudGlsKGZpbmlzaGVkKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93
RXh0ZW5zaW9uTm9DYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAJKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lv
bk5vQ2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsMjUgKzEwNCwyNSBAQCBURVNUKFdl
YktpdCwgRElTQUJMRURfRE9NV2luZG93RXh0ZW5zaW9uCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxS
ZWY+IHVybDEgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUtaWZy
YW1lIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsMS5n
ZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBydW5VbnRpbChmaW5pc2hl
ZCk7CiAgICAgZmluaXNoZWQgPSBmYWxzZTsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aG9zZSBmaXJz
dCA0IGV4dGVuc2lvbnMgYXJlIGRlc3Ryb3llZCwgYW5kIDIgbmV3IG9uZXMgYXJlIGluc3RhbGxl
ZC4KICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsMiA9IGFkb3B0V0soVXRpbDo6Y3JlYXRl
VVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2Vi
Vmlldy5wYWdlKCksIHVybDIuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7Cisg
ICAgcnVuVW50aWwoZmluaXNoZWQpOwogICAgIGZpbmlzaGVkID0gZmFsc2U7CiAKICAgICAvLyBN
YWtlIHN1cmUgdGhvc2UgMiBhcmUgZGVzdHJveWVkLCBhbmQgdGhlIGZpcnN0IDQgYXJlIHJlY3Jl
YXRlZC4KICAgICBXS1BhZ2VHb0JhY2sod2ViVmlldy5wYWdlKCkpOwogCi0gICAgVXRpbDo6cnVu
KCZmaW5pc2hlZCk7CisgICAgcnVuVW50aWwoZmluaXNoZWQpOwogICAgIGZpbmlzaGVkID0gZmFs
c2U7CiAKICAgICBXS1BhZ2VDbG9zZSh3ZWJWaWV3LnBhZ2UoKSk7CiAKLSAgICBVdGlsOjpydW4o
JmZpbmlzaGVkKTsKKyAgICBydW5VbnRpbChmaW5pc2hlZCk7CiAKICAgICBjb25zdCBzaXplX3Qg
ZXhwZWN0ZWRTaXplID0gc2l6ZW9mKGV4cGVjdGVkTWVzc2FnZXMpIC8gc2l6ZW9mKGNvbnN0IGNo
YXIqKTsKICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRTaXplLCBtZXNzYWdlcy5zaXplKCkpOwpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGVmZXJyZWRWaWV3SW5XaW5kb3dT
dGF0ZUNoYW5nZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9EZWZlcnJlZFZpZXdJbldpbmRvd1N0YXRlQ2hhbmdlLm1tCShyZXZpc2lvbiAyNDU1MTYp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EZWZlcnJlZFZpZXdJbldpbmRv
d1N0YXRlQ2hhbmdlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBAIFRFU1QoV2Vi
S2l0LCBEZWZlcnJlZFZpZXdJbldpbmRvd1N0YXRlQ2gKIAogICAgIFdLUmV0YWluUHRyPFdLVVJM
UmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJsb3RzLW9mLXRl
eHQiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0
KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmlu
aXNoTG9hZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0pTX0ZB
TFNFKHdlYlZpZXcucGFnZSgpLCAiZG9jdW1lbnQuaGlkZGVuIik7CkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RpZEFzc29jaWF0ZUZv
cm1Db250cm9scy5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0RpZEFzc29jaWF0ZUZvcm1Db250cm9scy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTgyLDcgKzgyLDcgQEAgVEVTVChXZWJLaXQsIERpZEFzc29jaWF0ZUZvcm1Db250cm9scykK
IAogICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogICAgIFdLUGFn
ZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3Vy
Y2UoImFzc29jaWF0ZS1mb3JtLWNvbnRyb2xzIiwgImh0bWwiKSkuZ2V0KCkpOwotICAgIFV0aWw6
OnJ1bigmZGlkUmVjZWl2ZUFsbE1lc3NhZ2VzKTsKKyAgICBydW5VbnRpbChkaWRSZWNlaXZlQWxs
TWVzc2FnZXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EaWROb3RIYW5kbGVLZXlEb3duLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EaWROb3RIYW5kbGVL
ZXlEb3duLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvRGlkTm90SGFuZGxlS2V5RG93bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcg
KzYyLDcgQEAgVEVTVChXZWJLaXQsIERpZE5vdEhhbmRsZUtleURvd24pCiAKICAgICB3ZWJWaWV3
LnNpbXVsYXRlU3BhY2ViYXJLZXlQcmVzcygpOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hU
ZXN0KTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hUZXN0KTsKICAgICBFWFBFQ1RfVFJVRShkaWRO
b3RIYW5kbGVLZXlEb3duRXZlbnQpOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFt
ZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJblBh
Z2VDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDIwICs4MiwyMCBAQCBURVNUKFdlYktp
dCwgRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJCiAKICAgICBmaW5pc2hlZCA9IGZhbHNlOwog
ICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJM
Rm9yUmVzb3VyY2UoIm1hbnktaWZyYW1lcyIsICJodG1sIikpLmdldCgpKTsKLSAgICBVdGlsOjpy
dW4oJmZpbmlzaGVkKTsKKyAgICBydW5VbnRpbChmaW5pc2hlZCk7CiAKICAgICAvLyBQZXJmb3Jt
IGEgY291cGxlIG9mIGxvYWRzIHNvICJtYW55LWlmcmFtZXMiIGdldHMga2lja2VkIG91dCBvZiB0
aGUgUGFnZUNhY2hlLgogICAgIGZpbmlzaGVkID0gZmFsc2U7CiAgICAgV0tQYWdlTG9hZFVSTCh3
ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxl
IiwgImh0bWwiKSkuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIHJ1blVu
dGlsKGZpbmlzaGVkKTsKIAogICAgIGZpbmlzaGVkID0gZmFsc2U7CiAgICAgV0tQYWdlTG9hZFVS
TCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2lt
cGxlMiIsICJodG1sIikpLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBy
dW5VbnRpbChmaW5pc2hlZCk7CiAKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogICAgIFdLUGFnZUxv
YWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2Uo
InNpbXBsZTMiLCAiaHRtbCIpKS5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7Cisg
ICAgcnVuVW50aWwoZmluaXNoZWQpOwogCiAgICAgRVhQRUNUX0VRKGRpZFJlbW92ZUZyYW1lRnJv
bUhpZXJhcmNoeUNvdW50LCAxMCk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2guY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RvY3VtZW50U3RhcnRVc2VyU2Ny
aXB0QWxlcnRDcmFzaC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgVEVTVChXZWJLaXQsIERvY3VtZW50U3RhcnRV
c2VyU2NyaXB0QWxlcgogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0
aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VM
b2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZkb25l
KTsKKyAgICBydW5VbnRpbChkb25lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRG93bmxvYWREZWNpZGVE
ZXN0aW5hdGlvbkNyYXNoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9Eb3dubG9hZERlY2lkZURlc3RpbmF0aW9uQ3Jhc2guY3BwCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Eb3dubG9hZERlY2lk
ZURlc3RpbmF0aW9uQ3Jhc2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw3IEBAIFRF
U1QoV2ViS2l0LCBEb3dubG9hZERlY2lkZURlc3RpbmF0aW9uQ3IKICAgICAvLyB0byBiZSBlcXVh
bCBhZnRlciB0aGUgRGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUgbWVzc2Fn
ZSBoYXMgYmVlbiBoYW5kbGVkLgogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFk
b3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoIjE4LWNoYXJhY3RlcnMiLCAiaHRtbCIp
KS5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJmRpZERlY2lkZURlc3RpbmF0aW9uKTsKKyAgICBy
dW5VbnRpbChkaWREZWNpZGVEZXN0aW5hdGlvbik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VudW1lcmF0
ZU1lZGlhRGV2aWNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvRW51bWVyYXRlTWVkaWFEZXZpY2VzLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRW51bWVyYXRlTWVkaWFEZXZpY2VzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjksMTIgKzY5LDEyIEBAIFRFU1QoV2ViS2l0LCBFbnVtZXJh
dGVEZXZpY2VzKQogCiAgICAgLy8gTG9hZCBhbmQga2lsbCB0aGUgcGFnZS4KICAgICBXS1BhZ2VM
b2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmbG9hZGVk
Rmlyc3RUaW1lKTsKKyAgICBydW5VbnRpbChsb2FkZWRGaXJzdFRpbWUpOwogICAgIFdLUGFnZVRl
cm1pbmF0ZSh3ZWJWaWV3LnBhZ2UoKSk7CiAKICAgICAvLyBMb2FkIGl0IGFnYWluIHRvIG1ha2Ug
c3VyZSB0aGUgdXNlciBtZWRpYSBwcm9jZXNzIG1hbmFnZXIgZG9lc24ndCBhc3NlcnQuCiAgICAg
V0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4o
JmxvYWRlZFNlY29uZFRpbWUpOworICAgIHJ1blVudGlsKGxvYWRlZFNlY29uZFRpbWUpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9FcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VwaGVt
ZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAJKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VwaGVtZXJhbFNlc3Npb25Q
dXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcgKzg2
LDcgQEAgVEVTVChXZWJLaXQsIEVwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVObwogICAgIFdLUmV0
YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNl
KCJwdXNoLXN0YXRlIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2Uo
KSwgdXJsLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmdGVzdERvbmUpOworICAgIHJ1blVudGls
KHRlc3REb25lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRXZhbHVhdGVKYXZhU2NyaXB0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FdmFsdWF0ZUphdmFT
Y3JpcHQuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9FdmFsdWF0ZUphdmFTY3JpcHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1
Nyw3IEBAIFRFU1QoV2ViS2l0LCBFdmFsdWF0ZUphdmFTY3JpcHRUaGF0VGhyb3cKICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gamF2YVNjcmlwdFN0cmluZyA9IGFkb3B0V0soV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoInRocm93ICdIZWxsbyciKSk7CiAgICAgV0tQYWdlUnVuSmF2
YVNjcmlwdEluTWFpbkZyYW1lKHdlYlZpZXcucGFnZSgpLCBqYXZhU2NyaXB0U3RyaW5nLmdldCgp
LCByZWludGVycHJldF9jYXN0PHZvaWQqPigweDEyMzQ1NzgpLCBkaWRSdW5KYXZhU2NyaXB0KTsK
IAotICAgIFV0aWw6OnJ1bigmdGVzdERvbmUpOworICAgIHJ1blVudGlsKHRlc3REb25lKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvRXZlbnRNb2RpZmllcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0V2ZW50TW9kaWZpZXJzLmNwcAkocmV2aXNpb24gMjQ1
NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRXZlbnRNb2RpZmllcnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSwxMCArNzEsMTAgQEAgVEVTVChXZWJLaXQsIEV2ZW50
TW9kaWZpZXJzKQogICAgIAogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdL
KFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUiLCAiaHRtbCIpKTsKICAgICBXS1Bh
Z2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlk
RmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgCiAgICAgd2Vi
Vmlldy5zaW11bGF0ZU1vdXNlTW92ZSgxMCwgMTAsIGtXS0V2ZW50TW9kaWZpZXJzQ29udHJvbEtl
eSk7Ci0gICAgVXRpbDo6cnVuKCZtb3VzZU1vdmVDYWxsYmFja0ZpbmlzaGVkKTsKKyAgICBydW5V
bnRpbChtb3VzZU1vdmVDYWxsYmFja0ZpbmlzaGVkKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmFpbGVk
TG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
RmFpbGVkTG9hZC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0ZhaWxlZExvYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3
IEBAIFRFU1QoV2ViS2l0LCBGYWlsZWRMb2FkKQogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1
cmwgPSBhZG9wdFdLKFV0aWw6OlVSTEZvck5vbkV4aXN0ZW50UmVzb3VyY2UoKSk7CiAgICAgV0tQ
YWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigm
dGVzdERvbmUpOworICAgIHJ1blVudGlsKHRlc3REb25lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmlu
ZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmlu
ZC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0ZpbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MywxMiArNzMsMTIgQEAgVEVTVChXZWJL
aXQsIEZpbmQpCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6
Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImZpbmQiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJM
KHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hM
b2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKIAogICAgIFdLUmV0YWluUHRyPFdL
U3RyaW5nUmVmPiBmaW5kU3RyaW5nID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiSGVsbG8iKSk7CiAgICAgV0tQYWdlQ291bnRTdHJpbmdNYXRjaGVzKHdlYlZpZXcucGFn
ZSgpLCBmaW5kU3RyaW5nLmdldCgpLCB0cnVlLCAxMDApOwogCi0gICAgVXRpbDo6cnVuKCZkaWRD
YWxsQ291bnRTdHJpbmdNYXRjaGVzKTsKKyAgICBydW5VbnRpbChkaWRDYWxsQ291bnRTdHJpbmdN
YXRjaGVzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmluZE1hdGNoZXMubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmluZE1hdGNoZXMubW0JKHJldmlzaW9u
IDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZpbmRNYXRjaGVz
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsMTcgKzE0MywxNyBAQCBURVNUKFdlYktpdCwgRmlu
ZE1hdGNoZXMpCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6
Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImZpbmRSYW5nZXMiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VM
b2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZkaWRG
aW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKIAogICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBmaW5kU3RyaW5nID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiSGVsbG8iKSk7CiAKICAgICBXS1BhZ2VGaW5kU3RyaW5nTWF0Y2hlcyh3ZWJW
aWV3LnBhZ2UoKSwgZmluZFN0cmluZy5nZXQoKSwgZmluZE9wdGlvbnMsIDEwMCk7Ci0gICAgVXRp
bDo6cnVuKCZkaWRDYWxsRmluZFN0cmluZ01hdGNoZXMpOworICAgIHJ1blVudGlsKGRpZENhbGxG
aW5kU3RyaW5nTWF0Y2hlcyk7CiAKICAgICBkaWRDYWxsRmluZFN0cmluZ01hdGNoZXMgPSBmYWxz
ZTsKICAgICBmaW5kT3B0aW9ucyB8PSBrV0tGaW5kT3B0aW9uc0JhY2t3YXJkczsKICAgICBXS1Bh
Z2VGaW5kU3RyaW5nTWF0Y2hlcyh3ZWJWaWV3LnBhZ2UoKSwgZmluZFN0cmluZy5nZXQoKSwgZmlu
ZE9wdGlvbnMsIDEwMCk7Ci0gICAgVXRpbDo6cnVuKCZkaWRDYWxsRmluZFN0cmluZ01hdGNoZXMp
OworICAgIHJ1blVudGlsKGRpZENhbGxGaW5kU3RyaW5nTWF0Y2hlcyk7CiAKICAgICB3ZWJraXQx
VmlldyA9IGFkb3B0TlMoW1tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgMTIwLCAyMDApIGZyYW1lTmFtZTpuaWwgZ3JvdXBOYW1lOm5pbF0pOwogICAgIFJldGFp
blB0cjxGaW5kTWF0Y2hlc1dLMUZyYW1lTG9hZERlbGVnYXRlPiBmcmFtZUxvYWREZWxlZ2F0ZSA9
IGFkb3B0TlMoW0ZpbmRNYXRjaGVzV0sxRnJhbWVMb2FkRGVsZWdhdGUgbmV3XSk7CkBAIC0xNjEs
MTYgKzE2MSwxNiBAQCBURVNUKFdlYktpdCwgRmluZE1hdGNoZXMpCiAgICAgd2Via2l0MVZpZXcu
Z2V0KCkuZnJhbWVMb2FkRGVsZWdhdGUgPSBmcmFtZUxvYWREZWxlZ2F0ZS5nZXQoKTsKICAgICBb
d2Via2l0MVZpZXcuZ2V0KCkubWFpbkZyYW1lIGxvYWRIVE1MU3RyaW5nOkAiVGVzdCBzZWFyY2gu
IEhlbGxvIDxzcGFuIGlkPVwidGFyZ2V0XCI+SGVsbG88L3NwYW4+IEhlbGxvISIgYmFzZVVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl1dOwogCi0gICAgVXRpbDo6cnVuKCZk
aWRGaW5pc2hMb2FkV0sxKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkV0sxKTsKIAogICAg
IFdLUGFnZUdldEltYWdlRm9yRmluZE1hdGNoKHdlYlZpZXcucGFnZSgpLCAwKTsKLSAgICBVdGls
OjpydW4oJmRpZENhbGxHZXRJbWFnZSk7CisgICAgcnVuVW50aWwoZGlkQ2FsbEdldEltYWdlKTsK
IAogICAgIGRpZENhbGxGaW5kU3RyaW5nTWF0Y2hlcyA9IGZhbHNlOwogICAgIGZpbmRPcHRpb25z
ICY9IH5rV0tGaW5kT3B0aW9uc0JhY2t3YXJkczsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gZmluZE90aGVyU3RyaW5nID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiY3JhenkiKSk7CiAgICAgV0tQYWdlRmluZFN0cmluZ01hdGNoZXMod2ViVmlldy5wYWdlKCks
IGZpbmRPdGhlclN0cmluZy5nZXQoKSwgZmluZE9wdGlvbnMsIDEwMCk7Ci0gICAgVXRpbDo6cnVu
KCZkaWRDYWxsRmluZFN0cmluZ01hdGNoZXMpOworICAgIHJ1blVudGlsKGRpZENhbGxGaW5kU3Ry
aW5nTWF0Y2hlcyk7CiAKICAgICBXS1BhZ2VIaWRlRmluZFVJKHdlYlZpZXcucGFnZSgpKTsKIH0K
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZpcnN0TWVhbmluZ2Z1bFBh
aW50TWlsZXN0b25lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9GaXJzdE1lYW5pbmdmdWxQYWludE1pbGVzdG9uZS5jcHAJKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZpcnN0TWVhbmluZ2Z1bFBh
aW50TWlsZXN0b25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBURVNUKFdl
YktpdCwgRmlyc3RNZWFuaW5nZnVsUGFpbnQpCiAKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcu
cGFnZSgpLCBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJsb3RzLW9mLXRleHQi
LCAiaHRtbCIpKS5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJmRpZFVubG9ja0Zpc3RNZWFuaW5n
ZnVsUGFpbnRNaWxlc3RvbmUpOworICAgIHJ1blVudGlsKGRpZFVubG9ja0Zpc3RNZWFuaW5nZnVs
UGFpbnRNaWxlc3RvbmUpOwogICAgIEVYUEVDVF9UUlVFKGRpZFVubG9ja0Zpc3RNZWFuaW5nZnVs
UGFpbnRNaWxlc3RvbmUpOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9GaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmVXaXRoRGVmZXJyZWRTY3JpcHQubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmlyc3RWaXN1
YWxseU5vbkVtcHR5TWlsZXN0b25lV2l0aERlZmVycmVkU2NyaXB0Lm1tCShyZXZpc2lvbiAyNDU1
MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9GaXJzdFZpc3VhbGx5Tm9u
RW1wdHlNaWxlc3RvbmVXaXRoRGVmZXJyZWRTY3JpcHQubW0JKHdvcmtpbmcgY29weSkKQEAgLTY4
LDYgKzY4LDYgQEAgVEVTVChXZWJLaXQsIEZpcnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdAogCiAg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiZGVmZXJyZWQtc2NyaXB0LWxvYWQi
IHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291
cmNlcyJdXV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2Fn
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRNZXNzYWdlKTsKICAgICBF
WFBFQ1RfVFJVRShkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOwogfQpJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRm9yY2VSZXBhaW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Gb3JjZVJlcGFpbnQuY3BwCShy
ZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Gb3Jj
ZVJlcGFpbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw4ICs2NSw4IEBAIFRFU1QoV2ViS2l0
LCBGb3JjZVJlcGFpbnQpCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0so
VXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGlu
ZyIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQo
KSk7CiAKLSAgICBVdGlsOjpydW4oJnRlc3QxRG9uZSk7Ci0gICAgVXRpbDo6cnVuKCZ0ZXN0MkRv
bmUpOworICAgIHJ1blVudGlsKHRlc3QxRG9uZSk7CisgICAgcnVuVW50aWwodGVzdDJEb25lKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvRnJhbWVIYW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZyYW1lSGFuZGxlLmNwcAkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRnJhbWVIYW5kbGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIFRFU1QoV2ViS2l0LCBGcmFtZUhhbmRsZSkK
ICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlvbkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJmxvYWRl
ckNsaWVudC5iYXNlKTsKIAogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0
V0soV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFib3V0OmJsYW5rIikpLmdldCgpKTsKLSAg
ICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGlsKGRvbmUpOwogCiAgICAgYXV0byBmcmFt
ZSA9IFdLUGFnZUdldE1haW5GcmFtZSh3ZWJWaWV3LnBhZ2UoKSk7CiAgICAgYXV0byBmcmFtZUlu
Zm8gPSBhZG9wdFdLKFdLRnJhbWVDcmVhdGVGcmFtZUluZm8oZnJhbWUpKTsKSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZyYW1lTUlNRVR5cGVIVE1MLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9GcmFtZU1JTUVUeXBlSFRN
TC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0ZyYW1lTUlNRVR5cGVIVE1MLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQsNyArNzQsNyBA
QCBURVNUKFdlYktpdCwgRnJhbWVNSU1FVHlwZUhUTUwpCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxS
ZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJo
dG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAK
LSAgICBVdGlsOjpydW4oJnRlc3REb25lKTsKKyAgICBydW5VbnRpbCh0ZXN0RG9uZSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0ZyYW1lTUlNRVR5cGVQTkcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZyYW1lTUlNRVR5cGVQTkcuY3BwCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9GcmFtZU1JTUVUeXBl
UE5HLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBURVNUKFdlYktpdCwgRnJh
bWVNSU1FVHlwZVBORykKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhV
dGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiaWNvbiIsICJwbmciKSk7CiAgICAgV0tQYWdlTG9h
ZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmdGVzdERv
bmUpOworICAgIHJ1blVudGlsKHRlc3REb25lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2VvbG9jYXRp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dl
b2xvY2F0aW9uLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvR2VvbG9jYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNyArMTcy
LDcgQEAgVEVTVChXZWJLaXQsIEdlb2xvY2F0aW9uQmFzaWMpCiAgICAgV0tSZXRhaW5QdHI8V0tV
UkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImdlb2xvY2F0
aW9uR2V0Q3VycmVudFBvc2l0aW9uIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJW
aWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmc3RhdGVUcmFja2VyLmZp
bmlzaGVkKTsKKyAgICBydW5VbnRpbChzdGF0ZVRyYWNrZXIuZmluaXNoZWQpOwogICAgIGNsZWFy
R2VvbG9jYXRpb25Qcm92aWRlcihjb250ZXh0LmdldCgpKTsKIH0KIApAQCAtMjE0LDcgKzIxNCw3
IEBAIFRFU1QoV2ViS2l0LCBHZW9sb2NhdGlvbkJhc2ljV2l0aEhpZ2hBY2MKICAgICBXS1JldGFp
blB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgi
Z2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5IiwgImh0bWwiKSk7
CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAotICAgIFV0
aWw6OnJ1bigmc3RhdGVUcmFja2VyLmZpbmlzaGVkKTsKKyAgICBydW5VbnRpbChzdGF0ZVRyYWNr
ZXIuZmluaXNoZWQpOwogICAgIGNsZWFyR2VvbG9jYXRpb25Qcm92aWRlcihjb250ZXh0LmdldCgp
KTsKIH0KIApAQCAtMjY1LDE5ICsyNjUsMTkgQEAgVEVTVChXZWJLaXQsIEdlb2xvY2F0aW9uVHJh
bnNpdGlvblRvSGlnaAogICAgIHNldHVwVmlldyhsb3dBY2N1cmFjeVdlYlZpZXcpOwogICAgIFdL
UmV0YWluUHRyPFdLVVJMUmVmPiBsb3dBY2N1cmFjeVVSTCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRl
VVJMRm9yUmVzb3VyY2UoImdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbiIsICJodG1sIikpOwogICAg
IFdLUGFnZUxvYWRVUkwobG93QWNjdXJhY3lXZWJWaWV3LnBhZ2UoKSwgbG93QWNjdXJhY3lVUkwu
Z2V0KCkpOwotICAgIFV0aWw6OnJ1bigmc3RhdGVUcmFja2VyLmZpbmlzaGVkRmlyc3RTdGVwKTsK
KyAgICBydW5VbnRpbChzdGF0ZVRyYWNrZXIuZmluaXNoZWRGaXJzdFN0ZXApOwogCiAgICAgUGxh
dGZvcm1XZWJWaWV3IGhpZ2hBY2N1cmFjeVdlYlZpZXcobG93QWNjdXJhY3lXZWJWaWV3LnBhZ2Uo
KSk7CiAgICAgc2V0dXBWaWV3KGhpZ2hBY2N1cmFjeVdlYlZpZXcpOwogICAgIFdLUmV0YWluUHRy
PFdLVVJMUmVmPiBoaWdoQWNjdXJhY3lVUkwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJl
c291cmNlKCJnZW9sb2NhdGlvbldhdGNoUG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5IiwgImh0bWwi
KSk7CiAgICAgV0tQYWdlTG9hZFVSTChoaWdoQWNjdXJhY3lXZWJWaWV3LnBhZ2UoKSwgaGlnaEFj
Y3VyYWN5VVJMLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJnN0YXRlVHJhY2tlci5lbmFibGVkSGln
aEFjY3VyYWN5KTsKKyAgICBydW5VbnRpbChzdGF0ZVRyYWNrZXIuZW5hYmxlZEhpZ2hBY2N1cmFj
eSk7CiAgICAgCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHJlc2V0VXJsID0gYWRvcHRXSyhX
S1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWJvdXQ6YmxhbmsiKSk7CiAgICAgV0tQYWdlTG9h
ZFVSTChoaWdoQWNjdXJhY3lXZWJWaWV3LnBhZ2UoKSwgcmVzZXRVcmwuZ2V0KCkpOwotICAgIFV0
aWw6OnJ1bigmc3RhdGVUcmFja2VyLmVuYWJsZWRIaWdoQWNjdXJhY3kpOworICAgIHJ1blVudGls
KHN0YXRlVHJhY2tlci5lbmFibGVkSGlnaEFjY3VyYWN5KTsKICAgICBXS1BhZ2VMb2FkVVJMKGxv
d0FjY3VyYWN5V2ViVmlldy5wYWdlKCksIHJlc2V0VXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4o
JnN0YXRlVHJhY2tlci5maW5pc2hlZCk7CisgICAgcnVuVW50aWwoc3RhdGVUcmFja2VyLmZpbmlz
aGVkKTsKIAogICAgIGNsZWFyR2VvbG9jYXRpb25Qcm92aWRlcihjb250ZXh0LmdldCgpKTsKIH0K
QEAgLTMzOCw3ICszMzgsNyBAQCBURVNUKFdlYktpdCwgR2VvbG9jYXRpb25UcmFuc2l0aW9uVG9M
b3dBCiAgICAgc2V0dXBWaWV3KGhpZ2hBY2N1cmFjeVdlYlZpZXcpOwogICAgIFdLUmV0YWluUHRy
PFdLVVJMUmVmPiBoaWdoQWNjdXJhY3lVUkwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJl
c291cmNlKCJnZW9sb2NhdGlvbldhdGNoUG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5IiwgImh0bWwi
KSk7CiAgICAgV0tQYWdlTG9hZFVSTChoaWdoQWNjdXJhY3lXZWJWaWV3LnBhZ2UoKSwgaGlnaEFj
Y3VyYWN5VVJMLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJnN0YXRlVHJhY2tlci5maW5pc2hlZEZp
cnN0U3RlcCk7CisgICAgcnVuVW50aWwoc3RhdGVUcmFja2VyLmZpbmlzaGVkRmlyc3RTdGVwKTsK
IAogICAgIFBsYXRmb3JtV2ViVmlldyBsb3dBY2N1cmFjeVdlYlZpZXcoY29udGV4dC5nZXQoKSk7
CiAgICAgc2V0dXBWaWV3KGxvd0FjY3VyYWN5V2ViVmlldyk7CkBAIC0zNTUsMTYgKzM1NSwxNiBA
QCBURVNUKFdlYktpdCwgR2VvbG9jYXRpb25UcmFuc2l0aW9uVG9Mb3dBCiAKICAgICBXS1JldGFp
blB0cjxXS1VSTFJlZj4gbG93QWNjdXJhY3lVUkwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZv
clJlc291cmNlKCJnZW9sb2NhdGlvbldhdGNoUG9zaXRpb24iLCAiaHRtbCIpKTsKICAgICBXS1Bh
Z2VMb2FkVVJMKGxvd0FjY3VyYWN5V2ViVmlldy5wYWdlKCksIGxvd0FjY3VyYWN5VVJMLmdldCgp
KTsKLSAgICBVdGlsOjpydW4oJnNlY29uZFN0ZXBDb250ZXh0LmRpZFJ1bik7CisgICAgcnVuVW50
aWwoc2Vjb25kU3RlcENvbnRleHQuZGlkUnVuKTsKICAgICBFWFBFQ1RfRVEoc2Vjb25kU3RlcENv
bnRleHQuYWxlcnRUZXh0LCAiU1VDQ0VTUyIpOwogCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+
IHJlc2V0VXJsID0gYWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWJvdXQ6Ymxh
bmsiKSk7CiAgICAgV0tQYWdlTG9hZFVSTChoaWdoQWNjdXJhY3lXZWJWaWV3LnBhZ2UoKSwgcmVz
ZXRVcmwuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZzdGF0ZVRyYWNrZXIuZGlzYWJsZWRIaWdo
QWNjdXJhY3kpOworICAgIHJ1blVudGlsKHN0YXRlVHJhY2tlci5kaXNhYmxlZEhpZ2hBY2N1cmFj
eSk7CiAKICAgICBXS1BhZ2VMb2FkVVJMKGxvd0FjY3VyYWN5V2ViVmlldy5wYWdlKCksIHJlc2V0
VXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJnN0YXRlVHJhY2tlci5maW5pc2hlZCk7CisgICAg
cnVuVW50aWwoc3RhdGVUcmFja2VyLmZpbmlzaGVkKTsKIAogICAgIGNsZWFyR2VvbG9jYXRpb25Q
cm92aWRlcihjb250ZXh0LmdldCgpKTsKIH0KQEAgLTM4OSw3ICszODksNyBAQCBURVNUKFdlYktp
dCwgR2VvbG9jYXRpb25XYXRjaE11bHRpcHJvY2VzCiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50
KHZpZXcxLnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOwogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVm
PiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJnZW9sb2NhdGlvbldh
dGNoUG9zaXRpb24iLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHZpZXcxLnBhZ2UoKSwg
dXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJnRlc3RDb250ZXh0LmRpZFJ1bik7CisgICAgcnVu
VW50aWwodGVzdENvbnRleHQuZGlkUnVuKTsKICAgICBFWFBFQ1RfRVEodGVzdENvbnRleHQuYWxl
cnRUZXh0LCAiU1VDQ0VTUyIpOwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh2aWV3MS5wYWdl
KCksIG51bGxwdHIpOwogCkBAIC0zOTksNyArMzk5LDcgQEAgVEVTVChXZWJLaXQsIEdlb2xvY2F0
aW9uV2F0Y2hNdWx0aXByb2NlcwogICAgIFBsYXRmb3JtV2ViVmlldyB2aWV3Mihjb250ZXh0Lmdl
dCgpKTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQodmlldzIucGFnZSgpLCAmdWlDbGllbnQu
YmFzZSk7CiAgICAgV0tQYWdlTG9hZFVSTCh2aWV3Mi5wYWdlKCksIHVybC5nZXQoKSk7Ci0gICAg
VXRpbDo6cnVuKCZ0ZXN0Q29udGV4dC5kaWRSdW4pOworICAgIHJ1blVudGlsKHRlc3RDb250ZXh0
LmRpZFJ1bik7CiAgICAgRVhQRUNUX0VRKHRlc3RDb250ZXh0LmFsZXJ0VGV4dCwgIlNVQ0NFU1Mi
KTsKIAogICAgIGNsZWFyR2VvbG9jYXRpb25Qcm92aWRlcihjb250ZXh0LmdldCgpKTsKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldEluamVjdGVkQnVuZGxlSW5pdGlh
bGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRh
dGFDYWxsYmFjay5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0dldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxi
YWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCBURVNUKFdlYktpdCwgR2V0
SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9
IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJodG1sIikpOwog
ICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAKLSAgICBVdGls
OjpydW4oJmRvbmUpOworICAgIHJ1blVudGlsKGRvbmUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRV
c2VyTWVkaWFOYXZpZ2F0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRp
b24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDcgQEAgVEVTVChXZWJLaXQsIE5hdmln
YXRlRHVyaW5nR2V0VXNlck1lZGlhUAogCiAgICAgc2hvdWxkUmVsZWFzZUluRW51bWVyYXRlID0g
ZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJnZXRVc2VyTWVkaWEiXTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm9rVG9Qcm9jZWVkKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChva1RvUHJvY2VlZCk7CiB9CiAKIFRFU1QoV2ViS2l0LCBOYXZpZ2F0
ZUR1cmluZ0RldmljZUVudW1lcmF0aW9uKQpAQCAtOTYsNyArOTYsNyBAQCBURVNUKFdlYktpdCwg
TmF2aWdhdGVEdXJpbmdEZXZpY2VFbnVtZXJhCiAKICAgICBzaG91bGRSZWxlYXNlSW5FbnVtZXJh
dGUgPSB0cnVlOwogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiZW51bWVyYXRlTWVk
aWFEZXZpY2VzIl07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZva1RvUHJvY2VlZCk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwob2tUb1Byb2NlZWQpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5tbQkocmV2aXNpb24gMjQ1
NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVw
cm9tcHQubW0JKHdvcmtpbmcgY29weSkKQEAgLTkyLDcgKzkyLDcgQEAgVEVTVChXZWJLaXQyLCBH
ZXRVc2VyTWVkaWFSZXByb21wdCkKIAogICAgIHdhc1Byb21wdGVkID0gZmFsc2U7CiAgICAgW3dl
YlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJnZXRVc2VyTWVkaWEiXTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJndhc1Byb21wdGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bCh3YXNQcm9tcHRlZCk7CiAKICAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBoYXZlU3RyZWFtOllF
U10pOwogCkBAIC0xMTMsNyArMTEzLDcgQEAgVEVTVChXZWJLaXQyLCBHZXRVc2VyTWVkaWFSZXBy
b21wdCkKIAogICAgIHdhc1Byb21wdGVkID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAInByb21wdEZvckNhcHR1cmUoKSJdOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmd2FzUHJvbXB0ZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKHdhc1Byb21wdGVkKTsKICAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBoYXZlU3RyZWFtOllF
U10pOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9IaXRUZXN0
UmVzdWx0Tm9kZUhhbmRsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwCShyZXZpc2lvbiAyNDU1MTYp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9IaXRUZXN0UmVzdWx0Tm9kZUhh
bmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDExICs4MSwxMSBAQCBURVNUKFdlYktpdCwg
SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUpCiAgICAgc2V0UGFnZUxvYWRlckNsaWVudCh3ZWJWaWV3
LnBhZ2UoKSk7CiAKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9wdFdLKFV0
aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUiLCAiaHRtbCIpKS5nZXQoKSk7Ci0gICAg
VXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsK
ICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAKICAgICB3ZWJWaWV3LnNpbXVsYXRlUmlnaHRD
bGljaygxMCwgMTApOwotICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlQmFzaWMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlQmFzaWMuY3Bw
CShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9J
bmplY3RlZEJ1bmRsZUJhc2ljLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNyBAQCBU
RVNUKFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVCYXNpYykKICAgICBXS1JldGFpblB0cjxXS1VSTFJl
Zj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwgImh0
bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAot
ICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5k
bGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcAkocmV2aXNpb24gMjQ1NTE2KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxl
T3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgs
NyBAQCBURVNUKFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVOb0Rpc2FibGVPdmVyCiAgICAgV0tSZXRh
aW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2Uo
Im92ZXJyaWRlLWJ1aWx0aW5zLXRlc3QiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdl
YlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBy
dW5VbnRpbChkb25lKTsKIH0KIAogc3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0RGlzYWJs
ZWQoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZiBmcmFt
ZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKQEAgLTEwMiw3ICsxMDIsNyBAQCBURVNUKFdlYktp
dCwgSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+
IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoIm92ZXJyaWRlLWJ1aWx0
aW5zLXRlc3QiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1
cmwuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVGcmFtZUhpdFRlc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRnJh
bWVIaXRUZXN0LmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVGcmFtZUhpdFRlc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02NSw3ICs2NSw3IEBAIFRFU1QoV2ViS2l0LCBJbmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVz
dCkKIAogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3Jl
YXRlVVJMRm9yUmVzb3VyY2UoImxpbmstd2l0aC10aXRsZSIsICJodG1sIikpLmdldCgpKTsKIAot
ICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0luamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2lucy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRC
dW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zLmNwcAkocmV2aXNpb24gMjQ1
NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVJ
bml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjYsNyArNjYsNyBAQCBURVNUKFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvCiAg
ICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9y
UmVzb3VyY2UoInNpbXBsZSIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5w
YWdlKCksIHVybC5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGls
KGRvbmUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290
c09wZW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0luamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHAJKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlTWFr
ZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw3ICsxMDEsNyBA
QCBURVNUKFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93CiAgICAgV0tSZXRhaW5Q
dHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImNs
b3NlZC1zaGFkb3ctdHJlZS10ZXN0IiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJW
aWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVu
VW50aWwoZG9uZSk7CiB9CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9MYXlvdXRNaWxlc3RvbmVzV2l0aEFs
bENvbnRlbnRJbkZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9MYXlvdXRNaWxlc3RvbmVzV2l0aEFsbENvbnRlbnRJbkZyYW1lLmNwcAkocmV2
aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTGF5b3V0
TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4
LDcgKzY4LDcgQEAgVEVTVChXZWJLaXQsIExheW91dE1pbGVzdG9uZXNXaXRoQWxsQ29udAogICAg
IFdLUGFnZUxpc3RlbkZvckxheW91dE1pbGVzdG9uZXMod2ViVmlldy5wYWdlKCksIFdLUGFnZVJl
bmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOwogICAgIFdL
UGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVz
b3VyY2UoImFsbC1jb250ZW50LWluLW9uZS1pZnJhbWUiLCAiaHRtbCIpKS5nZXQoKSk7CiAKLSAg
ICBVdGlsOjpydW4oJmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCk7CisgICAgcnVuVW50
aWwoZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KTsKICAgICBFWFBFQ1RfVFJVRShkaWRG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOwogfQogCkBAIC05MywyNiArOTMsMjYgQEAgVEVT
VChXZWJLaXQsIEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dAogICAgIFdLUGFnZUxpc3RlbkZv
ckxheW91dE1pbGVzdG9uZXMod2ViVmlldy5wYWdlKCksIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNz
RXZlbnRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOwogICAgIFdLUGFnZUxvYWRVUkwod2Vi
Vmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZS10
YWxsIiwgImh0bWwiKSkuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXQpOworICAgIHJ1blVudGlsKGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dCk7CiAgICAgRVhQRUNUX1RSVUUoZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KTsK
ICAgICBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgPSBmYWxzZTsKLSAgICBVdGlsOjpy
dW4oJmRpZE5hdmlnYXRlKTsKKyAgICBydW5VbnRpbChkaWROYXZpZ2F0ZSk7CiAgICAgRVhQRUNU
X1RSVUUoZGlkTmF2aWdhdGUpOwogICAgIGRpZE5hdmlnYXRlID0gZmFsc2U7CiAKICAgICBXS1Bh
Z2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291
cmNlKCJsYXJnZS1yZWQtc3F1YXJlLWltYWdlIiwgImh0bWwiKSkuZ2V0KCkpOwotICAgIFV0aWw6
OnJ1bigmZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KTsKKyAgICBydW5VbnRpbChkaWRG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOwogICAgIEVYUEVDVF9UUlVFKGRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dCk7CiAgICAgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
ID0gZmFsc2U7Ci0gICAgVXRpbDo6cnVuKCZkaWROYXZpZ2F0ZSk7CisgICAgcnVuVW50aWwoZGlk
TmF2aWdhdGUpOwogICAgIEVYUEVDVF9UUlVFKGRpZE5hdmlnYXRlKTsKICAgICBkaWROYXZpZ2F0
ZSA9IGZhbHNlOwogCiAgICAgV0tQYWdlR29CYWNrKHdlYlZpZXcucGFnZSgpKTsKLSAgICBVdGls
OjpydW4oJmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCk7CisgICAgcnVuVW50aWwoZGlk
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KTsKICAgICBFWFBFQ1RfVFJVRShkaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXQpOwogICAgIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dCA9IGZhbHNlOwotICAgIFV0aWw6OnJ1bigmZGlkTmF2aWdhdGUpOworICAgIHJ1blVudGlsKGRp
ZE5hdmlnYXRlKTsKICAgICBFWFBFQ1RfVFJVRShkaWROYXZpZ2F0ZSk7CiAgICAgZGlkTmF2aWdh
dGUgPSBmYWxzZTsKIH0KQEAgLTEzNSw3ICsxMzUsNyBAQCBURVNUKFdlYktpdCwgRmlyc3RWaXN1
YWxseU5vbkVtcHR5TWlsZXN0CiAgICAgV0tQYWdlTGlzdGVuRm9yTGF5b3V0TWlsZXN0b25lcyh3
ZWJWaWV3LnBhZ2UoKSwgV0tQYWdlUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dCk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRX
SyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiYXN5bmMtc2NyaXB0LWxvYWQiLCAiaHRtbCIp
KS5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dCk7CisgICAgcnVuVW50aWwoZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KTsKICAgICBF
WFBFQ1RfVFJVRShkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOwogfQogCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Mb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ1dp
dGhOb25EaXJlY3RvcnlVUkwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0xvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5j
cHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0xvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYxLDcgKzYxLDcgQEAgc3RhdGljIHZvaWQgbG9hZEFsdGVybmF0ZUhUTUxTdHJp
bmcoV0tVUgogICAgIFdLUGFnZUxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKHdlYlZpZXcucGFnZSgp
LCBhbHRlcm5hdGVIVE1MU3RyaW5nLmdldCgpLCBiYXNlVVJMLCB1bnJlYWNoYWJsZVVSTCk7CiAK
ICAgICAvLyBJZiB3ZSBjYW4gZmluaXNoIGxvYWRpbmcgdGhlIGh0bWwgd2l0aG91dCByZXN1bHRp
bmcgaW4gYW4gaW52YWxpZCBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSB0aGUgV2ViUHJvY2Vzcywg
dGhpcyB0ZXN0IHBhc3Nlcy4KLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1
blVudGlsKGRpZEZpbmlzaExvYWQpOwogfQogCiBURVNUKFdlYktpdCwgTG9hZEFsdGVybmF0ZUhU
TUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMKQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Mb2FkQ2FuY2VsZWRO
b1NlcnZlclJlZGlyZWN0Q2FsbGJhY2suY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Mb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2Fs
bGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw3IEBAIFRFU1QoV2ViS2l0LCBM
b2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWMKIAogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1
cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUtaWZyYW1lIiwg
Imh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsK
LSAgICBVdGlsOjpydW4oJmxvYWRlZEFsbEZyYW1lcyk7CisgICAgcnVuVW50aWwobG9hZGVkQWxs
RnJhbWVzKTsKICAgICAKICAgICAvLyBXZSBzaG91bGRuJ3QgaGF2ZSBwZXJmb3JtZWQgYSBzZXJ2
ZXIgcmVkaXJlY3Qgd2hlbiB0aGUgaWZyYW1lIGxvYWQgd2FzIGNhbmNlbGxlZC4KICAgICBFWFBF
Q1RfRkFMU0UocGVyZm9ybWVkU2VydmVyUmVkaXJlY3QpOwpJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvTG9hZFBhZ2VPbkNyYXNoLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Mb2FkUGFnZU9uQ3Jhc2guY3BwCShyZXZpc2lv
biAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Mb2FkUGFnZU9u
Q3Jhc2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSwxMCArOTksMTAgQEAgVEVTVChXZWJLaXQs
IExvYWRQYWdlQWZ0ZXJDcmFzaCkKIHsKICAgICBXZWJLaXQyQ3Jhc2hMb2FkZXIgaGVscGVyOwog
ICAgIGhlbHBlci5sb2FkVXJsKCk7Ci0gICAgVXRpbDo6cnVuKCZoZWxwZXIuZmlyc3RTdWNjZXNz
ZnVsTG9hZCk7CisgICAgcnVuVW50aWwoaGVscGVyLmZpcnN0U3VjY2Vzc2Z1bExvYWQpOwogICAg
IGhlbHBlci50ZXJtaW5hdGVXZWJQcm9jZXNzKCk7CiAgICAgaGVscGVyLmxvYWRVcmwoKTsKLSAg
ICBVdGlsOjpydW4oJmhlbHBlci5zZWNvbmRTdWNjZXNzZnVsTG9hZCk7CisgICAgcnVuVW50aWwo
aGVscGVyLnNlY29uZFN1Y2Nlc3NmdWxMb2FkKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJl
YW1UcmFja0RldGFjaGVkLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQkocmV2aXNpb24gMjQ1NTE2KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFj
aGVkLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw3ICs3Nyw3IEBAIFRFU1QoV2ViS2l0LCBNZWRp
YVN0cmVhbVRyYWNrRGV0YWNoZWQpCiAgICAgaGFzUmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRl
ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJtZWRpYXN0cmVhbXRy
YWNrLWRldGFjaGVkIl07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmhhc1JlY2ll
dmVkQ29ycmVjdENhcHR1cmVTdGF0ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaGFz
UmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVudVR5cGVz
Rm9yTW91c2VFdmVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L01lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLmNwcAkocmV2aXNpb24gMjQ1NTE2KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVudVR5cGVzRm9yTW91c2VFdmVu
dHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyB2b2lkIGJ1aWxk
QW5kUGVyZm9ybVRlc3QoV0tFdmVudE0KIAogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwg
PSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJtb3VzZS1idXR0b24tbGlzdGVu
ZXIiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0
KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmlu
aXNoTG9hZCk7CiAKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01vZGFsQWxlcnRzU1BJLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Nb2RhbEFsZXJ0c1NQSS5jcHAJKHJl
dmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01vZGFs
QWxlcnRzU1BJLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDcgKzEzNiw3IEBAIFRFU1QoV2Vi
S2l0LCBNb2RhbEFsZXJ0c1NQSSkKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRv
cHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgibW9kYWwtYWxlcnRzLWluLW5ldy1hYm91
dC1ibGFuay13aW5kb3ciLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFn
ZSgpLCB1cmwuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChk
b25lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTW91c2VNb3ZlQWZ0ZXJDcmFz
aC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L01vdXNlTW92ZUFmdGVyQ3Jhc2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3
IEBAIFRFU1QoV2ViS2l0LCBNb3VzZU1vdmVBZnRlckNyYXNoKQogCiAgICAgV0tSZXRhaW5QdHI8
V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoIm1vdXNl
LW1vdmUtbGlzdGVuZXIiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFn
ZSgpLCB1cmwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVu
VW50aWwoZGlkRmluaXNoTG9hZCk7CiAKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAKQEAg
LTc3LDcgKzc3LDcgQEAgVEVTVChXZWJLaXQsIE1vdXNlTW92ZUFmdGVyQ3Jhc2gpCiAgICAgV0tQ
YWdlUmVsb2FkKHdlYlZpZXcucGFnZSgpKTsKIAogICAgIC8vIFdhaXQgdW50aWwgd2UgbG9hZCB0
aGUgcGFnZSBhIHNlY29uZCB0aW1lLgotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7Cisg
ICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAKICAgICBFWFBFQ1RfSlNfRkFMU0Uod2ViVmll
dy5wYWdlKCksICJkaWRNb3ZlTW91c2UoKSIpOwogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9OYXZpZ2F0aW9uQ2xpZW50RGVmYXVsdENyeXB0by5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTmF2aWdhdGlvbkNsaWVudERl
ZmF1bHRDcnlwdG8uY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9OYXZpZ2F0aW9uQ2xpZW50RGVmYXVsdENyeXB0by5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTc5LDExICs3OSwxMSBAQCBURVNUKFdlYktpdCwgTmF2aWdhdGlvbkNsaWVudERl
ZmF1bHRDcnlwCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6
Y3JlYXRlVVJMRm9yUmVzb3VyY2UoIm5hdmlnYXRpb24tY2xpZW50LWRlZmF1bHQtY3J5cHRvIiwg
Imh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsK
IAotICAgIFV0aWw6OnJ1bigmcmVjZWl2ZWRBbGVydCk7CisgICAgcnVuVW50aWwocmVjZWl2ZWRB
bGVydCk7CiAgICAgRVhQRUNUX1RSVUUoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhsYXN0
QWxlcnQuZ2V0KCksICJzdWNjZXNzZnVsbHkgc3RvcmVkIGtleSIpKTsKIAogICAgIHJlY2VpdmVk
QWxlcnQgPSBmYWxzZTsKLSAgICBVdGlsOjpydW4oJnJlY2VpdmVkQWxlcnQpOworICAgIHJ1blVu
dGlsKHJlY2VpdmVkQWxlcnQpOwogICAgIEVYUEVDVF9UUlVFKFdLU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcobGFzdEFsZXJ0LmdldCgpLCAicmV0cmlldmVkIHZhbGlkIGtleSIpKTsKIH0KIApJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTmV0d29ya1Byb2Nlc3NDcmFz
aFdpdGhQZW5kaW5nQ29ubmVjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9OZXR3b3JrUHJvY2Vzc0NyYXNoV2l0aFBlbmRpbmdDb25uZWN0aW9u
Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9OZXR3b3JrUHJvY2Vzc0NyYXNoV2l0aFBlbmRpbmdDb25uZWN0aW9uLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC05MCw3ICs5MCw3IEBAIFRFU1QoV2ViS2l0LCBOZXR3b3JrUHJvY2Vzc0NyYXNoV2l0
aFBlbmQKICAgICBwaWRfdCBpbml0aWFsTmV0d29ya1Byb2Nlc3NJZGVudGlmaWZlciA9IFtwcm9j
ZXNzUG9vbC5nZXQoKSBfbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyXTsKICAgICBFWFBFQ1RfTkUo
aW5pdGlhbE5ldHdvcmtQcm9jZXNzSWRlbnRpZmlmZXIsIDApOwogICAgIGtpbGwoaW5pdGlhbE5l
dHdvcmtQcm9jZXNzSWRlbnRpZmlmZXIsIFNJR0tJTEwpOwotICAgIFV0aWw6OnJ1bigmbmV0d29y
a1Byb2Nlc3NDcmFzaGVkKTsKKyAgICBydW5VbnRpbChuZXR3b3JrUHJvY2Vzc0NyYXNoZWQpOwog
ICAgIG5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCA9IGZhbHNlOwogCiAgICAgW3dlYlZpZXcxLmdldCgp
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWlu
QnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKQEAgLTEwNSw3ICsxMDUs
NyBAQCBURVNUKFdlYktpdCwgTmV0d29ya1Byb2Nlc3NDcmFzaFdpdGhQZW5kCiAgICAgW3dlYlZp
ZXcyLmdldCgpIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpA
Imh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKICAgICBV
dGlsOjpzbGVlcCgwLjUpOyAvLyBXYWl0IGZvciB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHRvIHNl
bmQgQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MKICAgICBraWxsKHJlbGF1bmNo
ZWROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIsIFNJR0tJTEwpOwotICAgIFV0aWw6OnJ1bigmbmV0
d29ya1Byb2Nlc3NDcmFzaGVkKTsKKyAgICBydW5VbnRpbChuZXR3b3JrUHJvY2Vzc0NyYXNoZWQp
OwogCiAgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdE5hdmlnYXRp
b25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGxvYWRlZE9yQ3Jhc2hlZCA9IGZhbHNlOwpA
QCAtMTE4LDcgKzExOCw3IEBAIFRFU1QoV2ViS2l0LCBOZXR3b3JrUHJvY2Vzc0NyYXNoV2l0aFBl
bmQKICAgICAgICAgd2ViUHJvY2Vzc0NyYXNoZWQgPSB0cnVlOwogICAgIH1dOwogICAgIFt3ZWJW
aWV3MiBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmxvYWRlZE9yQ3Jhc2hlZCk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwobG9hZGVkT3JDcmFzaGVkKTsKICAgICBFWFBFQ1RfVFJVRShsb2Fk
ZWQpOwogICAgIEVYUEVDVF9GQUxTRSh3ZWJQcm9jZXNzQ3Jhc2hlZCk7CiB9CkBAIC0xNTMsNyAr
MTUzLDcgQEAgVEVTVChXZWJLaXQsIE5ldHdvcmtQcm9jZXNzUmVsYXVuY2hPbkxhdQogICAgIFt3
ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZsb2FkZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGxvYWRlZCk7CiAKICAgICBFWFBFQ1RfVFJVRShuZXR3b3JrUHJvY2Vzc0NyYXNoZWQpOwogICAg
IEVYUEVDVF9GQUxTRSh3ZWJQcm9jZXNzQ3Jhc2hlZCk7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L05ld0ZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAgVEVTVChXZWJLaXQsIERJU0FCTEVEX05ld0Zp
cnN0VmlzdWFsbHlObwogICAgIC8vIG9iamVjdHMgdGFrZSB1cCBtb3JlIHRoYW4gMTAlIG9mIHRo
ZSB2aWV3LgogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6
Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImxvdHMtb2YtdGV4dCIsICJodG1sIikpLmdldCgpKTsKIAot
ICAgIFV0aWw6OnJ1bigmZGlkVW5sb2NrQWxsTGF5b3V0TWlsZXN0b25lcyk7CisgICAgcnVuVW50
aWwoZGlkVW5sb2NrQWxsTGF5b3V0TWlsZXN0b25lcyk7CiAgICAgRVhQRUNUX1RSVUUoZGlkVW5s
b2NrQWxsTGF5b3V0TWlsZXN0b25lcyk7CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZhaWxzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9OZXdGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGYWlscy5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZh
aWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsOCArODAsOCBAQCBURVNUKFdlYktpdCwgTmV3
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5CiAgICAgLy8gb2JqZWN0cyB0YWtlIHVwIGxlc3MgdGhh
biAxMCUgb2YgdGhlIHZpZXcuCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRv
cHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwgImh0bWwiKSkuZ2V0KCkp
OwogCi0gICAgVXRpbDo6cnVuKCZ0ZXN0MURvbmUpOwotICAgIFV0aWw6OnJ1bigmdGVzdDJEb25l
KTsKKyAgICBydW5VbnRpbCh0ZXN0MURvbmUpOworICAgIHJ1blVudGlsKHRlc3QyRG9uZSk7CiAK
ICAgICAvLyBCeSB0aGUgdGltZSB0aGUgZm9yY2VkIHJlcGFpbnQgaGFzIGZpbmlzaGVkLCB0aGUg
Y291bnRlciB3b3VsZCBoYXZlIGJlZW4gaGl0IAogICAgIC8vIGlmIGl0IHdhcyBzaXplZCByZWFz
b25hYmx5IGZvciB0aGUgcGFnZS4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdlcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTmV3Rmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0Rm9ySW1hZ2VzLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
SW1hZ2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCBURVNUKFdlYktpdCwg
RElTQUJMRURfTmV3Rmlyc3RWaXN1YWxseU5vCiAgICAgLy8gb2JqZWN0cyB0YWtlIHVwIG1vcmUg
dGhhbiAxMCUgb2YgdGhlIHZpZXcuCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwg
YWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgibG90cy1vZi1pbWFnZXMiLCAiaHRt
bCIpKS5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJmRpZFVubG9ja0FsbExheW91dE1pbGVzdG9u
ZXMpOworICAgIHJ1blVudGlsKGRpZFVubG9ja0FsbExheW91dE1pbGVzdG9uZXMpOwogICAgIEVY
UEVDVF9UUlVFKGRpZFVubG9ja0FsbExheW91dE1pbGVzdG9uZXMpOwogfQogCkluZGV4OiBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGcmFtZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAJKHJldmlzaW9uIDI0
NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L05ld0ZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDggKzg0LDgg
QEAgVEVTVChXZWJLaXQsIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheQogCiAgICAgV0tQYWdl
TG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJj
ZSgibG90cy1vZi1pZnJhbWVzIiwgImh0bWwiKSkuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZ0
ZXN0MURvbmUpOwotICAgIFV0aWw6OnJ1bigmdGVzdDJEb25lKTsKKyAgICBydW5VbnRpbCh0ZXN0
MURvbmUpOworICAgIHJ1blVudGlsKHRlc3QyRG9uZSk7CiAKICAgICAvLyBCeSB0aGUgdGltZSB0
aGUgZm9yY2VkIHJlcGFpbnQgaGFzIGZpbmlzaGVkLCB0aGUgY291bnRlciB3b3VsZCBoYXZlIGJl
ZW4gaGl0IAogICAgIC8vIGlmIGl0IHdhcyBzaXplZCByZWFzb25hYmx5IGZvciB0aGUgcGFnZS4K
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L05vSGlzdG9yeUl0ZW1TY3Jv
bGxUb0ZyYWdtZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L05vSGlzdG9yeUl0ZW1TY3JvbGxUb0ZyYWdtZW50Lm1tCShyZXZpc2lvbiAyNDU1MTYp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Ob0hpc3RvcnlJdGVtU2Nyb2xs
VG9GcmFnbWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtODgsNyArODgsNyBAQCBURVNUKFdlYktp
dCwgTm9IaXN0b3J5SXRlbVNjcm9sbFRvRnJhZ21lCiAgICAgTlNTdHJpbmcgKnRlc3RGaWxlQ29u
dGVudHMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZVUkw6cmVzb3VyY2VVUkwgZW5j
b2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmcgZXJyb3I6bmlsXTsKICAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6dGVzdEZpbGVDb250ZW50c107CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnRlc3REb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bCh0ZXN0RG9uZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VMb2FkQmFzaWMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VMb2FkQmFzaWMuY3Bw
CShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Q
YWdlTG9hZEJhc2ljLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDcgKzEzNSw3IEBAIFRFU1Qo
V2ViS2l0LCBQYWdlTG9hZEJhc2ljKQogICAgIEFTU0VSVF9OT1RfTlVMTChhY3RpdmVVcmwuZ2V0
KCkpOwogICAgIEVYUEVDVF9UUlVFKFdLVVJMSXNFcXVhbChhY3RpdmVVcmwuZ2V0KCksIHVybC5n
ZXQoKSkpOwogCi0gICAgVXRpbDo6cnVuKCZ0ZXN0MURvbmUpOworICAgIHJ1blVudGlsKHRlc3Qx
RG9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0LCBQYWdlUmVsb2FkKQpAQCAtMTg4LDcgKzE4OCw3IEBA
IFRFU1QoV2ViS2l0LCBQYWdlTG9hZFR3aWNlQW5kUmVsb2FkKQogICAgIFdLUGFnZUxvYWRVUkwo
d2ViVmlldy5wYWdlKCksIHVybDEuZ2V0KCkpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5w
YWdlKCksIHVybDIuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZ0ZXN0MURvbmUpOworICAgIHJ1
blVudGlsKHRlc3QxRG9uZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VMb2FkRGlkQ2hhbmdlTG9j
YXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9y
RnJhbWUuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9QYWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzIsMTIgKzcyLDEyIEBAIFRFU1QoV2ViS2l0LCBQYWdlTG9hZERp
ZENoYW5nZUxvY2F0aW9uV2kKIAogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9w
dFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJmaWxlLXdpdGgtYW5jaG9yIiwgImh0bWwi
KSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBV
dGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwog
CiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IGluaXRpYWxVUkwgPSBhZG9wdFdLKFdLRnJhbWVD
b3B5VVJMKFdLUGFnZUdldE1haW5GcmFtZSh3ZWJWaWV3LnBhZ2UoKSkpKTsKIAogICAgIFdLUGFn
ZVJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh3ZWJWaWV3LnBhZ2UoKSwgVXRpbDo6dG9XSygiY2xp
Y2tMaW5rKCkiKS5nZXQoKSwgMCwgbnVsbEphdmFTY3JpcHRDYWxsYmFjayk7Ci0gICAgVXRpbDo6
cnVuKCZkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2UpOworICAgIHJ1blVudGlsKGRpZENoYW5n
ZUxvY2F0aW9uV2l0aGluUGFnZSk7CiAKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsQWZ0
ZXJBbmNob3JDbGljayA9IGFkb3B0V0soV0tGcmFtZUNvcHlVUkwoV0tQYWdlR2V0TWFpbkZyYW1l
KHdlYlZpZXcucGFnZSgpKSkpOwogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9QYXJlbnRGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvUGFyZW50RnJhbWUuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYXJlbnRGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY2LDcgKzY2LDcgQEAgVEVTVChXZWJLaXQsIFBhcmVudEZyYW1lKQogCiAgICAgV0tQYWdl
TG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJj
ZSgic2ltcGxlLWlmcmFtZSIsICJodG1sIikpLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmZGlk
UmVjZWl2ZU1lc3NhZ2UpOworICAgIHJ1blVudGlsKGRpZFJlY2VpdmVNZXNzYWdlKTsKICAgICBF
WFBFQ1RfVFJVRShpc1BhcmVudEZyYW1lQ2hlY2tTdWNjZXNzZnVsKTsKIH0KIApJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFzdGVib2FyZE5vdGlmaWNhdGlvbnMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFzdGVib2Fy
ZE5vdGlmaWNhdGlvbnMubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1Bhc3RlYm9hcmROb3RpZmljYXRpb25zLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC03NCw3ICs3NCw3IEBAIFRFU1QoV2ViS2l0LCBQYXN0ZWJvYXJkTm90aWZpY2F0aW9ucykK
ICAgICBXS1BhZ2VHcm91cFNldFByZWZlcmVuY2VzKHBhZ2VHcm91cCwgcHJlZmVyZW5jZXMuZ2V0
KCkpOwogCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpj
cmVhdGVVUkxGb3JSZXNvdXJjZSgiZXhlY0NvcHkiLCAiaHRtbCIpKS5nZXQoKSk7Ci0gICAgVXRp
bDo6cnVuKCZmaW5pc2hlZCk7CisgICAgcnVuVW50aWwoZmluaXNoZWQpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9QZW5kaW5nQVBJUmVxdWVzdFVSTC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvUGVuZGluZ0FQSVJlcXVlc3RVUkwuY3BwCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QZW5kaW5nQVBJUmVx
dWVzdFVSTC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDE0ICs1NywxNCBAQCBURVNUKFdlYktp
dCwgUGVuZGluZ0FQSVJlcXVlc3RVUkwpCiAgICAgYWN0aXZlVVJMID0gYWRvcHRXSyhXS1BhZ2VD
b3B5QWN0aXZlVVJMKHdlYlZpZXcucGFnZSgpKSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGFjdGl2
ZVVSTC5nZXQoKSk7CiAgICAgRVhQRUNUX1RSVUUoV0tVUkxJc0VxdWFsKGFjdGl2ZVVSTC5nZXQo
KSwgdXJsLmdldCgpKSk7Ci0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBXS1BhZ2VSZWxvYWQod2ViVmlldy5wYWdlKCkp
OwogICAgIGFjdGl2ZVVSTCA9IGFkb3B0V0soV0tQYWdlQ29weUFjdGl2ZVVSTCh3ZWJWaWV3LnBh
Z2UoKSkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChhY3RpdmVVUkwuZ2V0KCkpOwogICAgIEVYUEVD
VF9UUlVFKFdLVVJMSXNFcXVhbChhY3RpdmVVUkwuZ2V0KCksIHVybC5nZXQoKSkpOwotICAgIFV0
aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwog
CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGh0bWxTdHJpbmcgPSBVdGlsOjp0b1dLKCI8
Ym9keT5IZWxsbywgV29ybGQ8L2JvZHk+Iik7CkBAIC03MywxNCArNzMsMTQgQEAgVEVTVChXZWJL
aXQsIFBlbmRpbmdBUElSZXF1ZXN0VVJMKQogICAgIGFjdGl2ZVVSTCA9IGFkb3B0V0soV0tQYWdl
Q29weUFjdGl2ZVVSTCh3ZWJWaWV3LnBhZ2UoKSkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChhY3Rp
dmVVUkwuZ2V0KCkpOwogICAgIEVYUEVDVF9UUlVFKFdLVVJMSXNFcXVhbChhY3RpdmVVUkwuZ2V0
KCksIGJsYW5rVVJMLmdldCgpKSk7Ci0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRp
bChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBXS1BhZ2VSZWxvYWQod2ViVmlldy5w
YWdlKCkpOwogICAgIGFjdGl2ZVVSTCA9IGFkb3B0V0soV0tQYWdlQ29weUFjdGl2ZVVSTCh3ZWJW
aWV3LnBhZ2UoKSkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChhY3RpdmVVUkwuZ2V0KCkpOwogICAg
IEVYUEVDVF9UUlVFKFdLVVJMSXNFcXVhbChhY3RpdmVVUkwuZ2V0KCksIGJsYW5rVVJMLmdldCgp
KSk7Ci0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKICAgICBkb25l
ID0gZmFsc2U7CiAKICAgICB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNl
KCJzaW1wbGUyIiwgImh0bWwiKSk7CkBAIC04OCwxNCArODgsMTQgQEAgVEVTVChXZWJLaXQsIFBl
bmRpbmdBUElSZXF1ZXN0VVJMKQogICAgIGFjdGl2ZVVSTCA9IGFkb3B0V0soV0tQYWdlQ29weUFj
dGl2ZVVSTCh3ZWJWaWV3LnBhZ2UoKSkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChhY3RpdmVVUkwu
Z2V0KCkpOwogICAgIEVYUEVDVF9UUlVFKFdLVVJMSXNFcXVhbChhY3RpdmVVUkwuZ2V0KCksIHVy
bC5nZXQoKSkpOwotICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogCiAgICAgV0tQYWdlUmVsb2FkKHdlYlZpZXcucGFnZSgpKTsKICAg
ICBhY3RpdmVVUkwgPSBhZG9wdFdLKFdLUGFnZUNvcHlBY3RpdmVVUkwod2ViVmlldy5wYWdlKCkp
KTsKICAgICBBU1NFUlRfTk9UX05VTEwoYWN0aXZlVVJMLmdldCgpKTsKICAgICBFWFBFQ1RfVFJV
RShXS1VSTElzRXF1YWwoYWN0aXZlVVJMLmdldCgpLCB1cmwuZ2V0KCkpKTsKLSAgICBVdGlsOjpy
dW4oJmRvbmUpOworICAgIHJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAg
IFdLUmV0YWluUHRyPFdLRGF0YVJlZj4gZGF0YSA9IGFkb3B0V0soV0tEYXRhQ3JlYXRlKG51bGxw
dHIsIDApKTsKQEAgLTEwMyw0MiArMTAzLDQyIEBAIFRFU1QoV2ViS2l0LCBQZW5kaW5nQVBJUmVx
dWVzdFVSTCkKICAgICBhY3RpdmVVUkwgPSBhZG9wdFdLKFdLUGFnZUNvcHlBY3RpdmVVUkwod2Vi
Vmlldy5wYWdlKCkpKTsKICAgICBBU1NFUlRfTk9UX05VTEwoYWN0aXZlVVJMLmdldCgpKTsKICAg
ICBFWFBFQ1RfVFJVRShXS1VSTElzRXF1YWwoYWN0aXZlVVJMLmdldCgpLCBibGFua1VSTC5nZXQo
KSkpOwotICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCiAgICAgV0tQYWdlUmVsb2FkKHdlYlZpZXcucGFnZSgpKTsKICAgICBhY3Rp
dmVVUkwgPSBhZG9wdFdLKFdLUGFnZUNvcHlBY3RpdmVVUkwod2ViVmlldy5wYWdlKCkpKTsKICAg
ICBBU1NFUlRfTk9UX05VTEwoYWN0aXZlVVJMLmdldCgpKTsKICAgICBFWFBFQ1RfVFJVRShXS1VS
TElzRXF1YWwoYWN0aXZlVVJMLmdldCgpLCBibGFua1VSTC5nZXQoKSkpOwotICAgIFV0aWw6OnJ1
bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAg
V0tQYWdlTG9hZERhdGEod2ViVmlldy5wYWdlKCksIGRhdGEuZ2V0KCksIG51bGxwdHIsIG51bGxw
dHIsIHVybC5nZXQoKSk7CiAgICAgYWN0aXZlVVJMID0gYWRvcHRXSyhXS1BhZ2VDb3B5QWN0aXZl
VVJMKHdlYlZpZXcucGFnZSgpKSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGFjdGl2ZVVSTC5nZXQo
KSk7CiAgICAgRVhQRUNUX1RSVUUoV0tVUkxJc0VxdWFsKGFjdGl2ZVVSTC5nZXQoKSwgdXJsLmdl
dCgpKSk7Ci0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiAKICAgICBXS1BhZ2VSZWxvYWQod2ViVmlldy5wYWdlKCkpOwogICAgIGFj
dGl2ZVVSTCA9IGFkb3B0V0soV0tQYWdlQ29weUFjdGl2ZVVSTCh3ZWJWaWV3LnBhZ2UoKSkpOwog
ICAgIEFTU0VSVF9OT1RfTlVMTChhY3RpdmVVUkwuZ2V0KCkpOwogICAgIEVYUEVDVF9UUlVFKFdL
VVJMSXNFcXVhbChhY3RpdmVVUkwuZ2V0KCksIHVybC5nZXQoKSkpOwotICAgIFV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgV0tQ
YWdlTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmcod2ViVmlldy5wYWdlKCksIGh0bWxTdHJpbmcuZ2V0
KCksIG51bGxwdHIsIHVybC5nZXQoKSk7CiAgICAgYWN0aXZlVVJMID0gYWRvcHRXSyhXS1BhZ2VD
b3B5QWN0aXZlVVJMKHdlYlZpZXcucGFnZSgpKSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGFjdGl2
ZVVSTC5nZXQoKSk7CiAgICAgRVhQRUNUX1RSVUUoV0tVUkxJc0VxdWFsKGFjdGl2ZVVSTC5nZXQo
KSwgdXJsLmdldCgpKSk7Ci0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBXS1BhZ2VSZWxvYWQod2ViVmlldy5wYWdlKCkp
OwogICAgIGFjdGl2ZVVSTCA9IGFkb3B0V0soV0tQYWdlQ29weUFjdGl2ZVVSTCh3ZWJWaWV3LnBh
Z2UoKSkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChhY3RpdmVVUkwuZ2V0KCkpOwogICAgIEVYUEVD
VF9UUlVFKFdLVVJMSXNFcXVhbChhY3RpdmVVUkwuZ2V0KCksIHVybC5nZXQoKSkpOwotICAgIFV0
aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwog
CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHBsYWluVGV4dFN0cmluZyA9IFV0aWw6OnRv
V0soIkhlbGxvLCBXb3JsZCIpOwpAQCAtMTQ2LDE0ICsxNDYsMTQgQEAgVEVTVChXZWJLaXQsIFBl
bmRpbmdBUElSZXF1ZXN0VVJMKQogICAgIGFjdGl2ZVVSTCA9IGFkb3B0V0soV0tQYWdlQ29weUFj
dGl2ZVVSTCh3ZWJWaWV3LnBhZ2UoKSkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChhY3RpdmVVUkwu
Z2V0KCkpOwogICAgIEVYUEVDVF9UUlVFKFdLVVJMSXNFcXVhbChhY3RpdmVVUkwuZ2V0KCksIGJs
YW5rVVJMLmdldCgpKSk7Ci0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBXS1BhZ2VSZWxvYWQod2ViVmlldy5wYWdlKCkp
OwogICAgIGFjdGl2ZVVSTCA9IGFkb3B0V0soV0tQYWdlQ29weUFjdGl2ZVVSTCh3ZWJWaWV3LnBh
Z2UoKSkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChhY3RpdmVVUkwuZ2V0KCkpOwogICAgIEVYUEVD
VF9UUlVFKFdLVVJMSXNFcXVhbChhY3RpdmVVUkwuZ2V0KCksIGJsYW5rVVJMLmdldCgpKSk7Ci0g
ICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFs
c2U7CiAKICAgICB1cmwgPSBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJmaWxl
Oi8vL3RtcC9pbmRleC5odG1sIikpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvUHJldmVudEVtcHR5VXNlckFnZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwCShyZXZpc2lv
biAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmV2ZW50RW1w
dHlVc2VyQWdlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBAIFRFU1QoV2Vi
S2l0LCBQcmV2ZW50RW1wdHlVc2VyQWdlbnQpCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IGphdmFTY3JpcHRTdHJpbmcgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJuYXZpZ2F0b3IudXNlckFnZW50IikpOwogICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRJbk1haW5G
cmFtZSh3ZWJWaWV3LnBhZ2UoKSwgamF2YVNjcmlwdFN0cmluZy5nZXQoKSwgcmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4oMHgxMjM0NTc4KSwgZGlkUnVuSmF2YVNjcmlwdCk7CiAKLSAgICBVdGlsOjpy
dW4oJnRlc3REb25lKTsKKyAgICBydW5VbnRpbCh0ZXN0RG9uZSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L1ByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcml2YXRlQnJvd3NpbmdQdXNo
U3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9y
eUNhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsNyArODMsNyBAQCBURVNUKFdlYktp
dCwgUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRlTm9ICiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+
IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInB1c2gtc3RhdGUiLCAi
aHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwog
Ci0gICAgVXRpbDo6cnVuKCZkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uKTsKKyAgICBydW5VbnRp
bChkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uKTsKIAogICAgIFdLUHJlZmVyZW5jZXNTZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkKHByZWZlcmVuY2VzLmdldCgpLCBmYWxzZSk7CiAKQEAgLTkyLDcg
KzkyLDcgQEAgVEVTVChXZWJLaXQsIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSAogCiAgICAg
V0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1
bigmZGlkTmF2aWdhdGUpOworICAgIHJ1blVudGlsKGRpZE5hdmlnYXRlKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvUHJvY2Vzc0RpZFRlcm1pbmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvUHJvY2Vzc0RpZFRlcm1pbmF0ZS5jcHAJKHJldmlzaW9uIDI0
NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Byb2Nlc3NEaWRUZXJt
aW5hdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MywxMSArOTMsMTEgQEAgVEVTVChXZWJLaXQs
IFByb2Nlc3NEaWRUZXJtaW5hdGVSZXF1ZXN0ZQogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1
cmwgPSBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJhYm91dDpibGFuayIpKTsK
ICAgICAvLyBMb2FkIGEgYmxhbmsgcGFnZSBhbmQgbmV4dCBraWxscyBXZWJQcm9jZXNzLgogICAg
IFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7Ci0gICAgVXRpbDo6cnVu
KCZsb2FkQmVmb3JlQ3Jhc2gpOworICAgIHJ1blVudGlsKGxvYWRCZWZvcmVDcmFzaCk7CiAKICAg
ICBXS1BhZ2VUZXJtaW5hdGUod2ViVmlldy5wYWdlKCkpOwogCi0gICAgVXRpbDo6cnVuKCZjbGll
bnRUZXJtaW5hdGlvbkhhbmRsZXJDYWxsZWQpOworICAgIHJ1blVudGlsKGNsaWVudFRlcm1pbmF0
aW9uSGFuZGxlckNhbGxlZCk7CiB9CiAKIFRFU1QoV2ViS2l0LCBQcm9jZXNzRGlkVGVybWluYXRl
V2l0aFJlYXNvbkNyYXNoKQpAQCAtMTE3LDEyICsxMTcsMTIgQEAgVEVTVChXZWJLaXQsIFByb2Nl
c3NEaWRUZXJtaW5hdGVXaXRoUmVhcwogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBh
ZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJhYm91dDpibGFuayIpKTsKICAgICAv
LyBMb2FkIGEgYmxhbmsgcGFnZSBhbmQgbmV4dCBraWxscyBXZWJQcm9jZXNzLgogICAgIFdLUGFn
ZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZsb2Fk
QmVmb3JlQ3Jhc2gpOworICAgIHJ1blVudGlsKGxvYWRCZWZvcmVDcmFzaCk7CiAKICAgICAvLyBT
aW11bGF0ZSBhIGNyYXNoIGJ5IGtpbGxpbmcgdGhlIFdlYlByb2Nlc3MuCiAgICAga2lsbChXS1Bh
Z2VHZXRQcm9jZXNzSWRlbnRpZmllcih3ZWJWaWV3LnBhZ2UoKSksIFNJR0tJTEwpOwogCi0gICAg
VXRpbDo6cnVuKCZjcmFzaEhhbmRsZXJDYWxsZWQpOworICAgIHJ1blVudGlsKGNyYXNoSGFuZGxl
ckNhbGxlZCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1JlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZWxvYWRQYWdlQWZ0
ZXJDcmFzaC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1JlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMs
MTIgKzgzLDEyIEBAIFRFU1QoV2ViS2l0LCBSZWxvYWRQYWdlQWZ0ZXJDcmFzaCkKICAgICBXS1Jl
dGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiYWJvdXQ6YmxhbmsiKSk7CiAgICAgLy8gTG9hZCBhIGJsYW5rIHBhZ2UgYW5kIG5leHQga2ls
bHMgV2ViUHJvY2Vzcy4KICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0
KCkpOwotICAgIFV0aWw6OnJ1bigmbG9hZEJlZm9yZUNyYXNoKTsKKyAgICBydW5VbnRpbChsb2Fk
QmVmb3JlQ3Jhc2gpOwogICAgIFdLUGFnZVRlcm1pbmF0ZSh3ZWJWaWV3LnBhZ2UoKSk7CiAKICAg
ICAvLyBMZXQncyB0cnkgbG9hZCBhIHBhZ2UgYW5kIHNlZSB3aGF0IGhhcHBlbnMuCiAgICAgV0tQ
YWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmxv
YWRBZnRlckNyYXNoKTsKKyAgICBydW5VbnRpbChsb2FkQWZ0ZXJDcmFzaCk7CiB9CiAKICNpZiAh
UExBVEZPUk0oV0lOKQpAQCAtMTI1LDcgKzEyNSw3IEBAIFRFU1QoV2ViS2l0LCBGb2N1c2VkRnJh
bWVBZnRlckNyYXNoKQogCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0so
VXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoIm1hbnktaWZyYW1lcyIsICJodG1sIikpOwogICAg
IFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7Ci0gICAgVXRpbDo6cnVu
KCZsb2FkQmVmb3JlQ3Jhc2gpOworICAgIHJ1blVudGlsKGxvYWRCZWZvcmVDcmFzaCk7CiAKICAg
ICBFWFBFQ1RfRkFMU0UoIVdLUGFnZUdldE1haW5GcmFtZSh3ZWJWaWV3LnBhZ2UoKSkpOwogCkBA
IC0xMzcsNyArMTM3LDcgQEAgVEVTVChXZWJLaXQsIEZvY3VzZWRGcmFtZUFmdGVyQ3Jhc2gpCiAK
ICAgICBraWxsKFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVyKHdlYlZpZXcucGFnZSgpKSwgOSk7
CiAKLSAgICBVdGlsOjpydW4oJmNhbGxlZENyYXNoSGFuZGxlcik7CisgICAgcnVuVW50aWwoY2Fs
bGVkQ3Jhc2hIYW5kbGVyKTsKIH0KIAogVEVTVChXZWJLaXQsIEZyYW1lU2V0TGFyZ2VzdEZyYW1l
QWZ0ZXJDcmFzaCkKQEAgLTE1OCw3ICsxNTgsNyBAQCBURVNUKFdlYktpdCwgRnJhbWVTZXRMYXJn
ZXN0RnJhbWVBZnRlckNyCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGh0bWxTdHJpbmcg
PSBVdGlsOjp0b1dLKCI8ZnJhbWVzZXQgY29scz0nMjUlLCosMjUlJz48ZnJhbWUgc3JjPSdhYm91
dDpibGFuayc+PGZyYW1lIHNyYz0nYWJvdXQ6YmxhbmsnPjxmcmFtZSBzcmM9J2Fib3V0OmJsYW5r
Jz48L2ZyYW1lc2V0PiIpOwogCiAgICAgV0tQYWdlTG9hZEhUTUxTdHJpbmcod2ViVmlldy5wYWdl
KCksIGh0bWxTdHJpbmcuZ2V0KCksIGJhc2VVUkwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmbG9h
ZEJlZm9yZUNyYXNoKTsKKyAgICBydW5VbnRpbChsb2FkQmVmb3JlQ3Jhc2gpOwogCiAgICAgRVhQ
RUNUX0ZBTFNFKCFXS1BhZ2VHZXRNYWluRnJhbWUod2ViVmlldy5wYWdlKCkpKTsKIApAQCAtMTY3
LDcgKzE2Nyw3IEBAIFRFU1QoV2ViS2l0LCBGcmFtZVNldExhcmdlc3RGcmFtZUFmdGVyQ3IKIAog
ICAgIGtpbGwoV0tQYWdlR2V0UHJvY2Vzc0lkZW50aWZpZXIod2ViVmlldy5wYWdlKCkpLCA5KTsK
IAotICAgIFV0aWw6OnJ1bigmY2FsbGVkQ3Jhc2hIYW5kbGVyKTsKKyAgICBydW5VbnRpbChjYWxs
ZWRDcmFzaEhhbmRsZXIpOwogfQogCiAjZW5kaWYgLy8gIVBMQVRGT1JNKFdJTikKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc2l6ZVJldmVyc2VQYWdpbmF0ZWRXZWJW
aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9S
ZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc2l6ZVJldmVyc2VQYWdpbmF0ZWRXZWJW
aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsNyBAQCBURVNUKFdlYktpdCwgUmVz
aXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpCiAKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFn
ZSgpLCBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJsb3RzLW9mLXRleHQtdmVy
dGljYWwtbHIiLCAiaHRtbCIpKS5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJnRlc3REb25lKTsK
KyAgICBydW5VbnRpbCh0ZXN0RG9uZSk7CiAgICAgRVhQRUNUX1RSVUUodGVzdERvbmUpOwogfQog
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNpemVXaW5kb3dBZnRl
ckNyYXNoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9SZXNpemVXaW5kb3dBZnRlckNyYXNoLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzaXplV2luZG93QWZ0ZXJDcmFzaC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTkxLDEyICs5MSwxMiBAQCBURVNUKFdlYktpdCwgUmVzaXplV2luZG93
QWZ0ZXJDcmFzaCkKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhXS1VS
TENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWJvdXQ6YmxhbmsiKSk7CiAgICAgLy8gTG9hZCBhIGJs
YW5rIHBhZ2UgYW5kIG5leHQga2lsbHMgV2ViUHJvY2Vzcy4KICAgICBXS1BhZ2VMb2FkVVJMKHN0
YXRlcy53ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJnN0YXRlcy5m
aXJzdExvYWQpOworICAgIHJ1blVudGlsKHN0YXRlcy5maXJzdExvYWQpOwogICAgIFdLUGFnZVRl
cm1pbmF0ZShzdGF0ZXMud2ViVmlldy5wYWdlKCkpOwogCiAgICAgLy8gTGV0J3MgdHJ5IGxvYWQg
YSBwYWdlIGFuZCBzZWUgd2hhdCBoYXBwZW5zLgogICAgIFdLUGFnZUxvYWRVUkwoc3RhdGVzLndl
YlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmc3RhdGVzLnJlc2l6ZUFm
dGVyQ3Jhc2gpOworICAgIHJ1blVudGlsKHN0YXRlcy5yZXNpemVBZnRlckNyYXNoKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvUmVzcG9uc2l2ZW5lc3NUaW1lckNyYXNoLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc3BvbnNpdmVuZXNzVGltZXJDcmFzaC5t
bQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
UmVzcG9uc2l2ZW5lc3NUaW1lckNyYXNoLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4Niw3
IEBAIFRFU1QoV2ViS2l0LCBSZXNwb25zaXZlbmVzc1RpbWVyQ3Jhc2gpCiAgICAgICAgIFt3ZWJW
aWV3IHR5cGVDaGFyYWN0ZXI6J2EnXTsKICAgICB9CiAgICAgCi0gICAgVXRpbDo6cnVuKCZkaWRC
ZWNvbWVVbnJlc3BvbnNpdmUpOworICAgIHJ1blVudGlsKGRpZEJlY29tZVVucmVzcG9uc2l2ZSk7
CiAKICAgICBbd2ViVmlldyByZW1vdmVPYnNlcnZlcjpvYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRo
OkAiX3dlYlByb2Nlc3NJc1Jlc3BvbnNpdmUiXTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1Jlc3RvcmVTZXNzaW9uU3RhdGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc3RvcmVTZXNzaW9uU3RhdGUuY3BwCShy
ZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXN0
b3JlU2Vzc2lvblN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNyBAQCBzdGF0
aWMgV0tSZXRhaW5QdHI8V0tEYXRhUmVmPiBjcmVhdGVTZXNzCiAgICAgc2V0UGFnZUxvYWRlckNs
aWVudCh3ZWJWaWV3LnBhZ2UoKSk7CiAKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgp
LCBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUtZm9ybSIsICJodG1s
IikpLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGls
KGRpZEZpbmlzaExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKIAogICAgIGF1dG8g
c2Vzc2lvblN0YXRlID0gYWRvcHRXSyhzdGF0aWNfY2FzdDxXS1Nlc3Npb25TdGF0ZVJlZj4oV0tQ
YWdlQ29weVNlc3Npb25TdGF0ZSh3ZWJWaWV3LnBhZ2UoKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4oMSksIG51bGxwdHIpKSk7CkBAIC05Niw3ICs5Niw3IEBAIFRFU1QoV2ViS2l0LCBSZXN0b3Jl
U2Vzc2lvblN0YXRlQ29udGFpbmkKICAgICBhdXRvIHNlc3Npb25TdGF0ZSA9IGFkb3B0V0soV0tT
ZXNzaW9uU3RhdGVDcmVhdGVGcm9tRGF0YShkYXRhLmdldCgpKSk7CiAgICAgV0tQYWdlUmVzdG9y
ZUZyb21TZXNzaW9uU3RhdGUod2ViVmlldy5wYWdlKCksIHNlc3Npb25TdGF0ZS5nZXQoKSk7CiAK
LSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExv
YWQpOwogCiAgICAgRVhQRUNUX0pTX0VRKHdlYlZpZXcucGFnZSgpLCAiaGlzdG9yeS5zY3JvbGxS
ZXN0b3JhdGlvbiIsICJhdXRvIik7CiB9CkBAIC0xMjEsNyArMTIxLDcgQEAgVEVTVChXZWJLaXQs
IFJlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaQogICAgIGF1dG8gc2Vzc2lvblN0YXRlID0gYWRv
cHRXSyhXS1Nlc3Npb25TdGF0ZUNyZWF0ZUZyb21EYXRhKGRhdGEuZ2V0KCkpKTsKICAgICBXS1Bh
Z2VSZXN0b3JlRnJvbVNlc3Npb25TdGF0ZSh3ZWJWaWV3LnBhZ2UoKSwgc2Vzc2lvblN0YXRlLmdl
dCgpKTsKIAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlk
RmluaXNoTG9hZCk7CiAKICAgICBFWFBFQ1RfSlNfRVEod2ViVmlldy5wYWdlKCksICJoaXN0b3J5
LnNjcm9sbFJlc3RvcmF0aW9uIiwgImF1dG8iKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1Jlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGEuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc3RvcmVT
ZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGEuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFp
bmluZ0Zvcm1EYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksMTEgKzU5LDExIEBAIHN0YXRp
YyBXS1JldGFpblB0cjxXS0RhdGFSZWY+IGNyZWF0ZVNlc3MKICAgICBzZXRQYWdlTG9hZGVyQ2xp
ZW50KHdlYlZpZXcucGFnZSgpKTsKIAogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCks
IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZS1mb3JtIiwgImh0bWwi
KSkuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwo
ZGlkRmluaXNoTG9hZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgRVhQRUNU
X0pTX0VRKHdlYlZpZXcucGFnZSgpLCAic3VibWl0Rm9ybSgpIiwgInVuZGVmaW5lZCIpOwotICAg
IFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7
CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgYXV0byBzZXNzaW9uU3RhdGUgPSBh
ZG9wdFdLKHN0YXRpY19jYXN0PFdLU2Vzc2lvblN0YXRlUmVmPihXS1BhZ2VDb3B5U2Vzc2lvblN0
YXRlKHdlYlZpZXcucGFnZSgpLCByZWludGVycHJldF9jYXN0PHZvaWQqPigxKSwgbnVsbHB0cikp
KTsKQEAgLTg2LDcgKzg2LDcgQEAgVEVTVChXZWJLaXQsIFJlc3RvcmVTZXNzaW9uU3RhdGVDb250
YWluaQogICAgIGF1dG8gc2Vzc2lvblN0YXRlID0gYWRvcHRXSyhXS1Nlc3Npb25TdGF0ZUNyZWF0
ZUZyb21EYXRhKGRhdGEuZ2V0KCkpKTsKICAgICBXS1BhZ2VSZXN0b3JlRnJvbVNlc3Npb25TdGF0
ZSh3ZWJWaWV3LnBhZ2UoKSwgc2Vzc2lvblN0YXRlLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigm
ZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAKICAgICBFWFBF
Q1RfVFJVRShXS1BhZ2VDYW5Hb0JhY2sod2ViVmlldy5wYWdlKCkpKTsKIH0KSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Njcm9sbFBpbm5pbmdCZWhhdmlvcnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Njcm9sbFBpbm5p
bmdCZWhhdmlvcnMuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9TY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtOTMsNyArOTMsNyBAQCBURVNUKFdlYktpdCwgU2Nyb2xsUGlubmluZ0JlaGF2aW9ycykKIAog
ICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJM
Rm9yUmVzb3VyY2UoInNpbXBsZS10YWxsIiwgImh0bWwiKSkuZ2V0KCkpOwogCi0gICAgVXRpbDo6
cnVuKCZ0ZXN0RG9uZSk7CisgICAgcnVuVW50aWwodGVzdERvbmUpOwogICAgIEVYUEVDVF9UUlVF
KHRlc3REb25lKTsKIH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
U2hvdWxkS2VlcEN1cnJlbnRCYWNrRm9yd2FyZExpc3RJdGVtSW5MaXN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TaG91bGRLZWVwQ3VycmVudEJh
Y2tGb3J3YXJkTGlzdEl0ZW1Jbkxpc3QuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TaG91bGRLZWVwQ3VycmVudEJhY2tGb3J3YXJkTGlz
dEl0ZW1Jbkxpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksMjIgKzEyOSwyMiBAQCBURVNU
KFdlYktpdCwgU2hvdWxkS2VlcEN1cnJlbnRCYWNrRm9yd2FyCiAgICAgc2V0UGFnZUxvYWRlckNs
aWVudCh3ZWJWaWV3LnBhZ2UoKSk7CiAKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgp
LCBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUiLCAiaHRtbCIpKS5n
ZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgcnVuVW50aWwoZmluaXNoZWQp
OwogICAgIEVYUEVDVF9FUShzdWNjZXNzZnVsU29GYXIsIHRydWUpOwogCiAgICAgZmluaXNoZWQg
PSBmYWxzZTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9wdFdLKFV0aWw6
OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUyIiwgImh0bWwiKSkuZ2V0KCkpOwotICAgIFV0
aWw6OnJ1bigmZmluaXNoZWQpOworICAgIHJ1blVudGlsKGZpbmlzaGVkKTsKICAgICBFWFBFQ1Rf
RVEoc3VjY2Vzc2Z1bFNvRmFyLCB0cnVlKTsKIAogICAgIGZpbmlzaGVkID0gZmFsc2U7CiAgICAg
V0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JS
ZXNvdXJjZSgic2ltcGxlMyIsICJodG1sIikpLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmZpbmlz
aGVkKTsKKyAgICBydW5VbnRpbChmaW5pc2hlZCk7CiAgICAgRVhQRUNUX0VRKHN1Y2Nlc3NmdWxT
b0ZhciwgdHJ1ZSk7CiAKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogICAgIFdLUGFnZUdvQmFjayh3
ZWJWaWV3LnBhZ2UoKSk7Ci0gICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgcnVuVW50aWwo
ZmluaXNoZWQpOwogCiAgICAgRVhQRUNUX0VRKHN1Y2Nlc3NmdWxTb0ZhciwgdHJ1ZSk7CiAgICAg
RVhQRUNUX0VRKG5hdmlnYXRpb25OdW1iZXIsIDQpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJTY3JvbGxpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5nLmNwcAkocmV2aXNp
b24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3BhY2ViYXJT
Y3JvbGxpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw3IEBAIFRFU1QoV2ViS2l0
LCBTcGFjZWJhclNjcm9sbGluZykKIAogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBh
ZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzcGFjZWJhci1zY3JvbGxpbmciLCAi
aHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwot
ICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9h
ZCk7CiAKICAgICBFWFBFQ1RfSlNfRkFMU0Uod2ViVmlldy5wYWdlKCksICJpc0RvY3VtZW50U2Ny
b2xsZWQoKSIpOwogICAgIEVYUEVDVF9KU19GQUxTRSh3ZWJWaWV3LnBhZ2UoKSwgInRleHRGaWVs
ZENvbnRhaW5zU3BhY2UoKSIpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvU3RvcExvYWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TdG9wTG9hZGluZ0R1cmluZ0Rp
ZEZhaWxQcm92aXNpb25hbExvYWQuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TdG9wTG9hZGluZ0R1cmluZ0RpZEZhaWxQcm92aXNpb25h
bExvYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3IEBAIFRFU1QoV2ViS2l0LCBT
dG9wTG9hZGluZ0R1cmluZ0RpZEZhaWxQcm8KICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJs
ID0gYWRvcHRXSyhVdGlsOjpVUkxGb3JOb25FeGlzdGVudFJlc291cmNlKCkpOwogICAgIFdLUGFn
ZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJmRv
bmUpOworICAgIHJ1blVudGlsKGRvbmUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9UZXJtaW5hdGVUd2lj
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVGVy
bWluYXRlVHdpY2UuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9UZXJtaW5hdGVUd2ljZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDcg
KzU1LDcgQEAgVEVTVChXZWJLaXQsIFRlcm1pbmF0ZVR3aWNlKQogICAgIFdLUmV0YWluUHRyPFdL
VVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUi
LCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkp
OwogCi0gICAgVXRpbDo6cnVuKCZsb2FkZWQpOworICAgIHJ1blVudGlsKGxvYWRlZCk7CiAgICAg
V0tQYWdlVGVybWluYXRlKHdlYlZpZXcucGFnZSgpKTsKIAogICAgIC8vIFJlbG9hZGluZyB3aWxs
IHN0YXJ0IHJlbGF1bmNoaW5nIHRoZSBwcm9jZXNzLgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9UZXh0RmllbGREaWRCZWdp
bkFuZEVuZEVkaXRpbmcuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9UZXh0RmllbGREaWRCZWdpbkFuZEVuZEVkaXRpbmcuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04Nyw3ICs4Nyw3IEBAIHN0cnVjdCBXZWJLaXQyVGV4dEZpZWxkQmVnaW5B
bmRFZGl0RWRpdGkKICAgICB7CiAgICAgICAgIGRpZFJlY2VpdmVNZXNzYWdlID0gZmFsc2U7CiAg
ICAgICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh3ZWJWaWV3LT5wYWdlKCksIFV0
aWw6OnRvV0soamF2YVNjcmlwdENvZGUpLmdldCgpLCAwLCBudWxsSmF2YVNjcmlwdENhbGxiYWNr
KTsKLSAgICAgICAgVXRpbDo6cnVuKCZkaWRSZWNlaXZlTWVzc2FnZSk7CisgICAgICAgIHJ1blVu
dGlsKGRpZFJlY2VpdmVNZXNzYWdlKTsKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKGV4cGVjdGVk
TWVzc2FnZU5hbWUsIG1lc3NhZ2VOYW1lKTsKICAgICB9CiAKQEAgLTEwNCw3ICsxMDQsNyBAQCBz
dHJ1Y3QgV2ViS2l0MlRleHRGaWVsZEJlZ2luQW5kRWRpdEVkaXRpCiAgICAgICAgIGRpZFJlY2Vp
dmVNZXNzYWdlID0gZmFsc2U7CiAKICAgICAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LT5wYWdl
KCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImlucHV0LWZvY3VzLWJsdXIi
LCAiaHRtbCIpKS5nZXQoKSk7Ci0gICAgICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7Cisg
ICAgICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIH0KIH07CiAKSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNwcAkocmV2aXNpb24g
MjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lZGlhLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtOTMsNyArOTMsNyBAQCBURVNUKFdlYktpdCwgVXNlck1lZGlh
QmFzaWMpCiAKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwog
Ci0gICAgVXRpbDo6cnVuKCZ3YXNQcm9tcHRlZCk7CisgICAgcnVuVW50aWwod2FzUHJvbXB0ZWQp
OwogfQogCiBzdGF0aWMgdm9pZCBkaWRDcmFzaENhbGxiYWNrKFdLUGFnZVJlZiwgY29uc3Qgdm9p
ZCopCkBAIC0xNDEsNyArMTQxLDcgQEAgVEVTVChXZWJLaXQsIE9uRGV2aWNlQ2hhbmdlQ3Jhc2gp
CiAgICAgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKICAgICB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0
ZVVSTEZvclJlc291cmNlKCJnZXRVc2VyTWVkaWEiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2Fk
VVJMKHdlYlZpZXcyLnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJndhc1Byb21w
dGVkKTsKKyAgICBydW5VbnRpbCh3YXNQcm9tcHRlZCk7CiAgICAgRVhQRUNUX0VRKFdLUGFnZUdl
dFByb2Nlc3NJZGVudGlmaWVyKHdlYlZpZXcucGFnZSgpKSwgV0tQYWdlR2V0UHJvY2Vzc0lkZW50
aWZpZXIod2ViVmlldzIucGFnZSgpKSk7CiAKICAgICBkaWRDcmFzaCA9IGZhbHNlOwpAQCAtMTUy
LDcgKzE1Miw3IEBAIFRFU1QoV2ViS2l0LCBPbkRldmljZUNoYW5nZUNyYXNoKQogICAgIHdhc1By
b21wdGVkID0gZmFsc2U7CiAgICAgdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNv
dXJjZSgiZ2V0VXNlck1lZGlhIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3
Mi5wYWdlKCksIHVybC5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZ3YXNQcm9tcHRlZCk7CisgICAg
cnVuVW50aWwod2FzUHJvbXB0ZWQpOwogICAgIC8vIFZlcmlmeSBwYWdlcyBwcm9jZXNzIGRpZCBu
b3QgY3Jhc2guCiAgICAgRVhQRUNUX1RSVUUoIWRpZENyYXNoKTsKIH0KQEAgLTE5Miw3ICsxOTIs
NyBAQCBURVNUKFdlYktpdCwgRW51bWVyYXRlRGV2aWNlc0NyYXNoKQogICAgIGRpZFJlY2VpdmVN
ZXNzYWdlID0gZmFsc2U7CiAgICAgYXV0byB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZv
clJlc291cmNlKCJnZXRVc2VyTWVkaWEiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdl
YlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkUmVjZWl2ZU1lc3Nh
Z2UpOworICAgIHJ1blVudGlsKGRpZFJlY2VpdmVNZXNzYWdlKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
VXNlck1lc3NhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1VzZXJNZXNzYWdlLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvVXNlck1lc3NhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDEsNyArMTAxLDcgQEAgcHVibGljOgogCiAgICAgICAgIC8vIEZvcmNlIHRoZSBjcmVhdGlvbiBv
ZiB0aGUgCiAgICAgICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy0+cGFnZSgpLCBhZG9wdFdLKFV0
aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUiLCAiaHRtbCIpKS5nZXQoKSk7Ci0gICAg
ICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgICAgIHJ1blVudGlsKGRpZEZpbmlz
aExvYWQpOwogCiAgICAgfQogCkBAIC0xMTQsNyArMTE0LDcgQEAgcHVibGljOgogICAgICAgICBy
ZWNpZXZlZEJvZHkuY2xlYXIoKTsKICAgICAgICAgZGlkUmVjZWl2ZU1lc3NhZ2UgPSBmYWxzZTsK
ICAgICAgICAgV0tDb250ZXh0UG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKGNvbnRleHQuZ2V0
KCksIFV0aWw6OnRvV0soIlJvdW5kVHJpcCIpLmdldCgpLCBvYmplY3QpOwotICAgICAgICBVdGls
OjpydW4oJmRpZFJlY2VpdmVNZXNzYWdlKTsKKyAgICAgICAgcnVuVW50aWwoZGlkUmVjZWl2ZU1l
c3NhZ2UpOwogCiAgICAgICAgIEVYUEVDVF9OT1RfTlVMTChyZWNpZXZlZEJvZHkpOwogICAgICAg
ICBFWFBFQ1RfRVEoc3RvcmVkVHlwZUlELCBXS0dldFR5cGVJRChyZWNpZXZlZEJvZHkuZ2V0KCkp
KTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ZpZXdwb3J0U2l6ZUZv
clZpZXdwb3J0VW5pdHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cy5tbQkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVmlld3BvcnRTaXplRm9yVmll
d3BvcnRVbml0cy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBURVNUKFdlYktp
dCwgVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0CiAgICAgICAgIHZpZXdwb3J0U2l6ZVRlc3RE
b25lID0gdHJ1ZTsKICAgICB9XTsKICAgICB2aWV3cG9ydFNpemVUZXN0RG9uZSA9IGZhbHNlOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmdmlld3BvcnRTaXplVGVzdERvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHZpZXdwb3J0U2l6ZVRlc3REb25lKTsKIAogICAgIC8v
IHZpZXdwb3J0IHdpZHRoIGlzIDUwcHguCiAgICAgW3dlYlZpZXcgX3NldFZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHM6TlNNYWtlU2l6ZSg1MCwgNTApXTsKQEAgLTU5LDcgKzU5LDcgQEAg
VEVTVChXZWJLaXQsIFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdAogICAgICAgICB2aWV3cG9y
dFNpemVUZXN0RG9uZSA9IHRydWU7CiAgICAgfV07CiAgICAgdmlld3BvcnRTaXplVGVzdERvbmUg
PSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnZpZXdwb3J0U2l6ZVRlc3RE
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbCh2aWV3cG9ydFNpemVUZXN0RG9uZSk7
CiAKICAgICAvLyB2aWV3cG9ydCBoZWlnaHQgMTBweC4KICAgICBbd2ViVmlldyBfc2V0Vmlld3Bv
cnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czpOU01ha2VTaXplKDEwLCAxMCldOwpAQCAtNzEsNyAr
NzEsNyBAQCBURVNUKFdlYktpdCwgVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0CiAgICAgICAg
IHZpZXdwb3J0U2l6ZVRlc3REb25lID0gdHJ1ZTsKICAgICB9XTsKICAgICB2aWV3cG9ydFNpemVU
ZXN0RG9uZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmdmlld3BvcnRT
aXplVGVzdERvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHZpZXdwb3J0U2l6ZVRl
c3REb25lKTsKIAogICAgIGJvb2wgZXhjZXB0aW9uUmFpc2VkID0gZmFsc2U7CiAgICAgQHRyeSB7
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS0JhY2tGb3J3YXJkTGlz
dC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS0Jh
Y2tGb3J3YXJkTGlzdC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvV0tCYWNrRm9yd2FyZExpc3QubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2
Myw2ICsxNjMsNiBAQCBURVNUKFdLQmFja0ZvcndhcmRMaXN0LCBXaW5kb3dMb2NhdGlvbkFzCiAg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tBc3luY1BvbGljeURlY2lzaW9uRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdh
dGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPHNjcmlwdD53aW5kb3cu
bG9jYXRpb249J3NpbXBsZS5odG1sJzwvc2NyaXB0PiIgYmFzZVVSTDpzaW1wbGUyXTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIEVYUEVDVF9TVFJFUSh3ZWJWaWV3LmdldCgpLmJhY2tGb3J3YXJkTGlz
dC5jdXJyZW50SXRlbS5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZywgc2ltcGxlLmFic29s
dXRlU3RyaW5nLlVURjhTdHJpbmcpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvV0tQYWdlQ29uZmlndXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlQ29uZmlndXJhdGlvbi5jcHAJKHJldmlzaW9u
IDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNvbmZp
Z3VyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3IEBAIFRFU1QoV2ViS2l0
LCBXS1BhZ2VDb25maWd1cmF0aW9uQmFzaWMpCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBh
Z2UoKSwgdXJsLmdldCgpKTsKIAogICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKLSAgICBVdGls
OjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogfQog
CiBURVNUKFdlYktpdCwgV0tQYWdlQ29uZmlndXJhdGlvbkJhc2ljV2l0aERhdGFTdG9yZSkKQEAg
LTEwMiw3ICsxMDIsNyBAQCBURVNUKFdlYktpdCwgV0tQYWdlQ29uZmlndXJhdGlvbkJhc2ljV2l0
CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAogICAgIGRp
ZEZpbmlzaExvYWQgPSBmYWxzZTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAg
IHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogfQogCiBURVNUKFdlYktpdCwgV0tQYWdlQ29uZmln
dXJhdGlvbkJhc2ljV2l0aE5vblBlcnNpc3RlbnREYXRhU3RvcmUpCkBAIC0xMjQsNyArMTI0LDcg
QEAgVEVTVChXZWJLaXQsIFdLUGFnZUNvbmZpZ3VyYXRpb25CYXNpY1dpdAogICAgIFdLUGFnZUxv
YWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAKICAgICBkaWRGaW5pc2hMb2FkID0g
ZmFsc2U7Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRG
aW5pc2hMb2FkKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlQ29weVNlc3Npb25TdGF0ZVdpdGhG
aWx0ZXJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1dLUGFnZUNvcHlTZXNzaW9uU3RhdGVXaXRoRmlsdGVyaW5nLmNwcAkocmV2aXNpb24gMjQ1
NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlQ29weVNlc3Np
b25TdGF0ZVdpdGhGaWx0ZXJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCwyMyArNzgsMjMg
QEAgc3RhdGljIHZvaWQgY3JlYXRlU2Vzc2lvblN0YXRlcyhXS0NvbnRleAogICAgIHNldFBhZ2VM
b2FkZXJDbGllbnQod2ViVmlldy5wYWdlKCkpOwogCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3
LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwgImh0
bWwiKSkuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50
aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgV0tQ
YWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNv
dXJjZSgic2ltcGxlMiIsICJodG1sIikpLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlz
aExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQg
PSBmYWxzZTsKIAogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRp
bDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZTMiLCAiaHRtbCIpKS5nZXQoKSk7Ci0gICAg
VXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsK
ICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAKICAgICBXS1BhZ2VHb0JhY2sod2ViVmlldy5w
YWdlKCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlk
RmluaXNoTG9hZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgV0tQYWdlR29C
YWNrKHdlYlZpZXcucGFnZSgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAg
IHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKIAog
ICAgIC8vIFNob3VsZCBiZSBiYWNrIG9uIHNpbXBsZS5odG1sIGF0IHRoaXMgcG9pbnQuCkBAIC0x
MTMsNyArMTEzLDcgQEAgVEVTVChXZWJLaXQsIFdLUGFnZUNvcHlTZXNzaW9uU3RhdGVXaXRoRgog
ICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3MShjb250ZXh0LmdldCgpKTsKICAgICBzZXRQYWdl
TG9hZGVyQ2xpZW50KHdlYlZpZXcxLnBhZ2UoKSk7CiAgICAgV0tQYWdlUmVzdG9yZUZyb21TZXNz
aW9uU3RhdGUod2ViVmlldzEucGFnZSgpLCBzZXNzaW9uU3RhdGVXaXRoRmlyc3RJdGVtUmVtb3Zl
ZC5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChk
aWRGaW5pc2hMb2FkKTsKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAKICAgICBXS0JhY2tG
b3J3YXJkTGlzdFJlZiBiYWNrRm9yd2FyZExpc3QxID0gV0tQYWdlR2V0QmFja0ZvcndhcmRMaXN0
KHdlYlZpZXcxLnBhZ2UoKSk7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9XS1BhZ2VHZXRTY2FsZUZhY3Rvck5vdFplcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUdldFNjYWxlRmFjdG9yTm90WmVyby5jcHAJ
KHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dL
UGFnZUdldFNjYWxlRmFjdG9yTm90WmVyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3
LDcgQEAgc3RhdGljIFdLUmV0YWluUHRyPFdLU2Vzc2lvblN0YXRlUmVmPiBjcgogICAgIHNldFBh
Z2VMb2FkZXJDbGllbnQod2ViVmlldy5wYWdlKCkpOwogCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJW
aWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwg
Imh0bWwiKSkuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVu
VW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAg
cmV0dXJuIGFkb3B0V0soc3RhdGljX2Nhc3Q8V0tTZXNzaW9uU3RhdGVSZWY+KFdLUGFnZUNvcHlT
ZXNzaW9uU3RhdGUod2ViVmlldy5wYWdlKCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDEpLCBu
dWxscHRyKSkpOwpAQCAtNzQsNyArNzQsNyBAQCBURVNUKFdlYktpdCwgV0tQYWdlR2V0U2NhbGVG
YWN0b3JOb3RaZXJvCiAgICAgRVhQRUNUX05PVF9OVUxMKHNlc3Npb25TdGF0ZSk7CiAKICAgICBX
S1BhZ2VSZXN0b3JlRnJvbVNlc3Npb25TdGF0ZSh3ZWJWaWV3LnBhZ2UoKSwgc2Vzc2lvblN0YXRl
LmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRp
ZEZpbmlzaExvYWQpOwogCiAgICAgRVhQRUNUX1RSVUUoV0tQYWdlR2V0U2NhbGVGYWN0b3Iod2Vi
Vmlldy5wYWdlKCkpID09IDEuMCk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9XS1BhZ2VJc1BsYXlpbmdBdWRpby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlSXNQbGF5aW5nQXVkaW8uY3BwCShyZXZpc2lv
biAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VJc1Bs
YXlpbmdBdWRpby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNCwxMiArMTA0LDEyIEBAIFRFU1Qo
V2ViS2l0LCBXS1BhZ2VJc1BsYXlpbmdBdWRpbykKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4g
dXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiZmlsZS13aXRoLXZpZGVv
IiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgp
KTsKIAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmlu
aXNoTG9hZCk7CiAKICAgICBFWFBFQ1RfRkFMU0UoV0tQYWdlSXNQbGF5aW5nQXVkaW8od2ViVmll
dy5wYWdlKCkpKTsKICAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWUod2ViVmlldy5w
YWdlKCksIFV0aWw6OnRvV0soInBsYXlWaWRlbygpIikuZ2V0KCksIDAsIG51bGxKYXZhU2NyaXB0
Q2FsbGJhY2spOwogCi0gICAgVXRpbDo6cnVuKCZpc1BsYXlpbmdBdWRpb0NoYW5nZWQpOworICAg
IHJ1blVudGlsKGlzUGxheWluZ0F1ZGlvQ2hhbmdlZCk7CiAgICAgRVhQRUNUX1RSVUUoV0tQYWdl
SXNQbGF5aW5nQXVkaW8od2ViVmlldy5wYWdlKCkpKTsKIH0KIApAQCAtMTI5LDEyICsxMjksMTIg
QEAgVEVTVChXZWJLaXQsIE1TRUlzUGxheWluZ0F1ZGlvKQogICAgIGRpZEZpbmlzaExvYWQgPSBm
YWxzZTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCi0g
ICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2Fk
KTsKIAogICAgIC8vIEJhaWwgb3V0IG9mIHRoZSB0ZXN0IGVhcmx5IGlmIHRoZSBwbGF0Zm9ybSBk
b2VzIG5vdCBzdXBwb3J0IE1TRS4KICAgICBpc01TRUVuYWJsZWRDaGFuZ2VkID0gZmFsc2U7CiAg
ICAgV0tQYWdlUnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHdlYlZpZXcucGFnZSgpLCBVdGlsOjp0
b1dLKCJ3aW5kb3cuTWVkaWFTb3VyY2UgIT09IHVuZGVmaW5lZCIpLmdldCgpLCAwLCBpc01TRUVu
YWJsZWRDYWxsYmFjayk7Ci0gICAgVXRpbDo6cnVuKCZpc01TRUVuYWJsZWRDaGFuZ2VkKTsKKyAg
ICBydW5VbnRpbChpc01TRUVuYWJsZWRDaGFuZ2VkKTsKICAgICBpZiAoIWlzTVNFRW5hYmxlZCkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC0xNDIsNyArMTQyLDcgQEAgVEVTVChXZWJLaXQsIE1TRUlz
UGxheWluZ0F1ZGlvKQogICAgIGlzUGxheWluZ0F1ZGlvQ2hhbmdlZCA9IGZhbHNlOwogICAgIFdL
UGFnZVJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh3ZWJWaWV3LnBhZ2UoKSwgVXRpbDo6dG9XSygi
cGxheVZpZGVvKCkiKS5nZXQoKSwgMCwgbnVsbEphdmFTY3JpcHRDYWxsYmFjayk7CiAKLSAgICBV
dGlsOjpydW4oJmlzUGxheWluZ0F1ZGlvQ2hhbmdlZCk7CisgICAgcnVuVW50aWwoaXNQbGF5aW5n
QXVkaW9DaGFuZ2VkKTsKICAgICBFWFBFQ1RfVFJVRShXS1BhZ2VJc1BsYXlpbmdBdWRpbyh3ZWJW
aWV3LnBhZ2UoKSkpOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9XS1RodW1ibmFpbFZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvV0tUaHVtYm5haWxWaWV3Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1RodW1ibmFpbFZpZXcubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBURVNUKFdlYktpdCwgV0tUaHVtYm5haWxWaWV3S2Vl
cFNuYXBzaG90CiAKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGls
OjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgibG90cy1vZi10ZXh0IiwgImh0bWwiKSk7CiAgICAgV0tQ
YWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRp
ZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIGRpZEZpbmlz
aExvYWQgPSBmYWxzZTsKIAogICAgIFJldGFpblB0cjxfV0tUaHVtYm5haWxWaWV3PiB0aHVtYm5h
aWxWaWV3ID0gYWRvcHROUyhbW19XS1RodW1ibmFpbFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCAxMDAsIDEwMCkgZnJvbVdLVmlldzp3a1ZpZXddKTsKQEAgLTExNCw3
ICsxMTQsNyBAQCBURVNUKFdlYktpdCwgV0tUaHVtYm5haWxWaWV3S2VlcFNuYXBzaG90CiAgICAg
W3RodW1ibmFpbFZpZXcgYWRkT2JzZXJ2ZXI6b2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAInNu
YXBzaG90U2l6ZSIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6
c25hcHNob3RTaXplQ2hhbmdlS1ZPQ29udGV4dF07CiAKICAgICBbd2tWaWV3LndpbmRvdy5jb250
ZW50VmlldyBhZGRTdWJ2aWV3OnRodW1ibmFpbFZpZXcuZ2V0KCldOwotICAgIFV0aWw6OnJ1bigm
ZGlkVGFrZVNuYXBzaG90KTsKKyAgICBydW5VbnRpbChkaWRUYWtlU25hcHNob3QpOwogICAgIGRp
ZFRha2VTbmFwc2hvdCA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0VRKFt0aHVtYm5haWxWaWV3IHNu
YXBzaG90U2l6ZV0ud2lkdGgsIDgwMCk7CkBAIC0xMjUsNyArMTI1LDcgQEAgVEVTVChXZWJLaXQs
IFdLVGh1bWJuYWlsVmlld0tlZXBTbmFwc2hvdAogICAgIEVYUEVDVF9UUlVFKFt0aHVtYm5haWxW
aWV3IGxheWVyXS5jb250ZW50cyA9PSBuaWwpOwogCiAgICAgW3drVmlldy53aW5kb3cuY29udGVu
dFZpZXcgYWRkU3Vidmlldzp0aHVtYm5haWxWaWV3LmdldCgpXTsKLSAgICBVdGlsOjpydW4oJmRp
ZFRha2VTbmFwc2hvdCk7CisgICAgcnVuVW50aWwoZGlkVGFrZVNuYXBzaG90KTsKICAgICBkaWRU
YWtlU25hcHNob3QgPSBmYWxzZTsKIAogICAgIFt0aHVtYm5haWxWaWV3IHNldFNob3VsZEtlZXBT
bmFwc2hvdFdoZW5SZW1vdmVkRnJvbVN1cGVydmlldzpZRVNdOwpAQCAtMTUwLDcgKzE1MCw3IEBA
IFRFU1QoV2ViS2l0LCBXS1RodW1ibmFpbFZpZXdNYXhpbXVtU25hcHMKIAogICAgIFdLUmV0YWlu
UHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJs
b3RzLW9mLXRleHQiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgp
LCB1cmwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50
aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgUmV0
YWluUHRyPF9XS1RodW1ibmFpbFZpZXc+IHRodW1ibmFpbFZpZXcgPSBhZG9wdE5TKFtbX1dLVGh1
bWJuYWlsVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDEwMCwgMTAw
KSBmcm9tV0tWaWV3OndrVmlld10pOwpAQCAtMTYwLDE0ICsxNjAsMTQgQEAgVEVTVChXZWJLaXQs
IFdLVGh1bWJuYWlsVmlld01heGltdW1TbmFwcwogICAgIFt0aHVtYm5haWxWaWV3IGFkZE9ic2Vy
dmVyOm9ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJzbmFwc2hvdFNpemUiIG9wdGlvbnM6TlNL
ZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0OnNuYXBzaG90U2l6ZUNoYW5nZUtWT0Nv
bnRleHRdOwogCiAgICAgW3drVmlldy53aW5kb3cuY29udGVudFZpZXcgYWRkU3Vidmlldzp0aHVt
Ym5haWxWaWV3LmdldCgpXTsKLSAgICBVdGlsOjpydW4oJmRpZFRha2VTbmFwc2hvdCk7CisgICAg
cnVuVW50aWwoZGlkVGFrZVNuYXBzaG90KTsKICAgICBkaWRUYWtlU25hcHNob3QgPSBmYWxzZTsK
IAogICAgIEVYUEVDVF9FUShbdGh1bWJuYWlsVmlldyBzbmFwc2hvdFNpemVdLndpZHRoLCA4MDAp
OwogICAgIEVYUEVDVF9GQUxTRShbdGh1bWJuYWlsVmlldyBsYXllcl0uY29udGVudHMgPT0gbmls
KTsKIAogICAgIFt0aHVtYm5haWxWaWV3IHNldE1heGltdW1TbmFwc2hvdFNpemU6Q0dTaXplTWFr
ZSgyMDAsIDApXTsKLSAgICBVdGlsOjpydW4oJmRpZFRha2VTbmFwc2hvdCk7CisgICAgcnVuVW50
aWwoZGlkVGFrZVNuYXBzaG90KTsKICAgICBkaWRUYWtlU25hcHNob3QgPSBmYWxzZTsKIAogICAg
IEVYUEVDVF9FUShbdGh1bWJuYWlsVmlldyBzbmFwc2hvdFNpemVdLndpZHRoLCAyMDApOwpAQCAt
MTc1LDcgKzE3NSw3IEBAIFRFU1QoV2ViS2l0LCBXS1RodW1ibmFpbFZpZXdNYXhpbXVtU25hcHMK
ICAgICBFWFBFQ1RfRkFMU0UoW3RodW1ibmFpbFZpZXcgbGF5ZXJdLmNvbnRlbnRzID09IG5pbCk7
CiAKICAgICBbdGh1bWJuYWlsVmlldyBzZXRNYXhpbXVtU25hcHNob3RTaXplOkNHU2l6ZU1ha2Uo
MCwgMzAwKV07Ci0gICAgVXRpbDo6cnVuKCZkaWRUYWtlU25hcHNob3QpOworICAgIHJ1blVudGls
KGRpZFRha2VTbmFwc2hvdCk7CiAgICAgZGlkVGFrZVNuYXBzaG90ID0gZmFsc2U7CiAKICAgICBF
WFBFQ1RfRVEoW3RodW1ibmFpbFZpZXcgc25hcHNob3RTaXplXS53aWR0aCwgNDAwKTsKQEAgLTE4
Myw3ICsxODMsNyBAQCBURVNUKFdlYktpdCwgV0tUaHVtYm5haWxWaWV3TWF4aW11bVNuYXBzCiAg
ICAgRVhQRUNUX0ZBTFNFKFt0aHVtYm5haWxWaWV3IGxheWVyXS5jb250ZW50cyA9PSBuaWwpOwog
CiAgICAgW3RodW1ibmFpbFZpZXcgc2V0TWF4aW11bVNuYXBzaG90U2l6ZTpDR1NpemVNYWtlKDIw
MCwgMzAwKV07Ci0gICAgVXRpbDo6cnVuKCZkaWRUYWtlU25hcHNob3QpOworICAgIHJ1blVudGls
KGRpZFRha2VTbmFwc2hvdCk7CiAgICAgZGlkVGFrZVNuYXBzaG90ID0gZmFsc2U7CiAKICAgICBF
WFBFQ1RfRVEoW3RodW1ibmFpbFZpZXcgc25hcHNob3RTaXplXS53aWR0aCwgMjAwKTsKQEAgLTIw
Miw3ICsyMDIsNyBAQCBURVNUKFdlYktpdCwgV0tUaHVtYm5haWxWaWV3S2VlcFNuYXBzaG90CiAg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS1RodW1ibmFpbFZpZXdEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5n
ZXQoKV07CiAgICAgW3dlYlZpZXcgIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAImxvdHMtb2YtdGV4
dCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl1dXTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGls
KGRpZEZpbmlzaExvYWQpOwogCiAgICAgUmV0YWluUHRyPF9XS1RodW1ibmFpbFZpZXc+IHRodW1i
bmFpbFZpZXcgPSBhZG9wdE5TKFtbX1dLVGh1bWJuYWlsVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDEwMCwgMTAwKSBmcm9tV0tXZWJWaWV3OndlYlZpZXcuZ2V0KCld
KTsKICAgICAKQEAgLTIxMSw3ICsyMTEsNyBAQCBURVNUKFdlYktpdCwgV0tUaHVtYm5haWxWaWV3
S2VlcFNuYXBzaG90CiAgICAgW3RodW1ibmFpbFZpZXcgYWRkT2JzZXJ2ZXI6b2JzZXJ2ZXIuZ2V0
KCkgZm9yS2V5UGF0aDpAInNuYXBzaG90U2l6ZSIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5n
T3B0aW9uTmV3IGNvbnRleHQ6c25hcHNob3RTaXplQ2hhbmdlS1ZPQ29udGV4dF07CiAgICAgCiAg
ICAgW3dlYlZpZXcgYWRkU3Vidmlldzp0aHVtYm5haWxWaWV3LmdldCgpXTsKLSAgICBVdGlsOjpy
dW4oJmRpZFRha2VTbmFwc2hvdCk7CisgICAgcnVuVW50aWwoZGlkVGFrZVNuYXBzaG90KTsKICAg
ICBkaWRUYWtlU25hcHNob3QgPSBmYWxzZTsKICAgICAKICAgICBFWFBFQ1RfRVEoW3RodW1ibmFp
bFZpZXcgc25hcHNob3RTaXplXS53aWR0aCwgODAwKTsKQEAgLTIyMiw3ICsyMjIsNyBAQCBURVNU
KFdlYktpdCwgV0tUaHVtYm5haWxWaWV3S2VlcFNuYXBzaG90CiAgICAgRVhQRUNUX1RSVUUoW3Ro
dW1ibmFpbFZpZXcgbGF5ZXJdLmNvbnRlbnRzID09IG5pbCk7CiAgICAgCiAgICAgW3dlYlZpZXcg
YWRkU3Vidmlldzp0aHVtYm5haWxWaWV3LmdldCgpXTsKLSAgICBVdGlsOjpydW4oJmRpZFRha2VT
bmFwc2hvdCk7CisgICAgcnVuVW50aWwoZGlkVGFrZVNuYXBzaG90KTsKICAgICBkaWRUYWtlU25h
cHNob3QgPSBmYWxzZTsKICAgICAKICAgICBbdGh1bWJuYWlsVmlldyBzZXRTaG91bGRLZWVwU25h
cHNob3RXaGVuUmVtb3ZlZEZyb21TdXBlcnZpZXc6WUVTXTsKQEAgLTI0NCw3ICsyNDQsNyBAQCBU
RVNUKFdlYktpdCwgV0tUaHVtYm5haWxWaWV3TWF4aW11bVNuYXBzCiAgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tXS1RodW1ibmFpbFZpZXdEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAg
IFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dl
YlZpZXcgIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAImxvdHMtb2YtdGV4dCIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKLSAg
ICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQp
OwogCiAgICAgYXV0byB0aHVtYm5haWxWaWV3ID0gYWRvcHROUyhbW19XS1RodW1ibmFpbFZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMDAsIDEwMCkgZnJvbVdLV2Vi
Vmlldzp3ZWJWaWV3LmdldCgpXSk7CiAKQEAgLTI1MywxMyArMjUzLDEzIEBAIFRFU1QoV2ViS2l0
LCBXS1RodW1ibmFpbFZpZXdNYXhpbXVtU25hcHMKICAgICBbdGh1bWJuYWlsVmlldyBhZGRPYnNl
cnZlcjpvYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAic25hcHNob3RTaXplIiBvcHRpb25zOk5T
S2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpzbmFwc2hvdFNpemVDaGFuZ2VLVk9D
b250ZXh0XTsKICAgICAKICAgICBbd2ViVmlldyBhZGRTdWJ2aWV3OnRodW1ibmFpbFZpZXcuZ2V0
KCldOwotICAgIFV0aWw6OnJ1bigmZGlkVGFrZVNuYXBzaG90KTsKKyAgICBydW5VbnRpbChkaWRU
YWtlU25hcHNob3QpOwogICAgIGRpZFRha2VTbmFwc2hvdCA9IGZhbHNlOwogICAgIEVYUEVDVF9F
UShbdGh1bWJuYWlsVmlldyBzbmFwc2hvdFNpemVdLndpZHRoLCA4MDApOwogICAgIEVYUEVDVF9G
QUxTRShbdGh1bWJuYWlsVmlldyBsYXllcl0uY29udGVudHMgPT0gbmlsKTsKICAgICAKICAgICBb
dGh1bWJuYWlsVmlldyBzZXRNYXhpbXVtU25hcHNob3RTaXplOkNHU2l6ZU1ha2UoMjAwLCAwKV07
Ci0gICAgVXRpbDo6cnVuKCZkaWRUYWtlU25hcHNob3QpOworICAgIHJ1blVudGlsKGRpZFRha2VT
bmFwc2hvdCk7CiAgICAgZGlkVGFrZVNuYXBzaG90ID0gZmFsc2U7CiAgICAgCiAgICAgRVhQRUNU
X0VRKFt0aHVtYm5haWxWaWV3IHNuYXBzaG90U2l6ZV0ud2lkdGgsIDIwMCk7CkBAIC0yNjcsNyAr
MjY3LDcgQEAgVEVTVChXZWJLaXQsIFdLVGh1bWJuYWlsVmlld01heGltdW1TbmFwcwogICAgIEVY
UEVDVF9GQUxTRShbdGh1bWJuYWlsVmlldyBsYXllcl0uY29udGVudHMgPT0gbmlsKTsKICAgICAK
ICAgICBbdGh1bWJuYWlsVmlldyBzZXRNYXhpbXVtU25hcHNob3RTaXplOkNHU2l6ZU1ha2UoMCwg
MzAwKV07Ci0gICAgVXRpbDo6cnVuKCZkaWRUYWtlU25hcHNob3QpOworICAgIHJ1blVudGlsKGRp
ZFRha2VTbmFwc2hvdCk7CiAgICAgZGlkVGFrZVNuYXBzaG90ID0gZmFsc2U7CiAgICAgCiAgICAg
RVhQRUNUX0VRKFt0aHVtYm5haWxWaWV3IHNuYXBzaG90U2l6ZV0ud2lkdGgsIDQwMCk7CkBAIC0y
NzUsNyArMjc1LDcgQEAgVEVTVChXZWJLaXQsIFdLVGh1bWJuYWlsVmlld01heGltdW1TbmFwcwog
ICAgIEVYUEVDVF9GQUxTRShbdGh1bWJuYWlsVmlldyBsYXllcl0uY29udGVudHMgPT0gbmlsKTsK
ICAgICAKICAgICBbdGh1bWJuYWlsVmlldyBzZXRNYXhpbXVtU25hcHNob3RTaXplOkNHU2l6ZU1h
a2UoMjAwLCAzMDApXTsKLSAgICBVdGlsOjpydW4oJmRpZFRha2VTbmFwc2hvdCk7CisgICAgcnVu
VW50aWwoZGlkVGFrZVNuYXBzaG90KTsKICAgICBkaWRUYWtlU25hcHNob3QgPSBmYWxzZTsKICAg
ICAKICAgICBFWFBFQ1RfRVEoW3RodW1ibmFpbFZpZXcgc25hcHNob3RTaXplXS53aWR0aCwgMjAw
KTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dlYkFyY2hpdmUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dlYkFyY2hp
dmUuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9XZWJBcmNoaXZlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDExICsxMjMsMTEgQEAg
VEVTVChXZWJLaXQsIFdlYkFyY2hpdmUpCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2Uo
KSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwgImh0bWwiKSku
Z2V0KCkpOwogCiAgICAgLy8gV2FpdCB0aWxsIHRoZSBsb2FkIGZpbmlzaGVzIGJlZm9yZSBnZXR0
aW5nIHRoZSB3ZWIgYXJjaGl2ZS4KLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAg
IHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIFdLQ29udGV4dFBvc3RNZXNzYWdlVG9Jbmpl
Y3RlZEJ1bmRsZShjb250ZXh0LmdldCgpLCBVdGlsOjp0b1dLKCJHZXRXZWJBcmNoaXZlIikuZ2V0
KCksIHdlYlZpZXcucGFnZSgpKTsKIAogICAgIC8vIFdhaXQgdGlsbCB3ZSBoYXZlIHJlY2VpdmVk
IHRoZSB3ZWIgYXJjaGl2ZSBmcm9tIHRoZSBpbmplY3RlZCBidW5kbGUuCi0gICAgVXRpbDo6cnVu
KCZkaWRSZWNlaXZlTWVzc2FnZSk7CisgICAgcnVuVW50aWwoZGlkUmVjZWl2ZU1lc3NhZ2UpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9XZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dlYkNvcmVTdGF0
aXN0aWNzV2l0aE5vV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dlYkNvcmVTdGF0aXN0aWNzV2l0aE5vV2ViUHJvY2Vz
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgVEVTVChXZWJLaXQsIFdlYkNv
cmVTdGF0aXN0aWNzV2l0aE5vV2ViUAogICAgIAogICAgIFdLQ29udGV4dEdldFN0YXRpc3RpY3Mo
Y29udGV4dC5nZXQoKSwgMCwgd2tDb250ZXh0R2V0U3RhdGlzdGljc0NhbGxiYWNrKTsKICAgICAK
LSAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGlsKGRvbmUpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9XaWxsTG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvV2lsbExvYWQuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9XaWxsTG9hZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDcg
KzgwLDcgQEAgcHVibGljOgogICAgIHZvaWQgdGVzdFdpbGxMb2FkVVJMUmVxdWVzdFJldHVyblZh
bHVlcyhXS1VSTFJlZiBleHBlY3RlZFVSTCwgV0tTdHJpbmdSZWYgZXhwZWN0ZWRVc2VyRGF0YVN0
cmluZykKICAgICB7CiAgICAgICAgIGRpZFJlY2VpdmVNZXNzYWdlID0gZmFsc2U7Ci0gICAgICAg
IFV0aWw6OnJ1bigmZGlkUmVjZWl2ZU1lc3NhZ2UpOworICAgICAgICBydW5VbnRpbChkaWRSZWNl
aXZlTWVzc2FnZSk7CiAKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJXaWxsTG9hZFVSTFJlcXVl
c3RSZXR1cm4iLCBtZXNzYWdlTmFtZS5nZXQoKSk7CiAKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCB0ZXN0V2lsbExvYWREYXRhUmVxdWVzdFJldHVyblZhbHVlcyhXS1VSTFJl
ZiBleHBlY3RlZFVSTCwgV0tTdHJpbmdSZWYgZXhwZWN0ZWRNSU1FVHlwZSwgV0tTdHJpbmdSZWYg
ZXhwZWN0ZWRFbmNvZGluZ05hbWUsIFdLVVJMUmVmIGV4cGVjdGVkVW5yZWFjaGFibGVVUkwsIFdL
U3RyaW5nUmVmIGV4cGVjdGVkVXNlckRhdGFTdHJpbmcpCiAgICAgewogICAgICAgICBkaWRSZWNl
aXZlTWVzc2FnZSA9IGZhbHNlOwotICAgICAgICBVdGlsOjpydW4oJmRpZFJlY2VpdmVNZXNzYWdl
KTsKKyAgICAgICAgcnVuVW50aWwoZGlkUmVjZWl2ZU1lc3NhZ2UpOwogCiAgICAgICAgIEVYUEVD
VF9XS19TVFJFUSgiV2lsbExvYWREYXRhUmVxdWVzdFJldHVybiIsIG1lc3NhZ2VOYW1lLmdldCgp
KTsKIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV2lsbFNlbmRTdWJt
aXRFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dpbGxTZW5kU3VibWl0RXZlbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV2ViS2l0LCBXaWxsU2VuZFN1Ym1pdEV2ZW50
KQogCiAgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAgICAgV0tQ
YWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNv
dXJjZSgiYXV0by1zdWJtaXR0aW5nLWZvcm0iLCAiaHRtbCIpKS5nZXQoKSk7Ci0gICAgVXRpbDo6
cnVuKCZkaWRSZWNlaXZlTWVzc2FnZSk7CisgICAgcnVuVW50aWwoZGlkUmVjZWl2ZU1lc3NhZ2Up
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFu
Z2VXaXRoSW1hZ2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvbWFjL0F0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1t
CShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9t
YWMvQXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2VXaXRoSW1hZ2UubW0JKHdvcmtp
bmcgY29weSkKQEAgLTcyLDEzICs3MiwxMyBAQCBURVNUKFdlYktpdCwgQXR0cmlidXRlZFN1YnN0
cmluZ0ZvclByb3BvCiAKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhV
dGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiY2hpbmVzZS1jaGFyYWN0ZXItd2l0aC1pbWFnZSIs
ICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7
Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hM
b2FkKTsKIAogICAgIFt3ZWJWaWV3LnBsYXRmb3JtVmlldygpIGF0dHJpYnV0ZWRTdWJzdHJpbmdG
b3JQcm9wb3NlZFJhbmdlOk5TTWFrZVJhbmdlKDAsIDMpIGNvbXBsZXRpb25IYW5kbGVyOiBeKE5T
QXR0cmlidXRlZFN0cmluZyAqYXR0clN0cmluZywgTlNSYW5nZSBhY3R1YWxSYW5nZSkgewogICAg
ICAgICBkaWRGaW5pc2hUZXN0ID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFV0aWw6OnJ1bigmZGlk
RmluaXNoVGVzdCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoVGVzdCk7CiAgICAgRVhQRUNUX0VR
KGRpZE9ic2VydmVXZWJQcm9jZXNzVG9DcmFzaCwgZmFsc2UpOwogICAgIEVYUEVDVF9FUShkaWRS
ZWNlaXZlSW52YWxpZE1lc3NhZ2UsIGZhbHNlKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudURvd25sb2FkLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudURvd25sb2Fk
Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9tYWMvQ29udGV4dE1lbnVEb3dubG9hZC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTA3LDExICsx
MDcsMTEgQEAgVEVTVChXZWJLaXQsIENvbnRleHRNZW51RG93bmxvYWRIVE1MRG93bgogCiAgICAg
ZXhwZWN0ZWRPcmlnaW5hdGluZ1BhZ2UgPSB3ZWJWaWV3LnBhZ2UoKTsKICAgICBXS1BhZ2VMb2Fk
VVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNo
TG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAKICAgICAvLyBSaWdodCBjbGlj
ayBvbiBsaW5rLgogICAgIHdlYlZpZXcuc2ltdWxhdGVCdXR0b25DbGljayhrV0tFdmVudE1vdXNl
QnV0dG9uUmlnaHRCdXR0b24sIDUwLCA1MCwgMCk7Ci0gICAgVXRpbDo6cnVuKCZkaWREZWNpZGVE
b3dubG9hZERlc3RpbmF0aW9uKTsKKyAgICBydW5VbnRpbChkaWREZWNpZGVEb3dubG9hZERlc3Rp
bmF0aW9uKTsKIH0KIAogc3RhdGljIFdLU3RyaW5nUmVmIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1
Z2dlc3RlZEZpbGVuYW1lQ29udGFpbmluZ1NsYXNoZXMoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2Fk
UmVmIGRvd25sb2FkLCBXS1N0cmluZ1JlZiBzdWdnZXN0ZWRGaWxlbmFtZSwgYm9vbCosIGNvbnN0
IHZvaWQqKQpAQCAtMTU0LDExICsxNTQsMTEgQEAgVEVTVChXZWJLaXQsIENvbnRleHRNZW51RG93
bmxvYWRIVE1MRG93bgogCiAgICAgZXhwZWN0ZWRPcmlnaW5hdGluZ1BhZ2UgPSB3ZWJWaWV3LnBh
Z2UoKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwotICAg
IFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7
CiAKICAgICAvLyBSaWdodCBjbGljayBvbiBsaW5rLgogICAgIHdlYlZpZXcuc2ltdWxhdGVCdXR0
b25DbGljayhrV0tFdmVudE1vdXNlQnV0dG9uUmlnaHRCdXR0b24sIDUwLCA1MCwgMCk7Ci0gICAg
VXRpbDo6cnVuKCZkaWREZWNpZGVEb3dubG9hZERlc3RpbmF0aW9uKTsKKyAgICBydW5VbnRpbChk
aWREZWNpZGVEb3dubG9hZERlc3RpbmF0aW9uKTsKIH0KIAogfQpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51SW1nV2l0aFZpZGVvLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVu
dUltZ1dpdGhWaWRlby5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51SW1nV2l0aFZpZGVvLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC03Niw3ICs3Niw3IEBAIFRFU1QoV2ViS2l0LCBDb250ZXh0TWVudUltZ1dpdGhWaWRl
bykKIAogICAgIGNvbnRleHRNZW51U2hvd24gPSBmYWxzZTsKICAgICBbc3ViVmlldyBtb3VzZURv
d246ZXZlbnRdOwotICAgIFV0aWw6OnJ1bigmY29udGV4dE1lbnVTaG93bik7CisgICAgcnVuVW50
aWwoY29udGV4dE1lbnVTaG93bik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9DdXN0b21CdW5kbGVQ
YXJhbWV0ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvbWFjL0N1c3RvbUJ1bmRsZVBhcmFtZXRlci5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0N1c3RvbUJ1bmRsZVBhcmFtZXRlci5t
bQkod29ya2luZyBjb3B5KQpAQCAtOTksNyArOTksNyBAQCBURVNUKFdlYktpdCwgQ3VzdG9tQnVu
ZGxlUGFyYW1ldGVyKQogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0
aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VM
b2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogICAgIAotICAgIFV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiB9CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvRWRp
dG9yQ29tbWFuZHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvbWFjL0VkaXRvckNvbW1hbmRzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvRWRpdG9yQ29tbWFuZHMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTYyLDcgKzYyLDcgQEAgVEVTVChXZWJLaXQsIFNjcm9sbEJ5TGluZUNvbW1hbmRz
KQogCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRl
VVJMRm9yUmVzb3VyY2UoInNpbXBsZS10YWxsIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVS
TCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExv
YWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogCiAgICAgRVhQRUNUX0pTX0VRKHdl
YlZpZXcucGFnZSgpLCAid2luZG93LnNjcm9sbFkiLCAiMCIpOwogCkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvRm9yY2VMaWdodEFwcGVhcmFuY2VJbkJ1bmRsZS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvRm9y
Y2VMaWdodEFwcGVhcmFuY2VJbkJ1bmRsZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0ZvcmNlTGlnaHRBcHBlYXJhbmNlSW5CdW5k
bGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTgwLDEwICs4MCwxMCBAQCBURVNUKFdlYktpdCwgRm9y
Y2VMaWdodEFwcGVhcmFuY2VJbkJ1bmRsCiAgICAgV0tDb250ZXh0U2V0SW5qZWN0ZWRCdW5kbGVD
bGllbnQoY29udGV4dC5nZXQoKSwgJmluamVjdGVkQnVuZGxlQ2xpZW50LmJhc2UpOwogCiAgICAg
V0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JS
ZXNvdXJjZSgiZGFyay1tb2RlIiwgImh0bWwiKSkuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlk
RmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAKICAgICBXS0NvbnRl
eHRQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoY29udGV4dC5nZXQoKSwgVXRpbDo6dG9XSygi
UnVuVGVzdCIpLmdldCgpLCBudWxscHRyKTsKLSAgICBVdGlsOjpydW4oJm1lc3NhZ2VSZWNlaXZl
ZCk7CisgICAgcnVuVW50aWwobWVzc2FnZVJlY2VpdmVkKTsKICAgICBtZXNzYWdlUmVjZWl2ZWQg
PSBmYWxzZTsKIH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFj
L0dldEJhY2tpbmdTY2FsZUZhY3Rvci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9tYWMvR2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvR2V0QmFja2lu
Z1NjYWxlRmFjdG9yLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBAIFRFU1QoV2Vi
S2l0LCBHZXRCYWNraW5nU2NhbGVGYWN0b3IpCiAKICAgICBbW3dpbmRvdzEuZ2V0KCkgY29udGVu
dFZpZXddIGFkZFN1YnZpZXc6dmlldy5nZXQoKV07CiAgICAgV0tDb250ZXh0UG9zdE1lc3NhZ2VU
b0luamVjdGVkQnVuZGxlKGNvbnRleHQuZ2V0KCksIFV0aWw6OnRvV0soIkdldEJhY2tpbmdTY2Fs
ZUZhY3RvciIpLmdldCgpLCAwKTsKLSAgICBVdGlsOjpydW4oJm1lc3NhZ2VSZWNlaXZlZCk7Cisg
ICAgcnVuVW50aWwobWVzc2FnZVJlY2VpdmVkKTsKICAgICBtZXNzYWdlUmVjZWl2ZWQgPSBmYWxz
ZTsKICAgICBFWFBFQ1RfRVEoMSwgYmFja2luZ1NjYWxlRmFjdG9yKTsKIApAQCAtODUsMTMgKzg1
LDEzIEBAIFRFU1QoV2ViS2l0LCBHZXRCYWNraW5nU2NhbGVGYWN0b3IpCiAKICAgICBbW3dpbmRv
dzIuZ2V0KCkgY29udGVudFZpZXddIGFkZFN1YnZpZXc6dmlldy5nZXQoKV07CiAgICAgV0tDb250
ZXh0UG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKGNvbnRleHQuZ2V0KCksIFV0aWw6OnRvV0so
IkdldEJhY2tpbmdTY2FsZUZhY3RvciIpLmdldCgpLCAwKTsKLSAgICBVdGlsOjpydW4oJm1lc3Nh
Z2VSZWNlaXZlZCk7CisgICAgcnVuVW50aWwobWVzc2FnZVJlY2VpdmVkKTsKICAgICBtZXNzYWdl
UmVjZWl2ZWQgPSBmYWxzZTsKICAgICBFWFBFQ1RfRVEoMiwgYmFja2luZ1NjYWxlRmFjdG9yKTsK
IAogICAgIFdLUGFnZVNldEN1c3RvbUJhY2tpbmdTY2FsZUZhY3Rvcih2aWV3LmdldCgpLnBhZ2VS
ZWYsIDMpOwogICAgIFdLQ29udGV4dFBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShjb250ZXh0
LmdldCgpLCBVdGlsOjp0b1dLKCJHZXRCYWNraW5nU2NhbGVGYWN0b3IiKS5nZXQoKSwgMCk7Ci0g
ICAgVXRpbDo6cnVuKCZtZXNzYWdlUmVjZWl2ZWQpOworICAgIHJ1blVudGlsKG1lc3NhZ2VSZWNl
aXZlZCk7CiAgICAgbWVzc2FnZVJlY2VpdmVkID0gZmFsc2U7CiAgICAgRVhQRUNUX0VRKDMsIGJh
Y2tpbmdTY2FsZUZhY3Rvcik7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9tYWMvR2V0UElEQWZ0ZXJBYm9ydGVkUHJvY2Vzc0xhdW5jaC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0dldFBJREFmdGVyQWJvcnRl
ZFByb2Nlc3NMYXVuY2guY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9tYWMvR2V0UElEQWZ0ZXJBYm9ydGVkUHJvY2Vzc0xhdW5jaC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgVEVTVChXZWJLaXQsIEdldFBJREFmdGVy
QWJvcnRlZFByb2Nlc3NMYQogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdL
KFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUiLCAiaHRtbCIpKTsKICAgICBXS1Bh
Z2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZs
b2FkZWQpOworICAgIHJ1blVudGlsKGxvYWRlZCk7CiAgICAgV0tQYWdlVGVybWluYXRlKHdlYlZp
ZXcucGFnZSgpKTsKIAogICAgIC8vIFJlbG9hZGluZyB3aWxsIHN0YXJ0IHJlbGF1bmNoaW5nIHRo
ZSBwcm9jZXNzLgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0lu
amVjdGVkQnVuZGxlQXBwbGVFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvbWFjL0luamVjdGVkQnVuZGxlQXBwbGVFdmVudC5jcHAJKHJldmlz
aW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Jbmpl
Y3RlZEJ1bmRsZUFwcGxlRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MCw3ICs5MCw3IEBA
IFRFU1QoV2ViS2l0LCBJbmplY3RlZEJ1bmRsZUFwcGxlRXZlbnQpCiAgICAgV0tSZXRhaW5QdHI8
V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBs
ZSIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQo
KSk7CiAKLSAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGlsKGRvbmUpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9tYWMvUmVzdG9yZVN0YXRlQWZ0ZXJUZXJtaW5hdGlvbi5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvUmVzdG9yZVN0YXRlQWZ0
ZXJUZXJtaW5hdGlvbi5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvbWFjL1Jlc3RvcmVTdGF0ZUFmdGVyVGVybWluYXRpb24ubW0JKHdvcmtp
bmcgY29weSkKQEAgLTkzLDEzICs5MywxMyBAQCBURVNUKFdlYktpdCwgUmVzdG9yZVN0YXRlQWZ0
ZXJUZXJtaW5hdGlvCiAKICAgICAvLyBMb2FkIGEgdGVzdCBwYWdlIGNvbnRhaW5pbmcgYSBmb3Jt
LgogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRl
VVJMRm9yUmVzb3VyY2UoInNpbXBsZS1mb3JtIiwgImh0bWwiKSkuZ2V0KCkpOwotICAgIFV0aWw6
OnJ1bigmbG9hZEJlZm9yZUNyYXNoKTsKKyAgICBydW5VbnRpbChsb2FkQmVmb3JlQ3Jhc2gpOwog
CiAgICAgLy8gTWFrZSB0aGUgcGFnZSB2aXNpYmxlLgogICAgIGlzV2FpdGluZ0ZvclBhZ2VTaWdu
YWxUb0NvbnRpbnVlID0gdHJ1ZTsKICAgICBkaWRHZXRQYWdlU2lnbmFsVG9Db250aW51ZSA9IGZh
bHNlOwogICAgIFt3aW5kb3cuZ2V0KCkgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsKLSAgICBV
dGlsOjpydW4oJmRpZEdldFBhZ2VTaWduYWxUb0NvbnRpbnVlKTsKKyAgICBydW5VbnRpbChkaWRH
ZXRQYWdlU2lnbmFsVG9Db250aW51ZSk7CiAgICAgRVhQRUNUX0pTX0VRKHdlYlZpZXcucGFnZSgp
LCAiZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlIiwgInZpc2libGUiKTsKIAogICAgIEVYUEVDVF9K
U19FUSh3ZWJWaWV3LnBhZ2UoKSwgImdldEZvcm1EYXRhKCkiLCAiU29tZSB1bmltcG9ydGFudCBk
YXRhIik7CkBAIC0xMTMsNyArMTEzLDcgQEAgVEVTVChXZWJLaXQsIFJlc3RvcmVTdGF0ZUFmdGVy
VGVybWluYXRpbwogICAgIGlzV2FpdGluZ0ZvclBhZ2VTaWduYWxUb0NvbnRpbnVlID0gdHJ1ZTsK
ICAgICBkaWRHZXRQYWdlU2lnbmFsVG9Db250aW51ZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3LnBs
YXRmb3JtVmlldygpIHJlbW92ZUZyb21TdXBlcnZpZXddOwotICAgIFV0aWw6OnJ1bigmZGlkR2V0
UGFnZVNpZ25hbFRvQ29udGludWUpOworICAgIHJ1blVudGlsKGRpZEdldFBhZ2VTaWduYWxUb0Nv
bnRpbnVlKTsKIAogICAgIEVYUEVDVF9KU19FUSh3ZWJWaWV3LnBhZ2UoKSwgImRvY3VtZW50LnZp
c2liaWxpdHlTdGF0ZSIsICJoaWRkZW4iKTsKIApAQCAtMTIyLDcgKzEyMiw3IEBAIFRFU1QoV2Vi
S2l0LCBSZXN0b3JlU3RhdGVBZnRlclRlcm1pbmF0aW8KIAogICAgIC8vIFJlbG9hZCBzaG91bGQg
cmUtc3Bhd24gd2VicHJvY2VzcyBhbmQgcmVzdG9yZSBkb2N1bWVudCBzdGF0ZS4KICAgICBXS1Bh
Z2VSZWxvYWQod2ViVmlldy5wYWdlKCkpOwotICAgIFV0aWw6OnJ1bigmbG9hZEFmdGVyQ3Jhc2gp
OworICAgIHJ1blVudGlsKGxvYWRBZnRlckNyYXNoKTsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGF0
IHRoZSBmb3JtIGRhdGEgaXMgcmVzdG9yZWQgYWZ0ZXIgdGhlIHJlbG9hZC4KICAgICBFWFBFQ1Rf
SlNfRVEod2ViVmlldy5wYWdlKCksICJnZXRGb3JtRGF0YSgpIiwgIkltcG9ydGFudCBkYXRhIik7
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FWRm91bmRhdGlv
blByZWZlcmVuY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9BVkZvdW5kYXRpb25QcmVmZXJlbmNlLm1tCShyZXZpc2lvbiAyNDU1MTYpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FWRm91bmRhdGlvblByZWZl
cmVuY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgogCiAgICAg
ICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6W05TU3RyaW5nIHN0cmlu
Z1dpdGhGb3JtYXQ6QCJ0ZXN0KCclcycpIiwgZWxlbWVudFR5cGUgPT0gRWxlbWVudFR5cGU6OkF1
ZGlvID8gImF1ZGlvIiA6ICJ2aWRlbyJdXTsKIAotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgICAgIGF1dG8gdHlwZSA9IFt3ZWJW
aWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJlbGVtZW50VHlwZSgpIl07CiAKICAg
ICAgICAgaWYgKGVsZW1lbnRUeXBlID09IEVsZW1lbnRUeXBlOjpBdWRpbykKSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxv
d2VkVVJMcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0FkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFVSTHMubW0JKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQWRkaXRpb25hbFJl
YWRBY2Nlc3NBbGxvd2VkVVJMcy5tbQkod29ya2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBAQCBU
RVNUKFdlYktpdCwgQWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2VkCiAgICAgICAgIEVYUEVDVF9X
S19TVFJFUShAImhlbGxvIiwgc3RyaW5nKTsKICAgICAgICAgRVhQRUNUX0VRKG51bGxwdHIsIGVy
cm9yKTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAg
IFtwcm94eSByZWFkU3RyaW5nRnJvbVVSTDp1bnJlYWRhYmxlRmlsZVVSTCBjb21wbGV0aW9uSGFu
ZGxlcjpeKE5TU3RyaW5nICpzdHJpbmcsIE5TRXJyb3IgKmVycm9yKSB7CkBAIC0xMDMsNyArMTAz
LDcgQEAgVEVTVChXZWJLaXQsIEFkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZAogICAgICAgICBF
WFBFQ1RfV0tfU1RSRVEoTlNDb2NvYUVycm9yRG9tYWluLCBlcnJvci5kb21haW4pOwogICAgICAg
ICBFWFBFQ1RfRVEoTlNGaWxlUmVhZE5vUGVybWlzc2lvbkVycm9yLCBlcnJvci5jb2RlKTsKICAg
ICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiAjZW5kaWYKSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BZGRp
dGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VU
eXBlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgdm9pZCBydW5U
ZXN0KE5TQXJyYXk8TlNTdHJpbmcgKj4gCiAgICAgICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAg
ICAgICB9XTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIH0KIAogVEVTVChXZWJLaXQs
IEFkZFN1cHBvcnRlZEltYWdlVHlwZSkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQW5pbWF0ZWRSZXNpemUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BbmltYXRlZFJlc2l6ZS5tbQkocmV2aXNpb24gMjQ1
NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BbmltYXRlZFJl
c2l6ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtOTcsNyArOTcsNyBAQCBURVNUKFdlYktpdCwgRElT
QUJMRURfUmVzaXplV2l0aEhpZGRlbkNvCiAgICAgW3dpbmRvdyBhZGRTdWJ2aWV3OndlYlZpZXcu
Z2V0KCldOwogICAgIFt3aW5kb3cgc2V0SGlkZGVuOk5PXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZGlkTGF5b3V0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRM
YXlvdXQpOwogICAgIGRpZExheW91dCA9IGZhbHNlOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IDUwOyBpKyspIHsKQEAgLTEwNSw3ICsxMDUsNyBAQCBURVNUKFdlYktpdCwgRElTQUJM
RURfUmVzaXplV2l0aEhpZGRlbkNvCiAgICAgICAgICAgICBbd2ViVmlldyBzZXRGcmFtZTpDR1Jl
Y3RNYWtlKDAsIDAsIFt3ZWJWaWV3IGZyYW1lXS5zaXplLndpZHRoICsgMTAwLCA0MDApXTsKICAg
ICAgICAgfV07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRFbmRBbmlt
YXRlZFJlc2l6ZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEVuZEFuaW1h
dGVkUmVzaXplKTsKICAgICAgICAgZGlkRW5kQW5pbWF0ZWRSZXNpemUgPSBmYWxzZTsKICAgICB9
CiB9CkBAIC0xMjEsNyArMTIxLDcgQEAgVEVTVChXZWJLaXQsIEFuaW1hdGVkUmVzaXplRG9lc05v
dEhhbmcpCiAgICAgW3dpbmRvdyBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCldOwogICAgIFt3aW5k
b3cgc2V0SGlkZGVuOk5PXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkTGF5
b3V0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRMYXlvdXQpOwogICAgIGRpZExh
eW91dCA9IGZhbHNlOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDUwOyBpKyspIHsK
QEAgLTEzMyw3ICsxMzMsNyBAQCBURVNUKFdlYktpdCwgQW5pbWF0ZWRSZXNpemVEb2VzTm90SGFu
ZykKICAgICAgICAgICAgIFt3ZWJWaWV3IF9lbmRBbmltYXRlZFJlc2l6ZV07CiAgICAgICAgIH0p
OwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRW5kQW5pbWF0ZWRSZXNp
emUpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRFbmRBbmltYXRlZFJlc2l6
ZSk7CiAgICAgICAgIGRpZEVuZEFuaW1hdGVkUmVzaXplID0gZmFsc2U7CiAgICAgfQogfQpAQCAt
MTcxLDcgKzE3MSw3IEBAIFRFU1QoV2ViS2l0LCBBbmltYXRlZFJlc2l6ZUJsb2Nrc1ZpZXdwb3IK
ICAgICAgICAgW3dlYlZpZXcgX2VuZEFuaW1hdGVkUmVzaXplXTsKICAgICB9XTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRW5kQW5pbWF0ZWRSZXNpemUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRpZEVuZEFuaW1hdGVkUmVzaXplKTsKICAgICBkaWRFbmRBbmlt
YXRlZFJlc2l6ZSA9IGZhbHNlOwogCiAgICAgLy8gV2FpdCBmb3Igb25lIG1vcmUgY29tbWl0IHNv
IHRoYXQgd2Ugc2VlIHRoZSB2aWV3cG9ydC1maXQgc3RhdGUKQEAgLTE4MCw3ICsxODAsNyBAQCBU
RVNUKFdlYktpdCwgQW5pbWF0ZWRSZXNpemVCbG9ja3NWaWV3cG9yCiAgICAgW3dlYlZpZXcgX2Rv
QWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlOl57CiAgICAgICAgIGRpZEdldENvbW1pdEFmdGVy
RW5kQW5pbWF0ZWRSZXNpemUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZGlkR2V0Q29tbWl0QWZ0ZXJFbmRBbmltYXRlZFJlc2l6ZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZGlkR2V0Q29tbWl0QWZ0ZXJFbmRBbmltYXRlZFJlc2l6ZSk7CiAK
ICAgICBFWFBFQ1RfVFJVRShkaWRDaGFuZ2VTYWZlQXJlYVNob3VsZEFmZmVjdE9ic2N1cmVkSW5z
ZXRzKTsKIH0KQEAgLTIyMiw3ICsyMjIsNyBAQCBURVNUKFdlYktpdCwgT3ZlcnJpZGVMYXlvdXRT
aXplQ2hhbmdlc0R1CiAgICAgICAgIH1dOwogICAgIH1dOwogICAgIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZGlkUmVhZExheW91dFNpemUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRpZFJlYWRMYXlvdXRTaXplKTsKIH0KIAogVEVTVChXZWJLaXQsIE92ZXJyaWRlTGF5
b3V0U2l6ZUlzUmVzdG9yZWRBZnRlclByb2Nlc3NSZWxhdW5jaCkKQEAgLTI1Myw3ICsyNTMsNyBA
QCBURVNUKFdlYktpdCwgT3ZlcnJpZGVMYXlvdXRTaXplSXNSZXN0b3JlCiAKICAgICAgICAgZGlk
UmVhZExheW91dFNpemUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZGlkUmVhZExheW91dFNpemUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRp
ZFJlYWRMYXlvdXRTaXplKTsKIH0KIAogVEVTVChXZWJLaXQsIE92ZXJyaWRlTGF5b3V0U2l6ZUlz
UmVzdG9yZWRBZnRlckNoYW5naW5nRHVyaW5nUHJvY2Vzc1JlbGF1bmNoKQpAQCAtMjg2LDcgKzI4
Niw3IEBAIFRFU1QoV2ViS2l0LCBPdmVycmlkZUxheW91dFNpemVJc1Jlc3RvcmUKIAogICAgICAg
ICBkaWRSZWFkTGF5b3V0U2l6ZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkaWRSZWFkTGF5b3V0U2l6ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZGlkUmVhZExheW91dFNpemUpOwogfQogCiBzdGF0aWMgVUlWaWV3ICppbW1lZGlhdGVTdWJ2
aWV3T2ZDbGFzcyhVSVZpZXcgKnZpZXcsIENsYXNzIGNscykKQEAgLTMzNiw3ICszMzYsNyBAQCBU
RVNUKFdlYktpdCwgUmVzaXplV2l0aENvbnRlbnRIaWRkZW5Db21wCiAgICAgICAgICAgICBkaWRS
ZWFkTGF5b3V0U2l6ZSA9IHRydWU7CiAgICAgICAgIH1dOwogICAgIH1dOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZGlkUmVhZExheW91dFNpemUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRpZFJlYWRMYXlvdXRTaXplKTsKICAgICAKICAgICBVSVZpZXcgKnNjcm9sbFZp
ZXcgPSBpbW1lZGlhdGVTdWJ2aWV3T2ZDbGFzcyh3ZWJWaWV3LmdldCgpLCBOU0NsYXNzRnJvbVN0
cmluZyhAIldLU2Nyb2xsVmlldyIpKTsKICAgICBVSVZpZXcgKmNvbnRlbnRWaWV3ID0gaW1tZWRp
YXRlU3Vidmlld09mQ2xhc3Moc2Nyb2xsVmlldywgTlNDbGFzc0Zyb21TdHJpbmcoQCJXS0NvbnRl
bnRWaWV3IikpOwpAQCAtMzgxLDcgKzM4MSw3IEBAIFRFU1QoV2ViS2l0LCBSZXNpemVXaXRoQ29u
dGVudEhpZGRlbldpdGgKICAgICAgICAgICAgIGRpZFJlYWRMYXlvdXRTaXplID0gdHJ1ZTsKICAg
ICAgICAgfV07CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRSZWFk
TGF5b3V0U2l6ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkUmVhZExheW91dFNp
emUpOwogCiAgICAgVUlWaWV3ICpzY3JvbGxWaWV3ID0gaW1tZWRpYXRlU3Vidmlld09mQ2xhc3Mo
d2ViVmlldy5nZXQoKSwgTlNDbGFzc0Zyb21TdHJpbmcoQCJXS1Njcm9sbFZpZXciKSk7CiAgICAg
VUlWaWV3ICpjb250ZW50VmlldyA9IGltbWVkaWF0ZVN1YnZpZXdPZkNsYXNzKHNjcm9sbFZpZXcs
IE5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tDb250ZW50VmlldyIpKTsKQEAgLTQyNCw4ICs0MjQsOCBA
QCBURVNUKFdlYktpdCwgQW5pbWF0ZWRSZXNpemVCbG9ja3NEb0FmdGVyCiAgICAgICAgIFt3ZWJW
aWV3IF9lbmRBbmltYXRlZFJlc2l6ZV07CiAgICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRpZEVuZEFuaW1hdGVkUmVzaXplKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRpZEdldENvbW1pdEFmdGVyRW5kQW5pbWF0ZWRSZXNpemUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRpZEVuZEFuaW1hdGVkUmVzaXplKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkaWRHZXRDb21taXRBZnRlckVuZEFuaW1hdGVkUmVzaXplKTsKIH0KIAogI2Vu
ZGlmCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FwcGxlUGF5
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
QXBwbGVQYXkubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvQXBwbGVQYXkubW0JKHdvcmtpbmcgY29weSkKQEAgLTg3LDcgKzg3LDcg
QEAgVEVTVChBcHBsZVBheSwgQXBwbGVQYXlBdmFpbGFibGVCeURlZmF1bAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dFplcm8gY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
Imh0dHBzOi8vYnVuZGxlLWh0bWwtZmlsZS9hcHBsZS1wYXktYXZhaWxhYmlsaXR5Il1dXTsKIAot
ICAgIFV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBydW5VbnRpbChpc0RvbmUpOwogCiAgICAgW1Rl
c3RQcm90b2NvbCB1bnJlZ2lzdGVyXTsKIH0KQEAgLTEwNiw3ICsxMDYsNyBAQCBURVNUKEFwcGxl
UGF5LCBVc2VyU2NyaXB0QXREb2N1bWVudFN0YXJ0CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly9idW5k
bGUtaHRtbC1maWxlL2FwcGxlLXBheS1hdmFpbGFiaWxpdHkiXV1dOwogCi0gICAgVXRpbDo6cnVu
KCZpc0RvbmUpOworICAgIHJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBFWFBFQ1RfRVEoWUVTLCBb
W3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy53a1VzZXJTY3Jp
cHRJbmplY3RlZCJdIGJvb2xWYWx1ZV0pOwogCkBAIC0xMjcsNyArMTI3LDcgQEAgVEVTVChBcHBs
ZVBheSwgVXNlclNjcmlwdEF0RG9jdW1lbnRFbmREaQogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBzOi8vYnVu
ZGxlLWh0bWwtZmlsZS9hcHBsZS1wYXktYXZhaWxhYmlsaXR5Il1dXTsKICAgICAKLSAgICBVdGls
OjpydW4oJmlzRG9uZSk7CisgICAgcnVuVW50aWwoaXNEb25lKTsKICAgICAKICAgICBFWFBFQ1Rf
RVEoWUVTLCBbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy53
a1VzZXJTY3JpcHRJbmplY3RlZCJdIGJvb2xWYWx1ZV0pOwogICAgIApAQCAtMTQ4LDcgKzE0OCw3
IEBAIFRFU1QoQXBwbGVQYXksIFVzZXJBZ2VudFNjcmlwdEV2YWx1YXRpb24KICAgICBbd2ViVmll
dyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CiAgICAgW3dlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0OkAid2luZG93LndrU2NyaXB0RXZhbHVhdGVkID0gdHJ1ZTsgbG9hZEFwcGxl
UGF5RnJhbWUoKTsiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CiAKLSAgICBVdGlsOjpydW4oJmlz
RG9uZSk7CisgICAgcnVuVW50aWwoaXNEb25lKTsKIAogICAgIEVYUEVDVF9FUShZRVMsIFtbd2Vi
VmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LndrU2NyaXB0RXZhbHVh
dGVkIl0gYm9vbFZhbHVlXSk7CiAKQEAgLTE2NywxMyArMTY3LDEzIEBAIFRFU1QoQXBwbGVQYXks
IFVzZXJBZ2VudFNjcmlwdEV2YWx1YXRpb24KICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl0pOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2J1bmRsZS1o
dG1sLWZpbGUvYXBwbGUtcGF5LWF2YWlsYWJpbGl0eSJdXV07CiAKLSAgICBVdGlsOjpydW4oJmlz
RG9uZSk7CisgICAgcnVuVW50aWwoaXNEb25lKTsKIAogICAgIGlzRG9uZSA9IGZhbHNlOwogICAg
IFttZXNzYWdlSGFuZGxlciBzZXRDYW5NYWtlUGF5bWVudHNFeHBlY3RhdGlvbjpOT107CiAgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICcj
dGVzdCciIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CiAKLSAgICBVdGlsOjpydW4oJmlzRG9uZSk7
CisgICAgcnVuVW50aWwoaXNEb25lKTsKIAogICAgIFtUZXN0UHJvdG9jb2wgdW5yZWdpc3Rlcl07
CiB9CkBAIC0xOTYsNyArMTk2LDcgQEAgVEVTVChBcHBsZVBheSwgQWN0aXZlU2Vzc2lvbkJsb2Nr
c1VzZXJBZwogICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZXJyb3IpOwogICAgICAgICBpc0RvbmUg
PSB0cnVlOwogICAgIH1dOwotICAgIFV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBydW5VbnRpbChp
c0RvbmUpOwogCiAgICAgW1Rlc3RQcm90b2NvbCB1bnJlZ2lzdGVyXTsKIH0KSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXBwbGljYXRpb25NYW5pZmVzdC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FwcGxp
Y2F0aW9uTWFuaWZlc3QubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQXBwbGljYXRpb25NYW5pZmVzdC5tbQkod29ya2luZyBjb3B5
KQpAQCAtNjQsNyArNjQsNyBAQCBURVNUKFdlYktpdCwgQXBwbGljYXRpb25NYW5pZmVzdEJhc2lj
KQogICAgICAgICBFWFBFQ1RfTlVMTChtYW5pZmVzdCk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwog
ICAgIH1dOwotICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiAKICAg
ICBkb25lID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5n
OkAiPGxpbmsgcmVsPVwibWFuaWZlc3RcIiBocmVmPVwiaW52YWxpZHVybDovL3BhdGhcIj4iXTsK
QEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXZWJLaXQsIEFwcGxpY2F0aW9uTWFuaWZlc3RCYXNpYykK
ICAgICAgICAgRVhQRUNUX05VTEwobWFuaWZlc3QpOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAg
ICB9XTsKLSAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGlsKGRvbmUpOwogCiAgICAg
ZG9uZSA9IGZhbHNlOwogICAgIE5TRGljdGlvbmFyeSAqbWFuaWZlc3RPYmplY3QgPSBAeyBAIm5h
bWUiOiBAIlRlc3QiIH07CkBAIC04MSw3ICs4MSw3IEBAIFRFU1QoV2ViS2l0LCBBcHBsaWNhdGlv
bk1hbmlmZXN0QmFzaWMpCiAgICAgICAgIEVYUEVDVF9UUlVFKFttYW5pZmVzdC5uYW1lIGlzRXF1
YWxUb1N0cmluZzpAIlRlc3QiXSk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAg
IFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiAKICAgICBkb25lID0gZmFs
c2U7CiAgICAgbWFuaWZlc3RPYmplY3QgPSBAewpAQCAtMTAyLDcgKzEwMiw3IEBAIFRFU1QoV2Vi
S2l0LCBBcHBsaWNhdGlvbk1hbmlmZXN0QmFzaWMpCiAgICAgICAgIEVYUEVDVF9UUlVFKFttYW5p
ZmVzdC5zY29wZSBpc0VxdWFsOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL2V4YW1wbGUu
Y29tL2FwcCJdXSk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFV0aWw6OnJ1
bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0LCBBcHBsaWNh
dGlvbk1hbmlmZXN0RGlzcGxheU1vZGUpCkBAIC0xMzEsNyArMTMxLDcgQEAgVEVTVChXZWJLaXQs
IEFwcGxpY2F0aW9uTWFuaWZlc3REaXNwbGF5TQogICAgICAgICAgICAgICAgIGRvbmUgPSB0cnVl
OwogICAgICAgICAgICAgICAgIEVYUEVDVF9TVFJFUShleHBlY3RlZFBhZ2VDb250ZW50LlVURjhT
dHJpbmcsIGNvbnRlbnRzLlVURjhTdHJpbmcpOwogICAgICAgICAgICAgfV07Ci0gICAgICAgICAg
ICBVdGlsOjpydW4oJmRvbmUpOworICAgICAgICAgICAgcnVuVW50aWwoZG9uZSk7CiAgICAgICAg
ICAgICBbd2ViVmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKICAgICAgICAgfQogICAgIH1dOwpJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Bc3luY1BvbGljeUZv
ck5hdmlnYXRpb25SZXNwb25zZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0FzeW5jUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlLm1tCShy
ZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0FzeW5jUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04
Niw3ICs4Niw3IEBAIFRFU1QoV2ViS2l0LCBSZXNwb25kVG9Qb2xpY3lGb3JOYXZpZ2F0aW8KICAg
ICBuYXZpZ2F0aW9uRmFpbGVkID0gZmFsc2U7CiAgICAgbmF2aWdhdGlvbkNvbXBsZXRlID0gZmFs
c2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDp0ZXN0VVJMLmdldCgpXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZuYXZpZ2F0
aW9uQ29tcGxldGUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKG5hdmlnYXRpb25Db21w
bGV0ZSk7CiAKICAgICBFWFBFQ1RfRkFMU0UobmF2aWdhdGlvbkZhaWxlZCk7CiB9CkBAIC0xMDQs
NyArMTA0LDcgQEAgVEVTVChXZWJLaXQsIFBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZQogICAg
IG5hdmlnYXRpb25GYWlsZWQgPSBmYWxzZTsKICAgICBuYXZpZ2F0aW9uQ29tcGxldGUgPSBmYWxz
ZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OnRlc3RVUkwuZ2V0KCldXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm5hdmlnYXRp
b25Db21wbGV0ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwobmF2aWdhdGlvbkNvbXBs
ZXRlKTsKIAogICAgIEVYUEVDVF9UUlVFKG5hdmlnYXRpb25GYWlsZWQpOwogfQpJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdHRyU3R5bGUubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdHRyU3R5bGUubW0J
KHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQXR0clN0eWxlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01MCwzMyArNTAsMzMgQEAgVEVTVChX
ZWJLaXQsIEF0dHJTdHlsZSkKICAgICAgICAgRVhQRUNUX1RSVUUocmVzdWx0LmJvb2xWYWx1ZSk7
CiAgICAgICAgIGlzRG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAK
ICAgICBpc0RvbmUgPSBmYWxzZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJk
b2N1bWVudC5ib2R5LmdldEF0dHJpYnV0ZU5vZGUoJ2JhY2tncm91bmQnKS5zdHlsZS5jc3NUZXh0
IiBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7
CiAgICAgICAgIEVYUEVDVF9TVFJFUSgiYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiYWJvdXQ6Ly9l
eGFtcGxlLmNvbS9ib2R5LnBuZ1wiKTsiLCByZXN1bHQuVVRGOFN0cmluZyk7CiAgICAgICAgIGlz
RG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0Rv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBpc0RvbmUg
PSBmYWxzZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5
LmdldEF0dHJpYnV0ZU5vZGUoJ2RpcicpLnN0eWxlLmNzc1RleHQiIGNvbXBsZXRpb25IYW5kbGVy
Ol4oTlNTdHJpbmcgKnJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgRVhQRUNUX1NU
UkVRKCJkaXJlY3Rpb246IHJ0bDsgdW5pY29kZS1iaWRpOiBlbWJlZDsiLCByZXN1bHQuVVRGOFN0
cmluZyk7CiAgICAgICAgIGlzRG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9u
ZSk7CiAKICAgICBpc0RvbmUgPSBmYWxzZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3Jp
cHQ6QCJkb2N1bWVudC5ib2R5LmdldEF0dHJpYnV0ZU5vZGUoJ21hcmdpbmhlaWdodCcpLnN0eWxl
LmNzc1RleHQiIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNTdHJpbmcgKnJlc3VsdCwgTlNFcnJvciAq
ZXJyb3IpIHsKICAgICAgICAgRVhQRUNUX1NUUkVRKCJtYXJnaW4tYm90dG9tOiAyMHB4OyBtYXJn
aW4tdG9wOiAyMHB4OyIsIHJlc3VsdC5VVEY4U3RyaW5nKTsKICAgICAgICAgaXNEb25lID0gdHJ1
ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgIGlzRG9uZSA9IGZhbHNlOwog
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0YXJnZXQnKS5nZXRBdHRyaWJ1dGVOb2RlKCdhbGlnbicpLnN0eWxlLmNzc1RleHQiIGNvbXBs
ZXRpb25IYW5kbGVyOl4oTlNTdHJpbmcgKnJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAg
ICAgRVhQRUNUX1NUUkVRKCJ0ZXh0LWFsaWduOiAtd2Via2l0LWNlbnRlcjsiLCByZXN1bHQuVVRG
OFN0cmluZyk7CiAgICAgICAgIGlzRG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlz
RG9uZSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F1
dG9MYXlvdXRJbnRlZ3JhdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0F1dG9MYXlvdXRJbnRlZ3JhdGlvbi5tbQkocmV2aXNpb24gMjQ1
NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdXRvTGF5b3V0
SW50ZWdyYXRpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTkyLDcgKzkyLDcgQEAgLSAodm9pZCli
ZWdpbkxheW91dEF0TWluaW11bVdpZHRoOihDR0ZsbwogCiAtICh2b2lkKXdhaXRGb3JDb250ZW50
U2l6ZUNoYW5nZVJlc2V0dGluZ1dpZHRoOihCT09MKXJlc2V0QWZ0ZXIKIHsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRpZEludmFsaWRhdGVJbnRyaW5zaWNDb250ZW50U2l6ZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkSW52YWxpZGF0ZUludHJpbnNpY0NvbnRlbnRT
aXplKTsKIAogICAgIE5TU2l6ZSBpbnRyaW5zaWNDb250ZW50U2l6ZSA9IHNlbGYuaW50cmluc2lj
Q29udGVudFNpemU7CiAgICAgRVhQRUNUX0VRKF9leHBlY3RlZEludHJpbnNpY0NvbnRlbnRTaXpl
LndpZHRoLCBpbnRyaW5zaWNDb250ZW50U2l6ZS53aWR0aCk7CkBAIC0xNTYsNyArMTU2LDcgQEAg
VEVTVChXZWJLaXQsIEF1dG9MYXlvdXRJbnRlZ3JhdGlvbikKICAgICAgICAgRVhQRUNUX0VRKDEw
LCBbdmFsdWUgaW50ZWdlclZhbHVlXSk7CiAgICAgICAgIGRpZEV2YWx1YXRlSmF2YVNjcmlwdCA9
IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRFdmFsdWF0
ZUphdmFTY3JpcHQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEV2YWx1YXRlSmF2
YVNjcmlwdCk7CiAgICAgZGlkRXZhbHVhdGVKYXZhU2NyaXB0ID0gZmFsc2U7CiAKICAgICAvLyBF
bmFibGluZyBfc2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQgc2hv
dWxkIG1ha2UgdGhlIHBhZ2UgbGF5IG91dCB0byB0aGUgdmlldyBoZWlnaHQsIHJlZ2FyZGxlc3MK
QEAgLTE2OSw3ICsxNjksNyBAQCBURVNUKFdlYktpdCwgQXV0b0xheW91dEludGVncmF0aW9uKQog
ICAgICAgICBFWFBFQ1RfRVEoMTAwMCwgW3ZhbHVlIGludGVnZXJWYWx1ZV0pOwogICAgICAgICBk
aWRFdmFsdWF0ZUphdmFTY3JpcHQgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZGlkRXZhbHVhdGVKYXZhU2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkaWRFdmFsdWF0ZUphdmFTY3JpcHQpOwogICAgIGRpZEV2YWx1YXRlSmF2YVNjcmlw
dCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IF9zZXRTaG91bGRFeHBhbmRDb250ZW50VG9WaWV3SGVp
Z2h0Rm9yQXV0b0xheW91dDpOT107CiB9CkBAIC0xOTgsOSArMTk4LDkgQEAgVEVTVChXZWJLaXQs
IEF1dG9MYXlvdXRSZW5kZXJpbmdQcm9ncmVzcwogICAgIFt3ZWJWaWV3IHNldEV4cGVjdGluZ0lu
dHJpbnNpY0NvbnRlbnRTaXplQ2hhbmdlOllFU107CiAgICAgW3dlYlZpZXcgc2V0RXhwZWN0ZWRJ
bnRyaW5zaWNDb250ZW50U2l6ZTpOU01ha2VTaXplKDEwMCwgNDAwKV07CiAgICAgW3dlYlZpZXcg
bG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0nbWFyZ2luOiAwOyBoZWlnaHQ6IDQwMHB4Oyc+
PC9ib2R5PiIgYmFzZVVSTDpuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlk
SW52YWxpZGF0ZUludHJpbnNpY0NvbnRlbnRTaXplKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRpZEZpcnN0TGF5b3V0KTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRp
ZEZpbmlzaE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEludmFs
aWRhdGVJbnRyaW5zaWNDb250ZW50U2l6ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZGlkRmlyc3RMYXlvdXQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEZpbmlzaE5h
dmlnYXRpb24pOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpuaWxdOwogfQog
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUVkaXRp
bmdEZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0J1bmRsZUVkaXRpbmdEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVFZGl0aW5nRGVsZWdh
dGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDcgQEAgICAgIFtbd2ViVmlldyBfcmVt
b3RlT2JqZWN0UmVnaXN0cnldIHJlZwogCiAgICAgW3dlYlZpZXcgcGVyZm9ybVNlbGVjdG9yOkBz
ZWxlY3Rvcihjb3B5Oikgd2l0aE9iamVjdDpuaWxdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkaWRXcml0ZVRvUGFzdGVib2FyZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZGlkV3JpdGVUb1Bhc3RlYm9hcmQpOwogCiAgICAgTlNTdHJpbmcgKmNvcGllZFN0cmluZyA9
IG5pbDsKICNpZiBQTEFURk9STShNQUMpCkBAIC0xMDIsNyArMTAyLDcgQEAgICAgIFtbd2ViVmll
dyBfcmVtb3RlT2JqZWN0UmVnaXN0cnldIHJlZwogI2VuZGlmCiAgICAgW3dlYlZpZXcgcGVyZm9y
bVNlbGVjdG9yOkBzZWxlY3RvcihwYXN0ZTopIHdpdGhPYmplY3Q6bmlsXTsKIAotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmc2hvdWxkSW5zZXJ0VGV4dENhbGxlZCk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoc2hvdWxkSW5zZXJ0VGV4dENhbGxlZCk7CiAKICAgICBfX2Jsb2Nr
IGJvb2wgZG9uZUV2YWx1YXRpbmdKYXZhU2NyaXB0ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keS5maXJzdENoaWxkLnRleHRDb250ZW50IiBj
b21wbGV0aW9uSGFuZGxlcjpeKGlkIF9OdWxsYWJsZSB2YWx1ZSwgTlNFcnJvciAqIF9OdWxsYWJs
ZSBlcnJvcikgewpAQCAtMTEyLDcgKzExMiw3IEBAICAgICBbW3dlYlZpZXcgX3JlbW90ZU9iamVj
dFJlZ2lzdHJ5XSByZWcKICAgICAgICAgZG9uZUV2YWx1YXRpbmdKYXZhU2NyaXB0ID0gdHJ1ZTsK
ICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUV2YWx1YXRpbmdK
YXZhU2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lRXZhbHVhdGluZ0ph
dmFTY3JpcHQpOwogfQogCiBURVNUKFdlYktpdCwgV0tXZWJQcm9jZXNzUGx1Z0luRG9Ob3RDcmFz
aFdoZW5Db3B5aW5nRW1wdHlDbGllbnREYXRhKQpAQCAtMTI5LDcgKzEyOSw3IEBAICAgICBfV0tS
ZW1vdGVPYmplY3RJbnRlcmZhY2UgKmludGVyZmFjZSAKICAgICBbW3dlYlZpZXcgX3JlbW90ZU9i
amVjdFJlZ2lzdHJ5XSByZWdpc3RlckV4cG9ydGVkT2JqZWN0Om9iamVjdC5nZXQoKSBpbnRlcmZh
Y2U6aW50ZXJmYWNlXTsKIAogICAgIFt3ZWJWaWV3IHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3Io
Y29weTopIHdpdGhPYmplY3Q6bmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRp
ZFdyaXRlVG9QYXN0ZWJvYXJkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRXcml0
ZVRvUGFzdGVib2FyZCk7CiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCkluZGV4OiBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZVBhcmFtZXRlcnMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVQ
YXJhbWV0ZXJzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0J1bmRsZVBhcmFtZXRlcnMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ2
LDcgKzQ2LDcgQEAgVEVTVChXZWJLaXQsIEJ1bmRsZVBhcmFtZXRlcnMpCiAgICAgICAgICAgICBp
c0RvbmUgPSB0cnVlOwogICAgICAgICB9XTsKIAotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmlzRG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7
CiAgICAgICAgIGlzRG9uZSA9IGZhbHNlOwogCiAgICAgICAgIE5TU3RyaW5nICogY29uc3QgdGVz
dFBhcmFtZXRlcjEgPSBAIlRlc3RQYXJhbWV0ZXIxIjsKQEAgLTU1LDcgKzU1LDcgQEAgVEVTVChX
ZWJLaXQsIEJ1bmRsZVBhcmFtZXRlcnMpCiAgICAgICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAg
ICAgICB9XTsKIAotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cisg
ICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAgICAgIGlzRG9uZSA9
IGZhbHNlOwogCiAgICAgICAgIE5TU3RyaW5nICogY29uc3QgdGVzdFN0cmluZyA9IEAiUEFTUyI7
CkBAIC02Niw3ICs2Niw3IEBAIFRFU1QoV2ViS2l0LCBCdW5kbGVQYXJhbWV0ZXJzKQogICAgICAg
ICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICAgICAgfV07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChp
c0RvbmUpOwogICAgICAgICBpc0RvbmUgPSBmYWxzZTsKIAogICAgICAgICBOU0RpY3Rpb25hcnkg
KiBjb25zdCB0ZXN0RGljdGlvbmFyeSA9IEB7IEAicmVzdWx0IiA6IEAiUEFTUyIgfTsKQEAgLTc3
LDcgKzc3LDcgQEAgVEVTVChXZWJLaXQsIEJ1bmRsZVBhcmFtZXRlcnMpCiAgICAgICAgICAgICBp
c0RvbmUgPSB0cnVlOwogICAgICAgICB9XTsKIAotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmlzRG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7
CiAgICAgICAgIGlzRG9uZSA9IGZhbHNlOwogCiAgICAgICAgIFtbY29uZmlndXJhdGlvbiBwcm9j
ZXNzUG9vbF0gX3NldE9iamVjdDpuaWwgZm9yQnVuZGxlUGFyYW1ldGVyOnRlc3RQYXJhbWV0ZXIx
XTsKQEAgLTg2LDcgKzg2LDcgQEAgVEVTVChXZWJLaXQsIEJ1bmRsZVBhcmFtZXRlcnMpCiAgICAg
ICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgICAgICB9XTsKIAotICAgICAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGlzRG9uZSk7CiAgICAgICAgIGlzRG9uZSA9IGZhbHNlOwogCiAgICAgICAgIE5TU3RyaW5nICog
Y29uc3QgdGVzdFBhcmFtZXRlcjIgPSBAIlRlc3RQYXJhbWV0ZXIyIjsKQEAgLTk5LDcgKzk5LDcg
QEAgVEVTVChXZWJLaXQsIEJ1bmRsZVBhcmFtZXRlcnMpCiAgICAgICAgICAgICBpc0RvbmUgPSB0
cnVlOwogICAgICAgICB9XTsKIAotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlz
RG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAgICAg
IGlzRG9uZSA9IGZhbHNlOwogCiAgICAgICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDp0
ZXN0UGFyYW1ldGVyMiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJy
b3IpIHsKQEAgLTEwOCw2ICsxMDgsNiBAQCBURVNUKFdlYktpdCwgQnVuZGxlUGFyYW1ldGVycykK
ICAgICAgICAgICAgIGlzRG9uZSA9IHRydWU7CiAgICAgICAgIH1dOwogCi0gICAgICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoaXNEb25lKTsKICAgICB9CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0J1bmRsZVJhbmdlSGFuZGxlLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlUmFuZ2VIYW5kbGUubW0JKHJldmlz
aW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVu
ZGxlUmFuZ2VIYW5kbGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTcxLDggKzcxLDggQEAgICAgIFtb
d2ViVmlldyBfcmVtb3RlT2JqZWN0UmVnaXN0cnldIHJlZwogCiAgICAgW3dlYlZpZXcgbG9hZEhU
TUxTdHJpbmc6QCJWaXNpdCB3ZWJraXQub3JnICAgPGVtPiAgb3I8L2VtPiBlbWFpbCB3ZWJraXQt
ZGV2QGxpc3RzLndlYmtpdC5vcmcuIiBiYXNlVVJMOm5pbF07CiAKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRpZEdldFRleHRGcm9tQm9keVJhbmdlKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkaWRHZXRUZXh0RnJvbUJvZHlSYW5nZSk7CiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEdldEJvZHlJbm5lckhUTUxB
ZnRlckRldGVjdGluZ0RhdGEpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEdldEJv
ZHlJbm5lckhUTUxBZnRlckRldGVjdGluZ0RhdGEpOwogI2VuZGlmCiB9CkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQkocmV2
aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9D
aGFsbGVuZ2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTI0Nyw3ICsyNDcsNyBAQCBURVNUKENoYWxs
ZW5nZSwgU2VjSWRlbnRpdHkpCiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRl
bGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAiaHR0cDovLzEyNy4wLjAuMTolZC8iLCBzZXJ2ZXIucG9ydCgpXV1dXTsKIAotICAgIFV0
aWw6OnJ1bigmbmF2aWdhdGlvbkZpbmlzaGVkKTsKKyAgICBydW5VbnRpbChuYXZpZ2F0aW9uRmlu
aXNoZWQpOwogICAgIAogICAgIEVYUEVDVF9OT1RfTlVMTChrZXljaGFpblBhdGguZ2V0KCkpOwog
ICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwpAQCAtMjk3LDEwICsyOTcsMTAgQEAgVEVTVChDaGFs
bGVuZ2UsIEJhc2ljUHJvcG9zZWRDcmVkZW50aWFsKQogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRp
b25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgUmV0YWluUHRyPE5TVVJMUmVxdWVzdD4g
cmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJodHRwOi8vMTI3LjAuMC4xOiVkLyIsIHNl
cnZlci5wb3J0KCldXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdC5nZXQoKV07
Ci0gICAgVXRpbDo6cnVuKCZuYXZpZ2F0aW9uRmluaXNoZWQpOworICAgIHJ1blVudGlsKG5hdmln
YXRpb25GaW5pc2hlZCk7CiAgICAgbmF2aWdhdGlvbkZpbmlzaGVkID0gZmFsc2U7CiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdC5nZXQoKV07Ci0gICAgVXRpbDo6cnVuKCZuYXZpZ2F0
aW9uRmluaXNoZWQpOworICAgIHJ1blVudGlsKG5hdmlnYXRpb25GaW5pc2hlZCk7CiAgICAgRVhQ
RUNUX1RSVUUocmVjZWl2ZWRTZWNvbmRDaGFsbGVuZ2UpOwogICAgIAogICAgIF9fYmxvY2sgYm9v
bCByZW1vdmVkQ3JlZGVudGlhbCA9IGZhbHNlOwpAQCAtMzEwLDcgKzMxMCw3IEBAIFRFU1QoQ2hh
bGxlbmdlLCBCYXNpY1Byb3Bvc2VkQ3JlZGVudGlhbCkKICAgICAgICAgICAgIHJlbW92ZWRDcmVk
ZW50aWFsID0gdHJ1ZTsKICAgICAgICAgfV07CiAgICAgfV07Ci0gICAgVXRpbDo6cnVuKCZyZW1v
dmVkQ3JlZGVudGlhbCk7CisgICAgcnVuVW50aWwocmVtb3ZlZENyZWRlbnRpYWwpOwogfQogCiBz
dGF0aWMgdm9pZCB2ZXJpZnlDZXJ0aWZpY2F0ZUFuZFB1YmxpY0tleShTZWNUcnVzdFJlZiB0cnVz
dCkKQEAgLTQyMyw3ICs0MjMsNyBAQCBURVNUKFdlYktpdCwgU2VydmVyVHJ1c3QpCiAgICAgW3dl
YlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAogICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJodHRwczovL2xvY2FsaG9zdDol
ZC8iLCBzZXJ2ZXIucG9ydCgpXV1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm5h
dmlnYXRpb25GaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwobmF2aWdhdGlv
bkZpbmlzaGVkKTsKIAogICAgIHZlcmlmeUNlcnRpZmljYXRlQW5kUHVibGljS2V5KFt3ZWJWaWV3
IHNlcnZlclRydXN0XSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0Nsb3NlV2ViVmlld0FmdGVyRW50ZXJGdWxsc2NyZWVuLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2xvc2VXZWJWaWV3QWZ0ZXJF
bnRlckZ1bGxzY3JlZW4ubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2xvc2VXZWJWaWV3QWZ0ZXJFbnRlckZ1bGxzY3JlZW4ubW0J
KHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDcgQEAgVEVTVChDbG9zZVdlYlZpZXdBZnRlckVu
dGVyRnVsbHNjcmVlbiwgVgogCiAgICAgZGlkRW50ZXJGdWxsc2NyZWVuID0gZmFsc2U7CiAgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigndmlk
ZW8nKS53ZWJraXRFbnRlckZ1bGxzY3JlZW4oKSIgY29tcGxldGlvbkhhbmRsZXI6IG5pbF07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRFbnRlckZ1bGxzY3JlZW4pOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEVudGVyRnVsbHNjcmVlbik7CiAgICAgQVNTRVJUX1RS
VUUoZGlkRW50ZXJGdWxsc2NyZWVuKTsKIAogICAgIC8vIFNob3VsZCBub3QgY3Jhc2g6CkBAIC04
OSw3ICs4OSw3IEBAIFRFU1QoQ2xvc2VXZWJWaWV3QWZ0ZXJFbnRlckZ1bGxzY3JlZW4sIEUKIAog
ICAgIGRpZEVudGVyRnVsbHNjcmVlbiA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2
YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdicpLndlYmtpdFJlcXVlc3RGdWxs
c2NyZWVuKCkiIGNvbXBsZXRpb25IYW5kbGVyOiBuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZGlkRW50ZXJGdWxsc2NyZWVuKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkaWRFbnRlckZ1bGxzY3JlZW4pOwogICAgIEFTU0VSVF9UUlVFKGRpZEVudGVyRnVsbHNjcmVl
bik7CiAKICAgICAvLyBTaG91bGQgbm90IGNyYXNoOgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9DbG9zZVdlYlZpZXdEdXJpbmdFbnRlckZ1bGxzY3JlZW4ubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DbG9z
ZVdlYlZpZXdEdXJpbmdFbnRlckZ1bGxzY3JlZW4ubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2xvc2VXZWJWaWV3RHVyaW5nRW50
ZXJGdWxsc2NyZWVuLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02OSw3ICs2OSw3IEBAIFRFU1QoQ2xv
c2VXZWJWaWV3RHVyaW5nRW50ZXJGdWxsc2NyZWVuLCAKIAogICAgIHdpbGxFbnRlckZ1bGxzY3Jl
ZW4gPSBmYWxzZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCd2aWRlbycpLndlYmtpdEVudGVyRnVsbHNjcmVlbigpIiBjb21wbGV0aW9u
SGFuZGxlcjogbmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJndpbGxFbnRlckZ1
bGxzY3JlZW4pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHdpbGxFbnRlckZ1bGxzY3Jl
ZW4pOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuMik7CiAKICAgICAvLyBTaG91
bGQgbm90IGNyYXNoOgpAQCAtODksNyArODksNyBAQCBURVNUKENsb3NlV2ViVmlld0R1cmluZ0Vu
dGVyRnVsbHNjcmVlbiwgCiAKICAgICB3aWxsRW50ZXJGdWxsc2NyZWVuID0gZmFsc2U7CiAgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2
Jykud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKSIgY29tcGxldGlvbkhhbmRsZXI6IG5pbF07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZ3aWxsRW50ZXJGdWxsc2NyZWVuKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbCh3aWxsRW50ZXJGdWxsc2NyZWVuKTsKICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpzbGVlcCgwLjIpOwogCiAgICAgLy8gU2hvdWxkIG5vdCBjcmFzaDoKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29tbWFuZEJhY2tGb3J3
YXJkLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQ29tbWFuZEJhY2tGb3J3YXJkLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbW1hbmRCYWNrRm9yd2FyZC5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTIzLDExICsxMjMsMTEgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZEZpbGVz
KCkKICAgICB7CiAgICAgICAgIFdLUGFnZUxvYWRGaWxlKFt3ZWJWaWV3IHBhZ2VSZWZdLCBmaWxl
MS5nZXQoKSwgbnVsbHB0cik7Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlk
RmluaXNoTmF2aWdhdGlvbik7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEZp
bmlzaE5hdmlnYXRpb24pOwogICAgICAgICBkaWRGaW5pc2hOYXZpZ2F0aW9uID0gZmFsc2U7CiAK
ICAgICAgICAgV0tQYWdlTG9hZEZpbGUoW3dlYlZpZXcgcGFnZVJlZl0sIGZpbGUyLmdldCgpLCBu
dWxscHRyKTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRGaW5pc2hOYXZp
Z2F0aW9uKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkRmluaXNoTmF2aWdh
dGlvbik7CiAgICAgICAgIGRpZEZpbmlzaE5hdmlnYXRpb24gPSBmYWxzZTsKICAgICB9CiB9OwpA
QCAtMjEwLDcgKzIxMCw3IEBAIFRFU1RfRihXZWJLaXQyX0NvbW1hbmRCYWNrRm9yd2FyZFRlc3RX
S1YKIAogICAgIC8vIEF0dGVtcHQgdG8gZ28gYmFjayAodXNpbmcgY29tbWFuZC1sZWZ0KS4KICAg
ICBzaW11bGF0ZUNvbW1hbmRBcnJvdyh3ZWJWaWV3LmdldCgpLCBMZWZ0KTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRpZEZpbmlzaE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRpZEZpbmlzaE5hdmlnYXRpb24pOwogICAgIGRpZEZpbmlzaE5hdmlnYXRp
b24gPSBmYWxzZTsKIAogICAgIGF1dG8gY3VycmVudFVSTDIgPSBhZG9wdFdLKFdLUGFnZUNvcHlB
Y3RpdmVVUkwoW3dlYlZpZXcgcGFnZVJlZl0pKTsKQEAgLTIxOCw3ICsyMTgsNyBAQCBURVNUX0Yo
V2ViS2l0Ml9Db21tYW5kQmFja0ZvcndhcmRUZXN0V0tWCiAKICAgICAvLyBBdHRlbXB0IHRvIGdv
IGJhY2sgKHVzaW5nIGNvbW1hbmQtcmlnaHQpLgogICAgIHNpbXVsYXRlQ29tbWFuZEFycm93KHdl
YlZpZXcuZ2V0KCksIFJpZ2h0KTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEZp
bmlzaE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEZpbmlzaE5h
dmlnYXRpb24pOwogICAgIGRpZEZpbmlzaE5hdmlnYXRpb24gPSBmYWxzZTsKIAogICAgIGF1dG8g
Y3VycmVudFVSTDMgPSBhZG9wdFdLKFdLUGFnZUNvcHlBY3RpdmVVUkwoW3dlYlZpZXcgcGFnZVJl
Zl0pKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBURVNUX0YoV2ViS2l0Ml9Db21tYW5kQmFja0Zvcndh
cmRUZXN0V0tWCiAKICAgICAvLyBBdHRlbXB0IHRvIGdvIGJhY2sgKHVzaW5nIGNvbW1hbmQtcmln
aHQpCiAgICAgc2ltdWxhdGVDb21tYW5kQXJyb3cod2ViVmlldy5nZXQoKSwgUmlnaHQpOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRmluaXNoTmF2aWdhdGlvbik7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZGlkRmluaXNoTmF2aWdhdGlvbik7CiAgICAgZGlkRmluaXNo
TmF2aWdhdGlvbiA9IGZhbHNlOwogCiAgICAgYXV0byBjdXJyZW50VVJMMiA9IGFkb3B0V0soV0tQ
YWdlQ29weUFjdGl2ZVVSTChbd2ViVmlldyBwYWdlUmVmXSkpOwpAQCAtMjQ1LDcgKzI0NSw3IEBA
IFRFU1RfRihXZWJLaXQyX0NvbW1hbmRCYWNrRm9yd2FyZFRlc3RXS1YKIAogICAgIC8vIEF0dGVt
cHQgdG8gZ28gYmFjayAodXNpbmcgY29tbWFuZC1sZWZ0KS4KICAgICBzaW11bGF0ZUNvbW1hbmRB
cnJvdyh3ZWJWaWV3LmdldCgpLCBMZWZ0KTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRpZEZpbmlzaE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEZp
bmlzaE5hdmlnYXRpb24pOwogICAgIGRpZEZpbmlzaE5hdmlnYXRpb24gPSBmYWxzZTsKIAogICAg
IGF1dG8gY3VycmVudFVSTDMgPSBhZG9wdFdLKFdLUGFnZUNvcHlBY3RpdmVVUkwoW3dlYlZpZXcg
cGFnZVJlZl0pKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
Q29udGVudEZpbHRlcmluZy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0NvbnRlbnRGaWx0ZXJpbmcubW0JKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29udGVudEZpbHRlcmluZy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTI3LDcgKzEyNyw3IEBAIFRFU1QoQ29udGVudEZpbHRlcmlu
ZywgVVJMQWZ0ZXJTZXJ2ZXJSZWQKICAgICAgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBh
ZG9wdE5TKFtbU2VydmVyUmVkaXJlY3ROYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
ICAgICAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0
ZS5nZXQoKV07CiAgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vcmVkaXJlY3Q/cGFzcyJd
XV07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICAgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgICAgICBbVGVzdFByb3RvY29s
IHVucmVnaXN0ZXJdOwogICAgIH0KQEAgLTE4Niw5ICsxODYsOSBAQCBzdGF0aWMgdm9pZCBkb3du
bG9hZFRlc3QoRGVjaXNpb24gZGVjaXNpCiAgICAgICAgIGRvd25sb2FkRGlkU3RhcnQgPSBmYWxz
ZTsKICAgICAgICAgY29uc3QgYm9vbCBkb3dubG9hZFNob3VsZFN0YXJ0ID0gZGVjaXNpb24gPT0g
RGVjaXNpb246OkFsbG93IHx8IGRlY2lzaW9uUG9pbnQgPiBEZWNpc2lvblBvaW50OjpBZnRlclJl
c3BvbnNlOwogICAgICAgICBpZiAoZG93bmxvYWRTaG91bGRTdGFydCkKLSAgICAgICAgICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG93bmxvYWREaWRTdGFydCk7CisgICAgICAgICAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb3dubG9hZERpZFN0YXJ0KTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgICAgICAg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgICAgICBFWFBFQ1RfRVEo
ZG93bmxvYWRTaG91bGRTdGFydCwgZG93bmxvYWREaWRTdGFydCk7CiAKQEAgLTI5MSw3ICsyOTEs
NyBAQCBzdGF0aWMgdm9pZCBsb2FkQWx0ZXJuYXRlVGVzdChEZWNpc2lvbiBkCiAgICAgICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJodHRwOi8vcmVkaXJlY3QvP3Jlc3VsdCJdXV07CiAKICAgICAgICAgaXNE
b25lID0gZmFsc2U7Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsK
KyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgICAgICBbVGVz
dFByb3RvY29sIHVucmVnaXN0ZXJdOwogICAgIH0KQEAgLTM3MCw3ICszNzAsNyBAQCAtICh2b2lk
KWV4cGVjdFBhcmVudGFsQ29udHJvbHNMb2FkZWQ6KEJPCiAjZW5kaWYgLy8gSEFWRShORVRXT1JL
X0VYVEVOU0lPTikKICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
aXNEb25lKTsKIH0KIAogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZp
bmlzaE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24KQEAgLTM4OCwzMSArMzg4
LDMxIEBAIFRFU1QoQ29udGVudEZpbHRlcmluZywgTGF6aWx5TG9hZFBsYXRmb3IKIAogICAgICAg
ICBpc0RvbmUgPSBmYWxzZTsKICAgICAgICAgW1tjb250cm9sbGVyIHdlYlZpZXddIGxvYWRIVE1M
U3RyaW5nOkAiUEFTUyIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5r
Il1dOwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAgICAgIFtjb250cm9sbGVyIGV4
cGVjdFBhcmVudGFsQ29udHJvbHNMb2FkZWQ6Tk8gbmV0d29ya0V4dGVuc2lvbkxvYWRlZDpOT107
CiAKICAgICAgICAgaXNEb25lID0gZmFsc2U7CiAgICAgICAgIFtbY29udHJvbGxlciB3ZWJWaWV3
XSBsb2FkRGF0YTpbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6IlBBU1MiIGxlbmd0aDo0XSBNSU1FVHlw
ZTpAInRleHQvaHRtbCIgY2hhcmFjdGVyRW5jb2RpbmdOYW1lOkAiVVRGLTgiIGJhc2VVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJdXTsKLSAgICAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChp
c0RvbmUpOwogICAgICAgICBbY29udHJvbGxlciBleHBlY3RQYXJlbnRhbENvbnRyb2xzTG9hZGVk
Ok5PIG5ldHdvcmtFeHRlbnNpb25Mb2FkZWQ6Tk9dOwogCiAgICAgICAgIGlzRG9uZSA9IGZhbHNl
OwogICAgICAgICBOU1VSTCAqZmlsZVVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJDb250ZW50RmlsdGVyaW5nIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKICAgICAgICAgW1tjb250cm9sbGVy
IHdlYlZpZXddIGxvYWRGaWxlVVJMOmZpbGVVUkwgYWxsb3dpbmdSZWFkQWNjZXNzVG9VUkw6Zmls
ZVVSTF07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICAg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKICAgICAgICAgW2NvbnRyb2xsZXIg
ZXhwZWN0UGFyZW50YWxDb250cm9sc0xvYWRlZDpOTyBuZXR3b3JrRXh0ZW5zaW9uTG9hZGVkOk5P
XTsKIAogICAgICAgICBpc0RvbmUgPSBmYWxzZTsKICAgICAgICAgW1Rlc3RQcm90b2NvbCByZWdp
c3RlcldpdGhTY2hlbWU6QCJjdXN0b20iXTsKICAgICAgICAgW1tjb250cm9sbGVyIHdlYlZpZXdd
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJjdXN0b206Ly90ZXN0Il1dXTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZpc0RvbmUpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwog
ICAgICAgICBbY29udHJvbGxlciBleHBlY3RQYXJlbnRhbENvbnRyb2xzTG9hZGVkOk5PIG5ldHdv
cmtFeHRlbnNpb25Mb2FkZWQ6Tk9dOwogICAgICAgICBbVGVzdFByb3RvY29sIHVucmVnaXN0ZXJd
OwogCiAgICAgICAgIGlzRG9uZSA9IGZhbHNlOwogICAgICAgICBbVGVzdFByb3RvY29sIHJlZ2lz
dGVyV2l0aFNjaGVtZTpAImh0dHAiXTsKICAgICAgICAgW1tjb250cm9sbGVyIHdlYlZpZXddIGxv
YWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJodHRwOi8vdGVzdCJdXV07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
aXNEb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgICAgIFtjb250cm9sbGVyIGV4cGVjdFBhcmVudGFsQ29udHJvbHNM
b2FkZWQ6Tk8gbmV0d29ya0V4dGVuc2lvbkxvYWRlZDpZRVNdOwogI2Vsc2UKQEAgLTQyNCw3ICs0
MjQsNyBAQCBURVNUKENvbnRlbnRGaWx0ZXJpbmcsIExhemlseUxvYWRQbGF0Zm9yCiAgICAgICAg
IGlzRG9uZSA9IGZhbHNlOwogICAgICAgICBbVGVzdFByb3RvY29sIHJlZ2lzdGVyV2l0aFNjaGVt
ZTpAImh0dHBzIl07CiAgICAgICAgIFtbY29udHJvbGxlciB3ZWJWaWV3XSBsb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6
Ly90ZXN0Il1dXTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOwor
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAgICAgICBbY29udHJv
bGxlciBleHBlY3RQYXJlbnRhbENvbnRyb2xzTG9hZGVkOllFUyBuZXR3b3JrRXh0ZW5zaW9uTG9h
ZGVkOllFU107CiAgICAgICAgIFtUZXN0UHJvdG9jb2wgdW5yZWdpc3Rlcl07CiAjZW5kaWYKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29udGVudFJ1bGVMaXN0
Tm90aWZpY2F0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQ29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uLm1tCShyZXZpc2lvbiAyNDU1
MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbnRlbnRSdWxl
TGlzdE5vdGlmaWNhdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw3IEBAIHN0
YXRpYyBSZXRhaW5QdHI8V0tDb250ZW50UnVsZUxpc3Q+IG1ha2UKICAgICAgICAgY29udGVudFJ1
bGVMaXN0ID0gbGlzdDsKICAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CiAgICAgfV07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lQ29tcGlsaW5nKTsKICAgICByZXR1cm4gY29udGVudFJ1bGVM
aXN0OwogfQogCkBAIC0xMzMsNyArMTMzLDcgQEAgVEVTVChXZWJLaXQsIENvbnRlbnRSdWxlTGlz
dE5vdGlmaWNhdGlvbgogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYXBpdGVzdDovLy9tYXRj
aCJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZE5vdGlmaWNhdGlv
bik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWROb3RpZmljYXRpb24pOwog
ICAgIEVYUEVDVF9TVFJFUShbbm90aWZpY2F0aW9uVVJMIGFic29sdXRlU3RyaW5nXS5VVEY4U3Ry
aW5nLCAiYXBpdGVzdDovLy9tYXRjaCIpOwogICAgIEVYUEVDVF9TVFJFUShbbm90aWZpY2F0aW9u
SWRlbnRpZmllciBVVEY4U3RyaW5nXSwgInRlc3RpZGVudGlmaWVyIik7CiB9CkBAIC0xNDgsNyAr
MTQ4LDcgQEAgVEVTVChXZWJLaXQsIENvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbgogICAgIFt3
ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZp
ZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6QCI8c2NyaXB0PmZldGNoKCdtYXRjaCcpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2Upe2Fs
ZXJ0KCdmZXRjaCBjb21wbGV0ZScpfSk8L3NjcmlwdD4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJhcGl0ZXN0Oi8vLyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkQWxlcnQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkQWxlcnQp
OwogICAgIEVYUEVDVF9UUlVFKHJlY2VpdmVkTm90aWZpY2F0aW9uKTsKICAgICBFWFBFQ1RfU1RS
RVEoW25vdGlmaWNhdGlvblVSTCBhYnNvbHV0ZVN0cmluZ10uVVRGOFN0cmluZywgImFwaXRlc3Q6
Ly8vbWF0Y2giKTsKICAgICBFWFBFQ1RfU1RSRVEoW25vdGlmaWNhdGlvbklkZW50aWZpZXIgVVRG
OFN0cmluZ10sICJ0ZXN0aWRlbnRpZmllciIpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIFRFU1QoV2Vi
S2l0LCBQZXJmb3JtZWRBY3Rpb25Gb3JVUkwpCiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRl
bGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVn
YXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+ZmV0Y2go
J25vdGlmeScpLnRoZW4oZnVuY3Rpb24oKXtmZXRjaCgnYmxvY2snKS50aGVuKCkuY2F0Y2goZnVu
Y3Rpb24oKXthbGVydCgndGVzdCBjb21wbGV0ZScpfSl9KTwvc2NyaXB0PiIgYmFzZVVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAImFwaXRlc3Q6Ly8vIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcmVjZWl2ZWRBbGVydCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVj
ZWl2ZWRBbGVydCk7CiAgICAgd2hpbGUgKG5vdGlmaWNhdGlvbkxpc3Quc2l6ZSgpIDwgMikKICAg
ICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoKTsKIApJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db29raWVBY2NlcHRQb2xpY3kubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db29raWVB
Y2NlcHRQb2xpY3kubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvQ29va2llQWNjZXB0UG9saWN5Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC02Niw3ICs2Niw3IEBAIFRFU1QoV2ViS2l0LCBDb29raWVBY2NlcHRQb2xpY3kpCiAgICAgTlNV
UkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiQ29va2llTWVzc2FnZSIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwog
ICAgIFtwcm9jZXNzUG9vbCBfc2V0Q29va2llQWNjZXB0UG9saWN5Ok5TSFRUUENvb2tpZUFjY2Vw
dFBvbGljeU5ldmVyXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICBFWFBFQ1Rf
U1RSRVEoWyhOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSBVVEY4U3RyaW5nXSwg
IkNPT0tJRToiKTsKICAgICAKICAgICBbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENv
b2tpZVN0b3JhZ2VdIHNldENvb2tpZUFjY2VwdFBvbGljeTpvcmlnaW5hbENvb2tpZUFjY2VwdFBv
bGljeV07CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Nvb2tp
ZVByaXZhdGVCcm93c2luZy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0Nvb2tpZVByaXZhdGVCcm93c2luZy5tbQkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db29raWVQcml2YXRl
QnJvd3NpbmcubW0JKHdvcmtpbmcgY29weSkKQEAgLTYzLDggKzYzLDggQEAgVEVTVChXZWJLaXQs
IENvb2tpZVByaXZhdGVCcm93c2luZykKICAgICBbdmlldzIgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0
ZS5nZXQoKV07CiAgICAgTlNTdHJpbmcgKmFsZXJ0T2xkQ29va2llID0gQCI8c2NyaXB0PnZhciBv
bGRDb29raWUgPSBkb2N1bWVudC5jb29raWU7IGRvY3VtZW50LmNvb2tpZSA9ICdrZXk9dmFsdWUn
OyBhbGVydCgnb2xkIGNvb2tpZTogPCcgKyBvbGRDb29raWUgKyAnPicpOzwvc2NyaXB0PiI7CiAg
ICAgW3ZpZXcxIGxvYWRIVE1MU3RyaW5nOmFsZXJ0T2xkQ29va2llIGJhc2VVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcmVjZWl2ZWRBbGVydCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
cmVjZWl2ZWRBbGVydCk7CiAgICAgcmVjZWl2ZWRBbGVydCA9IGZhbHNlOwogICAgIFt2aWV3MiBs
b2FkSFRNTFN0cmluZzphbGVydE9sZENvb2tpZSBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAiaHR0cDovL2V4YW1wbGUuY29tLyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnJlY2VpdmVkQWxlcnQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkQWxl
cnQpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DdXN0
b21Vc2VyQWdlbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9DdXN0b21Vc2VyQWdlbnQubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ3VzdG9tVXNlckFnZW50Lm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIFRFU1QoQ3VzdG9tVXNlckFnZW50LCBVcGRhdGVD
YWNoZWROYXZpZ2EKICAgICAgICAgd2ViVmlldy5nZXQoKS5jdXN0b21Vc2VyQWdlbnQgPSBAIkN1
c3RvbSBVc2VyQWdlbnQiOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIC8vIFF1ZXJ5IG5hdmlnYXRvci51c2Vy
QWdlbnQgYWdhaW4gdG8gbWFrZSBzdXJlIGl0cyBjYWNoZSB3YXMgaW52YWxpZGF0ZWQgYW5kIGl0
IHJldHVybnMgdGhlIHVwZGF0ZWQgdmFsdWUuCkBAIC01OSw2ICs1OSw2IEBAIFRFU1QoQ3VzdG9t
VXNlckFnZW50LCBVcGRhdGVDYWNoZWROYXZpZ2EKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAi
Q3VzdG9tIFVzZXJBZ2VudCIsIHVzZXJBZ2VudCk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAg
IH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogfQpJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGF0YURldGVjdGlv
bi5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9EYXRhRGV0ZWN0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBA
IC0gKHZvaWQpc3luY2hyb25vdXNseURldGVjdERhdGFXaXRoVHlwZXMKICAgICBbc2VsZiBfZGV0
ZWN0RGF0YVdpdGhUeXBlczp0eXBlcyBjb21wbGV0aW9uSGFuZGxlcjpeewogICAgICAgICBkb25l
ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiAtICh2b2lkKXN5bmNocm9u
b3VzbHlSZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rcwpAQCAtNTcsNyArNTcsNyBAQCAtICh2b2lkKXN5
bmNocm9ub3VzbHlSZW1vdmVEYXRhRGV0ZWN0ZWRMCiAgICAgW3NlbGYgX3JlbW92ZURhdGFEZXRl
Y3RlZExpbmtzOl57CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9u
ZSk7CiB9CiAKIEBlbmQKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBleHBlY3RMaW5rQ291bnQoV0tX
ZWJWaWV3ICp3ZWJWaWV3LAogICAgICAgICByYW5TY3JpcHQgPSB0cnVlOwogICAgIH1dOwogCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyYW5TY3JpcHQpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKHJhblNjcmlwdCk7CiAgICAgcmFuU2NyaXB0ID0gZmFsc2U7CiB9CiAKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24ubW0JKHJldmlz
aW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtOTcsMTEg
Kzk3LDExIEBAIFRFU1QoV2ViS2l0LCBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWMKIAogICAg
IGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6Zmlyc3RVUkxd
XV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkTmF2aWdhdGlvbik7CiAKICAgICBk
ZWNpZGVkUG9saWN5ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgcmVsb2FkXTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRlY2lkZWRQb2xpY3kpOwogCiAgICAgRVhQRUNUX0VRKFdLTmF2aWdhdGlvblR5cGVS
ZWxvYWQsIFthY3Rpb24gbmF2aWdhdGlvblR5cGVdKTsKICAgICBFWFBFQ1RfVFJVRShbYWN0aW9u
IHNvdXJjZUZyYW1lXSAhPSBbYWN0aW9uIHRhcmdldEZyYW1lXSk7CkBAIC0xMjcsMTEgKzEyNywx
MSBAQCBURVNUKFdlYktpdCwgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjCiAKICAgICBmaW5p
c2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOmZpcnN0VVJMXV1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZE5hdmlnYXRpb24pOwogCiAgICAgZGVjaWRl
ZFBvbGljeSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IHJlbG9hZEZyb21PcmlnaW5dOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZGVjaWRlZFBvbGljeSk7CiAKICAgICBFWFBFQ1RfRVEoV0tOYXZpZ2F0aW9u
VHlwZVJlbG9hZCwgW2FjdGlvbiBuYXZpZ2F0aW9uVHlwZV0pOwogICAgIEVYUEVDVF9UUlVFKFth
Y3Rpb24gc291cmNlRnJhbWVdICE9IFthY3Rpb24gdGFyZ2V0RnJhbWVdKTsKQEAgLTE1NywxNSAr
MTU3LDE1IEBAIFRFU1QoV2ViS2l0LCBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWMKIAogICAg
IGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6Zmlyc3RVUkxd
XV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkTmF2aWdhdGlvbik7CiAKICAgICBm
aW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOnNlY29uZFVSTF1d
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZpZ2F0aW9uKTsKIAogICAgIGRl
Y2lkZWRQb2xpY3kgPSBmYWxzZTsKICAgICBbd2ViVmlldyBnb0JhY2tdOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZGVjaWRlZFBvbGljeSk7CiAKICAgICBFWFBFQ1RfRVEoV0tOYXZpZ2F0aW9uVHlwZUJh
Y2tGb3J3YXJkLCBbYWN0aW9uIG5hdmlnYXRpb25UeXBlXSk7CiAgICAgRVhQRUNUX1RSVUUoW2Fj
dGlvbiBzb3VyY2VGcmFtZV0gIT0gW2FjdGlvbiB0YXJnZXRGcmFtZV0pOwpAQCAtMTkxLDE5ICsx
OTEsMTkgQEAgVEVTVChXZWJLaXQsIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BYwogCiAgICAg
ZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpmaXJzdFVSTF1d
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZpZ2F0aW9uKTsKIAogICAgIGZp
bmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6c2Vjb25kVVJMXV1d
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZE5hdmlnYXRpb24pOwogCiAgICAgZmlu
aXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgZ29CYWNrXTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZpZ2F0aW9uKTsKIAogICAgIGRlY2lkZWRQb2xpY3kg
PSBmYWxzZTsKICAgICBbd2ViVmlldyBnb0ZvcndhcmRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGVj
aWRlZFBvbGljeSk7CiAKICAgICBFWFBFQ1RfRVEoV0tOYXZpZ2F0aW9uVHlwZUJhY2tGb3J3YXJk
LCBbYWN0aW9uIG5hdmlnYXRpb25UeXBlXSk7CiAgICAgRVhQRUNUX1RSVUUoW2FjdGlvbiBzb3Vy
Y2VGcmFtZV0gIT0gW2FjdGlvbiB0YXJnZXRGcmFtZV0pOwpAQCAtMjMxLDEyICsyMzEsMTIgQEAg
VEVTVChXZWJLaXQsIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BYwogCiAgICAgICAgIGNyZWF0
ZWRXZWJWaWV3ID0gZmFsc2U7CiAgICAgICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPHNj
cmlwdD53aW5kb3cub3BlbignaHR0cDovL3dlYmtpdC5vcmcvZGVzdGluYXRpb24uaHRtbCcpPC9z
Y3JpcHQ+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL3dlYmtpdC5vcmci
XV07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmY3JlYXRlZFdlYlZpZXcpOwor
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChjcmVhdGVkV2ViVmlldyk7CiAgICAgfQog
CiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogICAgIFtuZXdXZWJWaWV3IHNldE5hdmlnYXRp
b25EZWxlZ2F0ZTpjb250cm9sbGVyLmdldCgpXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRlY2lkZWRQ
b2xpY3kpOwogCiAgICAgRVhQRUNUX0VRKFdLTmF2aWdhdGlvblR5cGVPdGhlciwgW2FjdGlvbiBu
YXZpZ2F0aW9uVHlwZV0pOwogICAgIEVYUEVDVF9UUlVFKFthY3Rpb24gc291cmNlRnJhbWVdICE9
IFthY3Rpb24gdGFyZ2V0RnJhbWVdKTsKQEAgLTI2MCwxMSArMjYwLDExIEBAIFRFU1QoV2ViS2l0
LCBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWMKIAogICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9
IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGEgc3R5bGU9XCJkaXNwbGF5
OiBibG9jazsgaGVpZ2h0OiAxMDAlXCIgaHJlZj1cImh0dHBzOi8vd2Via2l0Lm9yZy9kZXN0aW5h
dGlvbjIuaHRtbFwiIHRhcmdldD1cIkJcIj4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJodHRwOi8vd2Via2l0Lm9yZyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZp
bmlzaGVkTmF2aWdhdGlvbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWRO
YXZpZ2F0aW9uKTsKIAogICAgIGNyZWF0ZWRXZWJWaWV3ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93Lm9wZW4oXCJodHRwczovL3dlYmtpdC5vcmcvZGVz
dGluYXRpb24xLmh0bWxcIiwgXCJCXCIpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmY3JlYXRlZFdlYlZpZXcpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGNyZWF0ZWRXZWJWaWV3KTsKIAogICAgIEVYUEVDVF9FUShXS05hdmlnYXRp
b25UeXBlT3RoZXIsIFthY3Rpb24gbmF2aWdhdGlvblR5cGVdKTsKICAgICBFWFBFQ1RfVFJVRShb
YWN0aW9uIHNvdXJjZUZyYW1lXSAhPSBbYWN0aW9uIHRhcmdldEZyYW1lXSk7CkBAIC0yNzYsMTQg
KzI3NiwxNCBAQCBURVNUKFdlYktpdCwgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjCiAgICAg
Ly8gV2FpdCBmb3IgbmV3V2ViVmlldyB0byBhc2sgdG8gbG9hZCBpdHMgaW5pdGlhbCBkb2N1bWVu
dC4KICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7CiAgICAgW25ld1dlYlZpZXcgc2V0TmF2aWdh
dGlvbkRlbGVnYXRlOmNvbnRyb2xsZXIuZ2V0KCldOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZGVjaWRlZFBvbGljeSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGVjaWRl
ZFBvbGljeSk7CiAKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7CiAgICAgW25ld1dlYlZpZXcg
c2V0TmF2aWdhdGlvbkRlbGVnYXRlOmNvbnRyb2xsZXIuZ2V0KCldOwogICAgIE5TUG9pbnQgY2xp
Y2tQb2ludCA9IE5TTWFrZVBvaW50KDEwMCwgMTAwKTsKICAgICBbW3dlYlZpZXcgaGl0VGVzdDpj
bGlja1BvaW50XSBtb3VzZURvd246W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1l
c3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2
ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKICAgICBbW3dlYlZpZXcgaGl0
VGVzdDpjbGlja1BvaW50XSBtb3VzZVVwOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZUxlZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRp
bWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwg
ZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZGVjaWRlZFBvbGljeSk7CiAKICAgICBFWFBFQ1RfRVEoV0tOYXZpZ2F0aW9uVHlwZUxpbmtB
Y3RpdmF0ZWQsIFthY3Rpb24gbmF2aWdhdGlvblR5cGVdKTsKICAgICBFWFBFQ1RfVFJVRShbYWN0
aW9uIHNvdXJjZUZyYW1lXSAhPSBbYWN0aW9uIHRhcmdldEZyYW1lXSk7CkBAIC0zMTAsNyArMzEw
LDcgQEAgVEVTVChXZWJLaXQsIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BYwogICAgIGZpbmlz
aGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKICAgICBb
d2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIlRFU1QiIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJhYm91dDpibGFuayJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlz
aGVkTmF2aWdhdGlvbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZp
Z2F0aW9uKTsKICAgICBFWFBFQ1RfVFJVRShkZWNpZGVkUG9saWN5KTsKIH0KIApAQCAtMzQ3LDEx
ICszNDcsMTEgQEAgVEVTVChXZWJLaXQsIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BYwogCiAg
ICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJp
bmc6QCI8YSBzdHlsZT1cImRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDEwMCVcIiBocmVmPVwiamF2
YXNjcmlwdDp3aW5kb3cub3BlbignaHR0cHM6Ly93ZWJraXQub3JnL2Rlc3RpbmF0aW9uMi5odG1s
JywgJ0InKVwiPiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQu
b3JnIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9u
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZE5hdmlnYXRpb24pOwogCiAg
ICAgY3JlYXRlZFdlYlZpZXcgPSBmYWxzZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3Jp
cHQ6QCJ3aW5kb3cub3BlbihcImh0dHBzOi8vd2Via2l0Lm9yZy9kZXN0aW5hdGlvbjEuaHRtbFwi
LCBcIkJcIikiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZjcmVhdGVkV2ViVmlldyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoY3Jl
YXRlZFdlYlZpZXcpOwogCiAgICAgRVhQRUNUX0VRKFdLTmF2aWdhdGlvblR5cGVPdGhlciwgW2Fj
dGlvbiBuYXZpZ2F0aW9uVHlwZV0pOwogICAgIEVYUEVDVF9UUlVFKFthY3Rpb24gc291cmNlRnJh
bWVdICE9IFthY3Rpb24gdGFyZ2V0RnJhbWVdKTsKQEAgLTM2MywxNCArMzYzLDE0IEBAIFRFU1Qo
V2ViS2l0LCBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWMKICAgICAvLyBXYWl0IGZvciBuZXdX
ZWJWaWV3IHRvIGFzayB0byBsb2FkIGl0cyBpbml0aWFsIGRvY3VtZW50LgogICAgIGRlY2lkZWRQ
b2xpY3kgPSBmYWxzZTsKICAgICBbbmV3V2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6Y29u
dHJvbGxlci5nZXQoKV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkZWNpZGVkUG9s
aWN5KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkZWNpZGVkUG9saWN5KTsKIAogICAg
IGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKICAgICBbbmV3V2ViVmlldyBzZXROYXZpZ2F0aW9uRGVs
ZWdhdGU6Y29udHJvbGxlci5nZXQoKV07CiAgICAgTlNQb2ludCBjbGlja1BvaW50ID0gTlNNYWtl
UG9pbnQoMTAwLCAxMDApOwogICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNl
RG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3du
IGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051
bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjEgcHJlc3N1cmU6MV1dOwogICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRd
IG1vdXNlVXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNl
VXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93
TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNs
aWNrQ291bnQ6MSBwcmVzc3VyZToxXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
ZWNpZGVkUG9saWN5KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkZWNpZGVkUG9saWN5
KTsKIAogICAgIEVYUEVDVF9FUShXS05hdmlnYXRpb25UeXBlT3RoZXIsIFthY3Rpb24gbmF2aWdh
dGlvblR5cGVdKTsKICAgICBFWFBFQ1RfVFJVRShbYWN0aW9uIHNvdXJjZUZyYW1lXSAhPSBbYWN0
aW9uIHRhcmdldEZyYW1lXSk7CkBAIC0zOTYsMTEgKzM5NiwxMSBAQCBURVNUKFdlYktpdCwgRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjCiAKICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxz
ZTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxmb3JtIGFjdGlvbj1cImh0dHBzOi8v
d2Via2l0Lm9yZy9kZXN0aW5hdGlvbjEuaHRtbFwiIHRhcmdldD1cIkJcIj48aW5wdXQgdHlwZT1c
InN1Ym1pdFwiIG5hbWU9XCJzdWJtaXRcIiB2YWx1ZT1cIlN1Ym1pdFwiIHN0eWxlPVwiLXdlYmtp
dC1hcHBlYXJhbmNlOiBub25lOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlXCI+PC9mb3JtPiIg
YmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl1dOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZE5hdmlnYXRpb24pOwogCiAgICAgY3JlYXRlZFdl
YlZpZXcgPSBmYWxzZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cu
b3BlbihcImh0dHBzOi8vd2Via2l0Lm9yZy9kZXN0aW5hdGlvbjIuaHRtbFwiLCBcIkJcIikiIGNv
bXBsZXRpb25IYW5kbGVyOm5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjcmVh
dGVkV2ViVmlldyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoY3JlYXRlZFdlYlZpZXcp
OwogCiAgICAgRVhQRUNUX0VRKFdLTmF2aWdhdGlvblR5cGVPdGhlciwgW2FjdGlvbiBuYXZpZ2F0
aW9uVHlwZV0pOwogICAgIEVYUEVDVF9UUlVFKFthY3Rpb24gc291cmNlRnJhbWVdICE9IFthY3Rp
b24gdGFyZ2V0RnJhbWVdKTsKQEAgLTQxMiwxMyArNDEyLDEzIEBAIFRFU1QoV2ViS2l0LCBEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWMKICAgICAvLyBXYWl0IGZvciBuZXdXZWJWaWV3IHRvIGFz
ayB0byBsb2FkIGl0cyBpbml0aWFsIGRvY3VtZW50LgogICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxz
ZTsKICAgICBbbmV3V2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6Y29udHJvbGxlci5nZXQo
KV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkZWNpZGVkUG9saWN5KTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkZWNpZGVkUG9saWN5KTsKIAogICAgIGRlY2lkZWRQb2xp
Y3kgPSBmYWxzZTsKICAgICBOU1BvaW50IGNsaWNrUG9pbnQgPSBOU01ha2VQb2ludCgxMDAsIDEw
MCk7CiAgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xp
Y2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cg
d2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVz
c3VyZToxXV07CiAgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcCBsb2NhdGlvbjpj
bGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRv
dyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHBy
ZXNzdXJlOjFdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRlY2lkZWRQb2xpY3kp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRlY2lkZWRQb2xpY3kpOwogCiAgICAgRVhQ
RUNUX0VRKFdLTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkLCBbYWN0aW9uIG5hdmlnYXRpb25U
eXBlXSk7CiAgICAgRVhQRUNUX1RSVUUoW2FjdGlvbiBzb3VyY2VGcmFtZV0gIT0gW2FjdGlvbiB0
YXJnZXRGcmFtZV0pOwpAQCAtNDUzLDE0ICs0NTMsMTQgQEAgc3RhdGljIHZvaWQgcnVuRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbgogICAgIFtUZXN0UHJvdG9jb2wgcmVnaXN0ZXJXaXRoU2NoZW1l
OkAiaHR0cCJdOwogICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogICAgIFt3ZWJWaWV3
IGxvYWRIVE1MU3RyaW5nOkAiPGEgc3R5bGU9XCJkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAxMDAl
XCIgaHJlZj1cImh0dHA6Ly9yZWRpcmVjdC8/cmVzdWx0XCI+IiBiYXNlVVJMOltOU1VSTCBVUkxX
aXRoU3RyaW5nOkAiaHR0cDovL3dlYmtpdC5vcmciXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGZpbmlzaGVkTmF2aWdhdGlvbik7CiAKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7CiAgICAg
W25ld1dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmNvbnRyb2xsZXIuZ2V0KCldOwogICAg
IE5TUG9pbnQgY2xpY2tQb2ludCA9IE5TTWFrZVBvaW50KDEwMCwgMTAwKTsKICAgICBbW3dlYlZp
ZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZURvd246W05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVy
RmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNv
bnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKICAgICBb
W3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVwOltOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZp
ZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0g
Y29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZGVjaWRlZFBvbGljeSk7CiAKICAgICBFWFBFQ1RfRVEoV0tOYXZpZ2F0
aW9uVHlwZUxpbmtBY3RpdmF0ZWQsIFthY3Rpb24gbmF2aWdhdGlvblR5cGVdKTsKICAgICBFWFBF
Q1RfVFJVRShbYWN0aW9uIHNvdXJjZUZyYW1lXSA9PSBbYWN0aW9uIHRhcmdldEZyYW1lXSk7CkBA
IC00NzMsNyArNDczLDcgQEAgc3RhdGljIHZvaWQgcnVuRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bgogCiAgICAgLy8gV2FpdCB0byBkZWNpZGUgcG9saWN5IGZvciByZWRpcmVjdC4KICAgICBkZWNp
ZGVkUG9saWN5ID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkZWNpZGVk
UG9saWN5KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkZWNpZGVkUG9saWN5KTsKIAog
ICAgIEVYUEVDVF9FUShXS05hdmlnYXRpb25UeXBlTGlua0FjdGl2YXRlZCwgW2FjdGlvbiBuYXZp
Z2F0aW9uVHlwZV0pOwogICAgIEVYUEVDVF9UUlVFKFthY3Rpb24gc291cmNlRnJhbWVdID09IFth
Y3Rpb24gdGFyZ2V0RnJhbWVdKTsKQEAgLTUxMiwxMiArNTEyLDEyIEBAIFRFU1QoV2ViS2l0LCBE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWMKIAogICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZh
bHNlOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGZvcm0gYWN0aW9uPVwiaHR0cDov
L3JlZGlyZWN0Lz9yZXN1bHRcIiBtZXRob2Q9XCJQT1NUXCI+PGlucHV0IHR5cGU9XCJzdWJtaXRc
IiBuYW1lPVwic3VibWl0QnV0dG9uXCIgdmFsdWU9XCJTdWJtaXRcIj48L2Zvcm0+IiBiYXNlVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL3dlYmtpdC5vcmciXV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGZpbmlzaGVkTmF2aWdhdGlvbik7CiAKICAgICBbVGVzdFByb3RvY29sIHJl
Z2lzdGVyV2l0aFNjaGVtZTpAImh0dHAiXTsKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7CiAg
ICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuZm9ybXNbMF0uc3VibWl0
KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkZWNpZGVkUG9saWN5KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkZWNpZGVkUG9s
aWN5KTsKIAogICAgIEVYUEVDVF9FUShXS05hdmlnYXRpb25UeXBlRm9ybVN1Ym1pdHRlZCwgW2Fj
dGlvbiBuYXZpZ2F0aW9uVHlwZV0pOwogICAgIEVYUEVDVF9UUlVFKFthY3Rpb24gc291cmNlRnJh
bWVdID09IFthY3Rpb24gdGFyZ2V0RnJhbWVdKTsKQEAgLTUzMCw3ICs1MzAsNyBAQCBURVNUKFdl
YktpdCwgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjCiAKICAgICAvLyBXYWl0IHRvIGRlY2lk
ZSBwb2xpY3kgZm9yIHJlZGlyZWN0LgogICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRlY2lkZWRQb2xpY3kpOwogCiAgICAgRVhQRUNUX0VRKFdLTmF2aWdhdGlv
blR5cGVGb3JtU3VibWl0dGVkLCBbYWN0aW9uIG5hdmlnYXRpb25UeXBlXSk7CiAgICAgRVhQRUNU
X1RSVUUoW2FjdGlvbiBzb3VyY2VGcmFtZV0gPT0gW2FjdGlvbiB0YXJnZXRGcmFtZV0pOwpAQCAt
NTU5LDEyICs1NTksMTIgQEAgVEVTVChXZWJLaXQsIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
YwogCiAgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZEhU
TUxTdHJpbmc6QCI8Zm9ybSBhY3Rpb249XCJodHRwOi8vMzA3LXJlZGlyZWN0Lz9yZXN1bHRcIiBt
ZXRob2Q9XCJQT1NUXCI+PGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwic3VibWl0QnV0dG9u
XCIgdmFsdWU9XCJTdWJtaXRcIj48L2Zvcm0+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAiaHR0cDovL3dlYmtpdC5vcmciXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZm
aW5pc2hlZE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVk
TmF2aWdhdGlvbik7CiAKICAgICBbVGVzdFByb3RvY29sIHJlZ2lzdGVyV2l0aFNjaGVtZTpAImh0
dHAiXTsKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVK
YXZhU2NyaXB0OkAiZG9jdW1lbnQuZm9ybXNbMF0uc3VibWl0KCkiIGNvbXBsZXRpb25IYW5kbGVy
Om5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkZWNpZGVkUG9saWN5KTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkZWNpZGVkUG9saWN5KTsKIAogICAgIEVYUEVDVF9F
UShXS05hdmlnYXRpb25UeXBlRm9ybVN1Ym1pdHRlZCwgW2FjdGlvbiBuYXZpZ2F0aW9uVHlwZV0p
OwogICAgIEVYUEVDVF9UUlVFKFthY3Rpb24gc291cmNlRnJhbWVdID09IFthY3Rpb24gdGFyZ2V0
RnJhbWVdKTsKQEAgLTU3Nyw3ICs1NzcsNyBAQCBURVNUKFdlYktpdCwgRGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjCiAKICAgICAvLyBXYWl0IHRvIGRlY2lkZSBwb2xpY3kgZm9yIHJlZGlyZWN0
LgogICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRlY2lkZWRQ
b2xpY3kpOwogCiAgICAgRVhQRUNUX0VRKFdLTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkLCBb
YWN0aW9uIG5hdmlnYXRpb25UeXBlXSk7CiAgICAgRVhQRUNUX1RSVUUoW2FjdGlvbiBzb3VyY2VG
cmFtZV0gPT0gW2FjdGlvbiB0YXJnZXRGcmFtZV0pOwpAQCAtNjI1LDcgKzYyNSw3IEBAIFRFU1Qo
V2ViS2l0LCBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWMKICAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25GcmFnbWVudERlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVn
YXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+d2luZG93
LmxvY2F0aW9uLmhyZWY9JyNmcmFnbWVudCc7PC9zY3JpcHQ+IiBiYXNlVVJMOltOU1VSTCBVUkxX
aXRoU3RyaW5nOkAiaHR0cDovL3dlYmtpdC5vcmciXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAog
I2VuZGlmCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rldmlj
ZU9yaWVudGF0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRGV2aWNlT3JpZW50YXRpb24ubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGV2aWNlT3JpZW50YXRpb24ubW0J
KHdvcmtpbmcgY29weSkKQEAgLTExMCw3ICsxMTAsNyBAQCBzdGF0aWMgdm9pZCBydW5EZXZpY2VP
cmllbnRhdGlvblRlc3QoRGV2CiAKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJE
ZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoZ3JhbnRlZCkg
PT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGdyYW50
ZWQpIH0pOyIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJv
cikgeyB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkUmVjZWl2ZU1lc3Nh
Z2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZFJlY2VpdmVNZXNzYWdlKTsKICAg
ICBkaWRSZWNlaXZlTWVzc2FnZSA9IGZhbHNlOwogCiAgICAgc3dpdGNoIChkZXZpY2VPcmllbnRh
dGlvblBlcm1pc3Npb24pIHsKQEAgLTEyOCwxMyArMTI4LDEzIEBAIHN0YXRpYyB2b2lkIHJ1bkRl
dmljZU9yaWVudGF0aW9uVGVzdChEZXYKICAgICAgICAgYWRkZWRFdmVudExpc3RlbmVyID0gdHJ1
ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmYWRkZWRFdmVudExp
c3RlbmVyKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChhZGRlZEV2ZW50TGlzdGVuZXIp
OwogICAgIGFkZGVkRXZlbnRMaXN0ZW5lciA9IGZhbHNlOwogCiAgICAgW3dlYlZpZXcgX3NpbXVs
YXRlRGV2aWNlT3JpZW50YXRpb25DaGFuZ2VXaXRoQWxwaGE6MS4wIGJldGE6Mi4wIGdhbW1hOjMu
MF07CiAKICAgICBpZiAoZGV2aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uID09IERldmljZU9yaWVu
dGF0aW9uUGVybWlzc2lvbjo6R3JhbnRlZCkgewotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRpZFJlY2VpdmVNZXNzYWdlKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZGlkUmVjZWl2ZU1lc3NhZ2UpOwogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJyZWNlaXZl
ZC1ldmVudCIsIHJlY2VpdmVkTWVzc2FnZXMuZ2V0KClbMV0pOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuMSk7CkBAIC0xNzYsNyArMTc2LDcgQEAg
VEVTVChEZXZpY2VPcmllbnRhdGlvbiwgUmVtZW1iZXJQZXJtaXNzaQogCiAgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAiRGV2aWNlT3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlz
c2lvbigpLnRoZW4oKGdyYW50ZWQpID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZShncmFudGVkKSB9KTsiIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlk
IHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRpZFJlY2VpdmVNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
aWRSZWNlaXZlTWVzc2FnZSk7CiAgICAgZGlkUmVjZWl2ZU1lc3NhZ2UgPSBmYWxzZTsKIAogICAg
IEVYUEVDVF9UUlVFKGFza2VkQ2xpZW50Rm9yUGVybWlzc2lvbik7CkBAIC0xOTIsNyArMTkyLDcg
QEAgVEVTVChEZXZpY2VPcmllbnRhdGlvbiwgUmVtZW1iZXJQZXJtaXNzaQogCiAgICAgW3dlYlZp
ZXcgX2V2YWx1YXRlSmF2YVNjcmlwdFdpdGhvdXRVc2VyR2VzdHVyZTpAIkRldmljZU9yaWVudGF0
aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChncmFudGVkKSA9PiB7IHdlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZ3JhbnRlZCkgfSwgKGVycm9y
KSA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ2Vy
cm9yJyk7IH0pOyIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICpl
cnJvcikgeyB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkUmVjZWl2ZU1l
c3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZFJlY2VpdmVNZXNzYWdlKTsK
ICAgICBkaWRSZWNlaXZlTWVzc2FnZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAi
Z3JhbnRlZCIsIHJlY2VpdmVkTWVzc2FnZXMuZ2V0KClbMV0pOwpAQCAtMjEyLDcgKzIxMiw3IEBA
IFRFU1QoRGV2aWNlT3JpZW50YXRpb24sIFJlbWVtYmVyUGVybWlzc2kKIAogICAgIFt3ZWJWaWV3
IGV2YWx1YXRlSmF2YVNjcmlwdDpAIkRldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1p
c3Npb24oKS50aGVuKChncmFudGVkKSA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoZ3JhbnRlZCkgfSk7IiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChp
ZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7IH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkaWRSZWNlaXZlTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZGlkUmVjZWl2ZU1lc3NhZ2UpOwogICAgIGRpZFJlY2VpdmVNZXNzYWdlID0gZmFsc2U7CiAKICAg
ICBFWFBFQ1RfVFJVRShhc2tlZENsaWVudEZvclBlcm1pc3Npb24pOwpAQCAtMjI2LDcgKzIyNiw3
IEBAIFRFU1QoRGV2aWNlT3JpZW50YXRpb24sIFJlbWVtYmVyUGVybWlzc2kKIAogICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIkRldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBl
cm1pc3Npb24oKS50aGVuKChncmFudGVkKSA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVz
dEhhbmRsZXIucG9zdE1lc3NhZ2UoZ3JhbnRlZCkgfSk7IiBjb21wbGV0aW9uSGFuZGxlcjogWyZd
IChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7IH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkaWRSZWNlaXZlTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZGlkUmVjZWl2ZU1lc3NhZ2UpOwogICAgIGRpZFJlY2VpdmVNZXNzYWdlID0gZmFsc2U7CiAK
ICAgICBFWFBFQ1RfVFJVRShhc2tlZENsaWVudEZvclBlcm1pc3Npb24pOwpAQCAtMjQyLDcgKzI0
Miw3IEBAIFRFU1QoRGV2aWNlT3JpZW50YXRpb24sIFJlbWVtYmVyUGVybWlzc2kKIAogICAgIFt3
ZWJWaWV3IF9ldmFsdWF0ZUphdmFTY3JpcHRXaXRob3V0VXNlckdlc3R1cmU6QCJEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoZ3JhbnRlZCkgPT4geyB3ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGdyYW50ZWQpIH0sIChl
cnJvcikgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdl
KCdlcnJvcicpOyB9KTsiIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJv
ciAqZXJyb3IpIHsgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZFJlY2Vp
dmVNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRSZWNlaXZlTWVzc2Fn
ZSk7CiAgICAgZGlkUmVjZWl2ZU1lc3NhZ2UgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19TVFJF
UShAImdyYW50ZWQiLCByZWNlaXZlZE1lc3NhZ2VzLmdldCgpWzRdKTsKQEAgLTI2OSw3ICsyNjks
NyBAQCBURVNUKERldmljZU9yaWVudGF0aW9uLCBGaXJlT3JpZW50YXRpb25FCiAgICAgLy8gUmVx
dWVzdCBwZXJtaXNzaW9uLgogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIkRldmlj
ZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChncmFudGVkKSA9PiB7
IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoZ3JhbnRlZCkg
fSk7IiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7
IH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRSZWNlaXZlTWVzc2FnZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkUmVjZWl2ZU1lc3NhZ2UpOwogICAgIGRp
ZFJlY2VpdmVNZXNzYWdlID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfVFJVRShhc2tlZENsaWVudEZv
clBlcm1pc3Npb24pOwpAQCAtMjg5LDE0ICsyODksMTQgQEAgVEVTVChEZXZpY2VPcmllbnRhdGlv
biwgRmlyZU9yaWVudGF0aW9uRQogICAgICAgICBhZGRlZEV2ZW50TGlzdGVuZXIgPSB0cnVlOwog
ICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZhZGRlZEV2ZW50TGlzdGVu
ZXIpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGFkZGVkRXZlbnRMaXN0ZW5lcik7CiAg
ICAgYWRkZWRFdmVudExpc3RlbmVyID0gZmFsc2U7CiAKICAgICAvLyBTaW11bGF0ZSBhIGRldmlj
ZSBvcmllbnRhdGlvbiBldmVudC4gVGhlIHBhZ2UncyBldmVudCBsaXN0ZW5lciBzaG91bGQgZ2V0
IGNhbGxlZCBldmVuIHRob3VnaCBpdCBkaWQgbm90IHJlcXVlc3QgcGVybWlzc2lvbiwKICAgICAv
LyBiZWNhdXNlIGl0IHdhcyBwcmV2aW91c2x5IGdyYW50ZWQgcGVybWlzc2lvbiBkdXJpbmcgdGhp
cyBicm93c2luZyBzZXNzaW9uLgogICAgIFt3ZWJWaWV3IF9zaW11bGF0ZURldmljZU9yaWVudGF0
aW9uQ2hhbmdlV2l0aEFscGhhOjEuMCBiZXRhOjIuMCBnYW1tYTozLjBdOwogCi0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkaWRSZWNlaXZlTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZGlkUmVjZWl2ZU1lc3NhZ2UpOwogICAgIEVYUEVDVF9XS19TVFJFUShAInJl
Y2VpdmVkLWV2ZW50IiwgcmVjZWl2ZWRNZXNzYWdlcy5nZXQoKVsxXSk7CiB9CiAKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9BZnRlck5leHRQcmVzZW50YXRp
b25VcGRhdGVBZnRlckNyYXNoLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGVBZnRlckNyYXNo
Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlQWZ0ZXJDcmFzaC5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBURVNUKFdlYktpdCwgRG9BZnRlck5leHRQcmVzZW50
YXRpb25VcGRhCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCJ0ZXN0IiBiYXNlVVJMOm5p
bF07CiAgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwogCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZnb3RDYWxsYmFjayk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZ290Q2FsbGJhY2spOwogfQogCiBURVNUKFdlYktpdCwgRG9BZnRlck5l
eHRTdGFibGVQcmVzZW50YXRpb25VcGRhdGVBZnRlckNyYXNoKQpAQCAtNzAsNyArNzAsNyBAQCBU
RVNUKFdlYktpdCwgRG9BZnRlck5leHRTdGFibGVQcmVzZW50YXRpCiAgICAgW3dlYlZpZXcgbG9h
ZEhUTUxTdHJpbmc6QCJ0ZXN0IiBiYXNlVVJMOm5pbF07CiAgICAgW3dlYlZpZXcgX3Rlc3Rfd2Fp
dEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwogICAgIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZ290Q2FsbGJhY2spOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGdvdENhbGxi
YWNrKTsKIH0KIAogI2VuZGlmCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCShy
ZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0JKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDcg
QEAgLSAoVUlXS0RvY3VtZW50Q29udGV4dCAqKXN5bmNocm9ub3VzbHlSZQogICAgICAgICByZXN1
bHQgPSBjb250ZXh0OwogICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZmluaXNoZWQpOwogICAgIHJldHVybiByZXN1bHQuYXV0b3JlbGVhc2UoKTsKIH0KIApA
QCAtODgsNyArODgsNyBAQCAtICh2b2lkKXN5bmNocm9ub3VzbHlBZGp1c3RTZWxlY3Rpb25XaXRo
CiAgICAgW1tzZWxmIHdrQ29udGVudFZpZXddIGFkanVzdFNlbGVjdGlvbldpdGhEZWx0YTpyYW5n
ZSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgewogICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAg
fV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWQpOwogfQogCiAtIChOU0FycmF5PF9XS1RleHRJbnB1
dENvbnRleHQgKj4gKilzeW5jaHJvbm91c2x5UmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0
OihDR1JlY3QpcmVjdApAQCAtOTksNyArOTksNyBAQCAtIChOU0FycmF5PF9XS1RleHRJbnB1dENv
bnRleHQgKj4gKilzeW5jCiAgICAgICAgIHJlc3VsdCA9IGNvbnRleHRzOwogICAgICAgICBmaW5p
c2hlZCA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5p
c2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWQpOwogICAgIHJldHVy
biByZXN1bHQuYXV0b3JlbGVhc2UoKTsKIH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Eb3VibGVEZWZlcnNMb2FkaW5nLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG91YmxlRGVmZXJzTG9hZGluZy5t
bQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Eb3VibGVEZWZlcnNMb2FkaW5nLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsMjAgKzEx
MSwyMCBAQCBURVNUKFdlYktpdCwgRG91YmxlRGVmZXJzTG9hZGluZykKICAgICBOU1VSTFJlcXVl
c3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAiZGVmZXJzOi8vaG9zdC9tYWluMS5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAImRlZmVyczovL2hvc3QvbWFpbjEuaHRtbCNmcmFnbWVudCJdXTsKICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogCiAgICAgW3dlYlZpZXcgX3NldERlZmVyc0xvYWRpbmdGb3JUZXN0aW5nOllFU107
CiAgICAgW3dlYlZpZXcgZ29CYWNrXTsKICAgICBbd2ViVmlldyBfc2V0RGVmZXJzTG9hZGluZ0Zv
clRlc3Rpbmc6Tk9dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAK
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3du
bG9hZC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Eb3dubG9hZC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQyLDcgKzE0Miw3IEBA
IHN0YXRpYyB2b2lkIHJ1blRlc3QoaWQgPFdLTmF2aWdhdGlvbkRlbGUKICAgICBoYXNSZWNlaXZl
ZFJlc3BvbnNlID0gZmFsc2U7CiAgICAgZXhwZWN0ZWRVc2VySW5pdGlhdGVkU3RhdGUgPSBmYWxz
ZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OnVybF1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogfQogCiBAaW50ZXJmYWNlIERvd25sb2FkTmF2
aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPgpAQCAtMjgx
LDcgKzI4MSw3IEBAIFRFU1QoX1dLRG93bmxvYWQsIE9yaWdpbmF0aW5nV2ViVmlldykKICAgICB9
CiAKICAgICBpc0RvbmUgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlz
RG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIH0KIAogQGludGVy
ZmFjZSBEb3dubG9hZFJlcXVlc3RPcmlnaW5hbFVSTERlbGVnYXRlIDogTlNPYmplY3QgPF9XS0Rv
d25sb2FkRGVsZWdhdGU+CkBAIC0zNTUsNyArMzU1LDcgQEAgVEVTVChfV0tEb3dubG9hZCwgRG93
bmxvYWRSZXF1ZXN0T3JpZ2luYQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6Y29udGVudFVSTF1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6c291cmNlVVJMXV07CiAgICAgaXNEb25lID0g
ZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKIEBpbnRlcmZhY2UgQmxvYkRvd25sb2Fk
RGVsZWdhdGUgOiBOU09iamVjdCA8X1dLRG93bmxvYWREZWxlZ2F0ZT4KQEAgLTUyMCw3ICs1MjAs
NyBAQCBURVNUKF9XS0Rvd25sb2FkLCBSZWRpcmVjdGVkRG93bmxvYWQpCiAgICAgW3dlYlZpZXcg
b2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdFdpdGhVc2VyR2VzdHVyZTpAImRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdsaW5rJykuY2xpY2soKTsiXTsKIAogICAgIGlzRG9uZSA9IGZhbHNlOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChpc0RvbmUpOwogICAgIEVYUEVDVF9FUSgxVSwgcmVkaXJlY3RDb3VudCk7CiAK
ICAgICBbVGVzdFByb3RvY29sIHVucmVnaXN0ZXJdOwpAQCAtNTQzLDcgKzU0Myw3IEBAIFRFU1Qo
X1dLRG93bmxvYWQsIFJlZGlyZWN0ZWRMb2FkQ29udmVydGUKICAgICByZWRpcmVjdENvdW50ID0g
MDsKICAgICBoYXNSZWNlaXZlZFJlc3BvbnNlID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
Imh0dHA6Ly9yZWRpcmVjdC8/cmVkaXJlY3QvP3Bhc3MiXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUp
OwogICAgIEVYUEVDVF9FUSgwVSwgcmVkaXJlY3RDb3VudCk7CiAKICAgICBbVGVzdFByb3RvY29s
IHVucmVnaXN0ZXJdOwpAQCAtNTY2LDcgKzU2Niw3IEBAIFRFU1QoX1dLRG93bmxvYWQsIFJlZGly
ZWN0ZWRTdWJmcmFtZUxvYWQKICAgICByZWRpcmVjdENvdW50ID0gMDsKICAgICBoYXNSZWNlaXZl
ZFJlc3BvbnNlID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8Ym9keT48
aWZyYW1lIHNyYz0naHR0cDovL3JlZGlyZWN0Lz9yZWRpcmVjdC8/cGFzcyc+PC9pZnJhbWU+PC9i
b2R5PiIgYmFzZVVSTDpuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAgIEVYUEVDVF9FUSgw
VSwgcmVkaXJlY3RDb3VudCk7CiAKICAgICBbVGVzdFByb3RvY29sIHVucmVnaXN0ZXJdOwpAQCAt
NTk4LDcgKzU5OCw3IEBAIC0gKHZvaWQpX2Rvd25sb2FkRGlkQ2FuY2VsOihfV0tEb3dubG9hZCAK
IC0gKHZvaWQpX2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2FkIGRlY2lkZURlc3RpbmF0
aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOihOU1N0cmluZyAqKWZpbGVuYW1lIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShCT09MIGFsbG93T3ZlcndyaXRlLCBOU1N0cmluZyAqZGVzdGluYXRp
b24pKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgW2Rvd25sb2FkIGNhbmNlbF07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGlzRG9uZSk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoWUVTLCBAIi90bXAvV2ViS2l0QVBJ
VGVzdC9fV0tEb3dubG9hZCIpOwogICAgIGRvd25sb2FkSGFzRGVjaWRlZERlc3RpbmF0aW9uID0g
dHJ1ZTsKIH0KQEAgLTYxOSw3ICs2MTksNyBAQCBURVNUKF9XS0Rvd25sb2FkLCBEb3dubG9hZENh
bmNlbGVkV2hpbGVECiAgICAgZG93bmxvYWRIYXNEZWNpZGVkRGVzdGluYXRpb24gPSBmYWxzZTsK
ICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL3Bhc3MiXV1dOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb3dubG9hZEhhc0RlY2lkZWREZXN0aW5hdGlvbik7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG93bmxvYWRIYXNEZWNpZGVkRGVzdGluYXRpb24pOwogCiAgICAg
W1Rlc3RQcm90b2NvbCB1bnJlZ2lzdGVyXTsKIH0KQEAgLTY3NiwxNCArNjc2LDE0IEBAIC0gKGlu
c3RhbmNldHlwZSlpbml0CiAKIC0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb24KIHsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJl9kaWRGaW5pc2hOYXZpZ2F0aW9uKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChfZGlkRmluaXNoTmF2aWdhdGlvbik7CiAgICAgX2Rp
ZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uID0gZmFsc2U7CiAgICAgX2RpZEZpbmlzaE5hdmln
YXRpb24gPSBmYWxzZTsKIH0KIAogLSAodm9pZCl3YWl0Rm9yRG93bmxvYWREaWRTdGFydAogewot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmX2Rvd25sb2FkRGlkU3RhcnQpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKF9kb3dubG9hZERpZFN0YXJ0KTsKIH0KIAogLSAodm9pZCl3
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246KFdLTmF2aWdh
dGlvbiAqKW5hdmlnYXRpb24KQEAgLTc3MSwxMSArNzcxLDExIEBAIFRFU1QoX1dLRG93bmxvYWQs
IENyYXNoQWZ0ZXJEb3dubG9hZERpZEYKICAgICAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpzb3VyY2VVUkxdXTsKIAogICAgICAgICBkaWREb3du
bG9hZFN0YXJ0ID0gZmFsc2U7Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlk
RG93bmxvYWRTdGFydCk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZERvd25s
b2FkU3RhcnQpOwogICAgIH0KIAogICAgIGlzRG9uZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0Rv
bmUpOwogICAgIEVYUEVDVF9OVUxMKHByb2Nlc3NQb29sLmdldCgpKTsKIH0KIApAQCAtODY4LDEz
ICs4NjgsMTMgQEAgdm9pZCBkb3dubG9hZEF0UmF0ZShkb3VibGUgZGVzaXJlZEticHMsIAogICAg
IGF1dG8gd2ViVmlldyA9IHdlYlZpZXdXaXRoRG93bmxvYWRNb25pdG9yU3BlZWRNdWx0aXBsaWVy
KHNwZWVkTXVsdGlwbGllcik7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAImh0dHA6Ly8xMjcuMC4wLjE6JWQvIiwgc2VydmVyLnBvcnQoKV1dXV07CiAgICAg
cmVjZWl2ZWREYXRhID0gZmFsc2U7Ci0gICAgVXRpbDo6cnVuKCZyZWNlaXZlZERhdGEpOworICAg
IHJ1blVudGlsKHJlY2VpdmVkRGF0YSk7CiAgICAgLy8gU3RhcnQgdGhlIERvd25sb2FkTW9uaXRv
cidzIHRpbWVyLgogICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS5wcm9jZXNzUG9vbCBfc3lu
dGhlc2l6ZUFwcElzQmFja2dyb3VuZDpZRVNdOwogICAgIGlmIChyZXR1cm5Ub0ZvcmVncm91bmQg
PT0gQXBwUmV0dXJuc1RvRm9yZWdyb3VuZDo6WWVzKQogICAgICAgICBbW3dlYlZpZXcgY29uZmln
dXJhdGlvbl0ucHJvY2Vzc1Bvb2wgX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6Tk9dOwogICAg
IGRpZENhbmNlbCA9IGZhbHNlOwotICAgIFV0aWw6OnJ1bigmZGlkQ2FuY2VsKTsKKyAgICBydW5V
bnRpbChkaWRDYW5jZWwpOwogICAgIHRlcm1pbmF0ZVNlcnZlciA9IHRydWU7CiAgICAgW1tOU0Zp
bGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVJdGVtQXRVUkw6W05TVVJMIGZpbGVVUkxX
aXRoUGF0aDpkZXN0aW5hdGlvbi5nZXQoKSBpc0RpcmVjdG9yeTpOT10gZXJyb3I6bmlsXTsKIH0K
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWRQcm9n
cmVzcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0Rvd25sb2FkUHJvZ3Jlc3MubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWRQcm9ncmVzcy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjIyLDEyICsyMjIsMTIgQEAgLSAodm9pZClzdWJzY3JpYmVBbmRXYWl0Rm9yUHJv
Z3Jlc3MKICAgICAgICAgbV9wcm9ncmVzc1N1YnNjcmliZXIgPSBbTlNQcm9ncmVzcyBhZGRTdWJz
Y3JpYmVyRm9yRmlsZVVSTDptX3Byb2dyZXNzVVJMLmdldCgpIHdpdGhQdWJsaXNoaW5nSGFuZGxl
cjpwdWJsaXNoaW5nSGFuZGxlci5nZXQoKV07CiAjZW5kaWYKICAgICB9Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZtX2hhc1Byb2dyZXNzKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChtX2hhc1Byb2dyZXNzKTsKIH0KIAogLSAodm9pZCl3YWl0VG9Mb3NlUHJvZ3Jlc3MKIHsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm1fbG9zdFByb2dyZXNzKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChtX2xvc3RQcm9ncmVzcyk7CiB9CiAKIC0gKHZvaWQpc3RhcnRE
b3dubG9hZDooRG93bmxvYWRTdGFydFR5cGUpc3RhcnRUeXBlIGV4cGVjdGVkTGVuZ3RoOihOU0lu
dGVnZXIpZXhwZWN0ZWRMZW5ndGgKQEAgLTI1Miw3ICsyNTIsNyBAQCAtICh2b2lkKXN0YXJ0RG93
bmxvYWQ6KERvd25sb2FkU3RhcnRUeXBlCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmbV9kb3dubG9hZFN0YXJ0ZWQpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKG1fZG93bmxvYWRTdGFydGVkKTsKIH0KIAogLSAodm9pZClwdWJsaXNo
UHJvZ3Jlc3MKQEAgLTI4NSwyNyArMjg1LDI3IEBAIC0gKHZvaWQpZmFpbERvd25sb2FkVGFzawog
CiAtICh2b2lkKXdhaXRGb3JEb3dubG9hZERpZENyZWF0ZURlc3RpbmF0aW9uCiB7Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZtX2Rvd25sb2FkRGlkQ3JlYXRlRGVzdGluYXRpb24pOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKG1fZG93bmxvYWREaWRDcmVhdGVEZXN0aW5hdGlv
bik7CiB9CiAKIC0gKHZvaWQpd2FpdEZvckRvd25sb2FkRmluaXNoZWQKIHsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJm1fZG93bmxvYWRGaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwobV9kb3dubG9hZEZpbmlzaGVkKTsKIH0KIAogLSAodm9pZCl3YWl0Rm9yRG93
bmxvYWRDYW5jZWxlZAogewotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmbV9kb3dubG9h
ZENhbmNlbGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChtX2Rvd25sb2FkQ2FuY2Vs
ZWQpOwogfQogCiAtICh2b2lkKXdhaXRGb3JEb3dubG9hZEZhaWxlZAogewotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmbV9kb3dubG9hZEZhaWxlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwobV9kb3dubG9hZEZhaWxlZCk7CiB9CiAKIC0gKGludDY0X3Qpd2FpdEZvclVwZGF0
ZWRDb21wbGV0ZWRVbml0Q291bnQKIHsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm1f
aGFzVXBkYXRlZENvbXBsZXRlZFVuaXRDb3VudCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwobV9oYXNVcGRhdGVkQ29tcGxldGVkVW5pdENvdW50KTsKICAgICBtX2hhc1VwZGF0ZWRDb21w
bGV0ZWRVbml0Q291bnQgPSBmYWxzZTsKIAogICAgIHJldHVybiBtX3Byb2dyZXNzLmdldCgpLmNv
bXBsZXRlZFVuaXRDb3VudDsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRHJhZ0FuZERyb3BUZXN0cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0RyYWdBbmREcm9wVGVzdHMubW0JKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRHJhZ0FuZERyb3BU
ZXN0cy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjAzLDggKzIwMyw4IEBAIFRFU1QoRHJhZ0FuZERy
b3BUZXN0cywgQ29sb3JJbnB1dEV2ZW50cykKICAgICB9XTsKIAogICAgIFtzaW11bGF0b3IgcnVu
RnJvbTpDR1BvaW50TWFrZSg1MCwgNTApIHRvOkNHUG9pbnRNYWtlKDE1MCwgNTApXTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlucHV0RXZlbnRGaXJlZCk7Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZjaGFuZ2VFdmVudEZpcmVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChpbnB1dEV2ZW50RmlyZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGNo
YW5nZUV2ZW50RmlyZWQpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0R1cGxpY2F0ZUNv
bXBsZXRpb25IYW5kbGVyQ2FsbHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9EdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzLm1tCShy
ZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0R1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEz
NCw1ICsxMzQsNSBAQCBURVNUKFdlYktpdCwgRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDCiAg
ICAgW3dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAImR1cGxpY2F0ZS1jb21wbGV0aW9uLWhhbmRsZXIt
Y2FsbHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdXV07CiAKLSAgICBVdGlsOjpydW4oJnRlc3RGaW5pc2hlZCk7CisgICAgcnVu
VW50aWwodGVzdEZpbmlzaGVkKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRXhpdEZ1bGxzY3JlZW5PbkVudGVyUGlQLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRXhpdEZ1bGxzY3JlZW5PbkVudGVy
UGlQLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0V4aXRGdWxsc2NyZWVuT25FbnRlclBpUC5tbQkod29ya2luZyBjb3B5KQpAQCAt
ODEsMTkgKzgxLDE5IEBAIFRFU1QoRXhpdEZ1bGxzY3JlZW5PbkVudGVyUGlQLCBWaWRlb0Z1bGwK
IAogICAgIGRpZEVudGVyRnVsbHNjcmVlbiA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGV2YWx1YXRl
SmF2YVNjcmlwdDpAImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlbnRlci12aWRlby1mdWxsc2Ny
ZWVuJykuY2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6IG5pbF07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkaWRFbnRlckZ1bGxzY3JlZW4pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRpZEVudGVyRnVsbHNjcmVlbik7CiAgICAgQVNTRVJUX1RSVUUoZGlkRW50ZXJGdWxs
c2NyZWVuKTsKIAogICAgIGRpZEVudGVyUGlQID0gZmFsc2U7CiAgICAgZGlkRXhpdEZ1bGxzY3Jl
ZW4gPSBmYWxzZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZW50ZXItcGlwJykuY2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6IG5p
bF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRFbnRlclBpUCk7Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRFeGl0RnVsbHNjcmVlbik7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZGlkRW50ZXJQaVApOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRpZEV4aXRGdWxsc2NyZWVuKTsKIAogICAgIHNsZWVwKDFfcyk7IC8vIFdhaXQgZm9yIFBJUEFn
ZW50IHRvIGxhdW5jaCwgb3IgaXQgd29uJ3QgY2FsbCAtcGlwRGlkQ2xvc2U6IGNhbGxiYWNrLgog
CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2V4aXQtcGlwJykuY2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6IG5pbF07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRFeGl0UGlQKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkaWRFeGl0UGlQKTsKIH0KIAogCkBAIC0xMTEsMjUgKzExMSwyNSBAQCBURVNUKEV4
aXRGdWxsc2NyZWVuT25FbnRlclBpUCwgRWxlbWVudEZ1CiAKICAgICBkaWRFbnRlckZ1bGxzY3Jl
ZW4gPSBmYWxzZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZW50ZXItZWxlbWVudC1mdWxsc2NyZWVuJykuY2xpY2soKSIgY29tcGxl
dGlvbkhhbmRsZXI6IG5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRFbnRl
ckZ1bGxzY3JlZW4pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEVudGVyRnVsbHNj
cmVlbik7CiAgICAgQVNTRVJUX1RSVUUoZGlkRW50ZXJGdWxsc2NyZWVuKTsKIAogICAgIC8vIE1h
a2UgdGhlIHZpZGVvIHRoZSAibWFpbiBjb250ZW50IiBieSBwbGF5aW5nIHdpdGggYSB1c2VyIGdl
c3R1cmUuCiAgICAgX19ibG9jayBib29sIGRpZEJlZ2luUGxheWluZyA9IGZhbHNlOwogICAgIFt3
ZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJwbGF5aW5nIiBhY3Rpb246Xnsg
ZGlkQmVnaW5QbGF5aW5nID0gdHJ1ZTsgfV07CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BsYXknKS5jbGljaygpIiBjb21wbGV0aW9u
SGFuZGxlcjpuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQmVnaW5QbGF5
aW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRCZWdpblBsYXlpbmcpOwogCiAg
ICAgZGlkRW50ZXJQaVAgPSBmYWxzZTsKICAgICBkaWRFeGl0RnVsbHNjcmVlbiA9IGZhbHNlOwog
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdlbnRlci1waXAnKS5jbGljaygpIiBjb21wbGV0aW9uSGFuZGxlcjogbmlsXTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEVudGVyUGlQKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRpZEV4aXRGdWxsc2NyZWVuKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkaWRFbnRlclBpUCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkRXhpdEZ1bGxz
Y3JlZW4pOwogCiAgICAgc2xlZXAoMV9zKTsgLy8gV2FpdCBmb3IgUElQQWdlbnQgdG8gbGF1bmNo
LCBvciBpdCB3b24ndCBjYWxsIC1waXBEaWRDbG9zZTogY2FsbGJhY2suCiAKICAgICBbd2ViVmll
dyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhpdC1waXAn
KS5jbGljaygpIiBjb21wbGV0aW9uSGFuZGxlcjogbmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRpZEV4aXRQaVApOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEV4
aXRQaVApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaW5kSW5QYWdlLm1tCShy
ZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0ZpbmRJblBhZ2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIEZp
bmRSZXN1bHQgZmluZE1hdGNoZXMoV0tXZWJWaWV3IAogICAgICAgICBkb25lID0gdHJ1ZTsKICAg
ICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtODgs
NyArODgsNyBAQCBzdGF0aWMgTlNVSW50ZWdlciByZXBsYWNlTWF0Y2hlcyhXS1dlYlZpCiAgICAg
ICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCkBAIC0xMTUsNyArMTE1LDcgQEAgVEVTVChXZWJLaXQsIEZpbmRJblBhZ2Up
CiAgICAgICAgIEVYUEVDVF9FUShpbWFnZS5zaXplLmhlaWdodCwgQ0dJbWFnZUdldEhlaWdodChD
R0ltYWdlKSAvIDIpOwogICAgICAgICBnZW5lcmF0ZVRleHRJbWFnZURvbmUgPSB0cnVlOwogICAg
IH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ2VuZXJhdGVUZXh0SW1hZ2VEb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChnZW5lcmF0ZVRleHRJbWFnZURvbmUpOwog
CiAgICAgLy8gRmluZCBvbmUgbWF0Y2gsIGRvaW5nIGFuIGluY3JlbWVudGFsIHNlYXJjaC4KICAg
ICByZXN1bHQgPSBmaW5kTWF0Y2hlcyh3ZWJWaWV3LmdldCgpLCBAIkJpcnRoZGF5Iiwgbm9GaW5k
T3B0aW9ucywgMSk7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0ZpeGVkTGF5b3V0U2l6ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0ZpeGVkTGF5b3V0U2l6ZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaXhlZExheW91dFNpemUubW0J
KHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgVEVTVChXZWJLaXQsIEZpeGVkTGF5b3V0
U2l6ZSkKICAgICAgICAgfV07CiAgICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmZpeGVkTGF5b3V0U2l6ZURvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZp
eGVkTGF5b3V0U2l6ZURvbmUpOwogCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
CkBAIC02Niw3ICs2Niw3IEBAIFRFU1QoV2ViS2l0LCBGaXhlZExheW91dFNpemUpCiAgICAgICAg
IGZpeGVkTGF5b3V0U2l6ZUFmdGVyTmF2aWdhdGlvbkRvbmUgPSB0cnVlOwogICAgIH1dOwogCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaXhlZExheW91dFNpemVBZnRlck5hdmlnYXRp
b25Eb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaXhlZExheW91dFNpemVBZnRl
ck5hdmlnYXRpb25Eb25lKTsKIAogICAgIFt3ZWJWaWV3IF9zZXRMYXlvdXRNb2RlOl9XS0xheW91
dE1vZGVWaWV3U2l6ZV07CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1l
bnQuYm9keS5jbGllbnRXaWR0aCIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJy
b3IgKmVycm9yKSB7CkBAIC03NCw3ICs3NCw3IEBAIFRFU1QoV2ViS2l0LCBGaXhlZExheW91dFNp
emUpCiAgICAgICAgIGZpeGVkTGF5b3V0U2l6ZURpc2FibGVkRG9uZSA9IHRydWU7CiAgICAgfV07
CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpeGVkTGF5b3V0U2l6ZURpc2FibGVk
RG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZml4ZWRMYXlvdXRTaXplRGlzYWJs
ZWREb25lKTsKIH0KIAogI2VuZGlmCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQkocmV2aXNp
b24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GdWxs
c2NyZWVuRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTk4LDE5ICs5OCwxOSBAQCBURVNU
KEZ1bGxzY3JlZW4sIERlbGVnYXRlKQogCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAiRnVsbHNjcmVlbkRlbGVnYXRlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZExv
YWRlZE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkTG9hZGVk
TWVzc2FnZSk7CiAKICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkg
bW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2lu
ZG93TnVtYmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTow
XTsKICAgICBbd2ViVmlldyBtb3VzZURvd246ZXZlbnRdOwogCiAgICAgQVNTRVJUX0ZBTFNFKFt3
ZWJWaWV3IF9pc0luRnVsbHNjcmVlbl0pOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
cmVjZWl2ZWRXaWxsRW50ZXJGdWxsc2NyZWVuTWVzc2FnZSk7Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWNlaXZlZERpZEVudGVyRnVsbHNjcmVlbk1lc3NhZ2UpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkV2lsbEVudGVyRnVsbHNjcmVlbk1lc3NhZ2UpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkRGlkRW50ZXJGdWxsc2NyZWVuTWVz
c2FnZSk7CiAKICAgICBBU1NFUlRfVFJVRShbd2ViVmlldyBfaXNJbkZ1bGxzY3JlZW5dKTsKICAg
ICBbd2ViVmlldyBtb3VzZURvd246ZXZlbnRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVjZWl2ZWRXaWxsRXhpdEZ1bGxzY3JlZW5NZXNzYWdlKTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJnJlY2VpdmVkRGlkRXhpdEZ1bGxzY3JlZW5NZXNzYWdlKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFdpbGxFeGl0RnVsbHNjcmVlbk1lc3NhZ2UpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkRGlkRXhpdEZ1bGxzY3JlZW5NZXNz
YWdlKTsKIAogICAgIEFTU0VSVF9GQUxTRShbd2ViVmlldyBfaXNJbkZ1bGxzY3JlZW5dKTsKIH0K
QEAgLTEzOCwxNSArMTM4LDE1IEBAIFRFU1QoRnVsbHNjcmVlbiwgV0tWaWV3RGVsZWdhdGUpCiAg
ICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9y
UmVzb3VyY2UoIkZ1bGxzY3JlZW5EZWxlZ2F0ZSIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRV
Ukwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJnJlY2VpdmVkTG9hZGVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwocmVjZWl2ZWRMb2FkZWRNZXNzYWdlKTsKIAogICAgIHdlYlZpZXcuc2ltdWxhdGVCdXR0b25D
bGljayhrV0tFdmVudE1vdXNlQnV0dG9uTGVmdEJ1dHRvbiwgNSwgNSwgMCk7Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFdpbGxFbnRlckZ1bGxzY3JlZW5NZXNzYWdlKTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkRGlkRW50ZXJGdWxsc2NyZWVu
TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRXaWxsRW50ZXJG
dWxsc2NyZWVuTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRE
aWRFbnRlckZ1bGxzY3JlZW5NZXNzYWdlKTsKIAogICAgIHdlYlZpZXcuc2ltdWxhdGVCdXR0b25D
bGljayhrV0tFdmVudE1vdXNlQnV0dG9uTGVmdEJ1dHRvbiwgNSwgNSwgMCk7Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFdpbGxFeGl0RnVsbHNjcmVlbk1lc3NhZ2UpOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWREaWRFeGl0RnVsbHNjcmVlbk1l
c3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkV2lsbEV4aXRGdWxs
c2NyZWVuTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWREaWRF
eGl0RnVsbHNjcmVlbk1lc3NhZ2UpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5M
YXlvdXRDb25zdHJhaW50cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5tbQkocmV2aXNpb24g
MjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GdWxsc2Ny
ZWVuTGF5b3V0Q29uc3RyYWludHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTczLDE5ICs3MywxOSBA
QCBURVNUKEZ1bGxzY3JlZW4sIExheW91dENvbnN0cmFpbnRzKQogICAgIAogICAgIE5TVVJMUmVx
dWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkZ1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cyIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRMb2FkZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChyZWNlaXZlZExvYWRlZE1lc3NhZ2UpOwogCiAgICAgTlNFdmVudCAqZXZl
bnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3du
IGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3
aW5kb3dOdW1iZXI6d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1i
ZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CiAgICAgW3dlYlZpZXcgbW91c2VEb3duOmV2
ZW50XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRGdWxsc2NyZWVu
Q2hhbmdlTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRGdWxs
c2NyZWVuQ2hhbmdlTWVzc2FnZSk7CiAgICAgCiAgICAgcmVjZWl2ZWRGdWxsc2NyZWVuQ2hhbmdl
TWVzc2FnZSA9IGZhbHNlOwogICAgIAogICAgIE5TRXZlbnQgKmV4aXRGU0V2ZW50ID0gW05TRXZl
bnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpO
U01ha2VQb2ludCg1LCA1KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVy
OndpbmRvdy5nZXQoKS53aW5kb3dOdW1iZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tD
b3VudDowIHByZXNzdXJlOjBdOwogICAgIFt3ZWJWaWV3IG1vdXNlRG93bjpleGl0RlNFdmVudF07
CiAgICAgCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZEZ1bGxzY3JlZW5D
aGFuZ2VNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZEZ1bGxz
Y3JlZW5DaGFuZ2VNZXNzYWdlKTsKIAogICAgIE5TQXJyYXkqIGZpbmFsQ29uc3RyYWludHMgPSBb
W3dpbmRvdyBjb250ZW50Vmlld10gY29uc3RyYWludHNdOwogICAgIEFTU0VSVF9UUlVFKFtvcmln
aW5hbENvbnN0cmFpbnRzIGlzRXF1YWw6ZmluYWxDb25zdHJhaW50c10pOwpJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GdWxsc2NyZWVuVG9wQ29udGVudEluc2V0
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GdWxsc2NyZWVuVG9wQ29udGVudEluc2V0
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC02OSwxOCArNjksMTggQEAgVEVTVChGdWxsc2NyZWVuLCBU
b3BDb250ZW50SW5zZXQpCiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJGdWxsc2NyZWVuVG9wQ29udGVudEluc2V0IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZExv
YWRlZE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkTG9hZGVk
TWVzc2FnZSk7CiAKICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNSwgNSkg
bW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3cuZ2V0KCkud2lu
ZG93TnVtYmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTow
XTsKICAgICBbd2ViVmlldyBtb3VzZURvd246ZXZlbnRdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWNlaXZlZEZ1bGxzY3JlZW5DaGFuZ2VNZXNzYWdlKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZEZ1bGxzY3JlZW5DaGFuZ2VNZXNzYWdlKTsKICAgICBB
U1NFUlRfRVEod2luZG93LmdldCgpLnNjcmVlbi5mcmFtZS5zaXplLndpZHRoLCB3ZWJWaWV3Lmdl
dCgpLmZyYW1lLnNpemUud2lkdGgpOwogICAgIEFTU0VSVF9FUSh3aW5kb3cuZ2V0KCkuc2NyZWVu
LmZyYW1lLnNpemUuaGVpZ2h0ICsgd2ViVmlldy5nZXQoKS5fdG9wQ29udGVudEluc2V0LCB3ZWJW
aWV3LmdldCgpLmZyYW1lLnNpemUuaGVpZ2h0KTsKIAogICAgIHJlY2VpdmVkRnVsbHNjcmVlbkNo
YW5nZU1lc3NhZ2UgPSBmYWxzZTsKICAgICBbd2ViVmlldyBtb3VzZURvd246ZXZlbnRdOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRGdWxsc2NyZWVuQ2hhbmdlTWVzc2Fn
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRGdWxsc2NyZWVuQ2hhbmdl
TWVzc2FnZSk7CiAgICAgQVNTRVJUX0VRKDEwLCB3ZWJWaWV3LmdldCgpLl90b3BDb250ZW50SW5z
ZXQpOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dl
b2xvY2F0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvR2VvbG9jYXRpb24ubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR2VvbG9jYXRpb24ubW0JKHdvcmtpbmcgY29weSkK
QEAgLTE2MCw3ICsxNjAsNyBAQCBURVNUKFdlYktpdCwgR2VvbG9jYXRpb25EZW5pZWRCeUxvY2F0
aW9uCiAgICAgaGFzUmVjZWl2ZWRBbGVydCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRUZXN0
UGFnZU5hbWVkOkAiR2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25SZXN1bHQiXTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaGFzUmVjZWl2ZWRBbGVydCk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoaGFzUmVjZWl2ZWRBbGVydCk7CiAKICAgICBFWFBFQ1RfV0tfU1RS
RVEodWlEZWxlZ2F0ZS5nZXQoKS5hbGVydE1lc3NhZ2UsICJFUlJPUjoxIik7CiAgICAgRVhQRUNU
X1RSVUUoY29yZUxvY2F0aW9uUHJvdmlkZXIuZ2V0KCkuYXV0aG9yaXphdGlvbldhc1JlcXVlc3Rl
ZCk7CkBAIC0xODQsNyArMTg0LDcgQEAgVEVTVChXZWJLaXQsIEdlb2xvY2F0aW9uRGVuaWVkQnlB
UEkpCiAgICAgaGFzUmVjZWl2ZWRBbGVydCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRUZXN0
UGFnZU5hbWVkOkAiR2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25SZXN1bHQiXTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaGFzUmVjZWl2ZWRBbGVydCk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoaGFzUmVjZWl2ZWRBbGVydCk7CiAKICAgICBFWFBFQ1RfV0tfU1RS
RVEodWlEZWxlZ2F0ZS5nZXQoKS5hbGVydE1lc3NhZ2UsICJFUlJPUjoxIik7CiAgICAgRVhQRUNU
X1RSVUUoY29yZUxvY2F0aW9uUHJvdmlkZXIuZ2V0KCkuYXV0aG9yaXphdGlvbldhc1JlcXVlc3Rl
ZCk7CkBAIC0yMDgsNyArMjA4LDcgQEAgVEVTVChXZWJLaXQsIEdlb2xvY2F0aW9uQWxsb3dlZEJ5
QVBJKQogICAgIGhhc1JlY2VpdmVkQWxlcnQgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkVGVz
dFBhZ2VOYW1lZDpAIkdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uUmVzdWx0Il07CiAKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmhhc1JlY2VpdmVkQWxlcnQpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGhhc1JlY2VpdmVkQWxlcnQpOwogCiAgICAgRVhQRUNUX1dLX1NU
UkVRKHVpRGVsZWdhdGUuZ2V0KCkuYWxlcnRNZXNzYWdlLCAiU1VDQ0VTUyIpOwogICAgIEVYUEVD
VF9UUlVFKGNvcmVMb2NhdGlvblByb3ZpZGVyLmdldCgpLmF1dGhvcml6YXRpb25XYXNSZXF1ZXN0
ZWQpOwpAQCAtMjMzLDcgKzIzMyw3IEBAIFRFU1QoV2ViS2l0LCBHZW9sb2NhdGlvbkVycm9yKQog
ICAgIGhhc1JlY2VpdmVkQWxlcnQgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VO
YW1lZDpAIkdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uUmVzdWx0Il07CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmhhc1JlY2VpdmVkQWxlcnQpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGhhc1JlY2VpdmVkQWxlcnQpOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKHVp
RGVsZWdhdGUuZ2V0KCkuYWxlcnRNZXNzYWdlLCAiRVJST1I6MiIpOwogICAgIEVYUEVDVF9UUlVF
KGNvcmVMb2NhdGlvblByb3ZpZGVyLmdldCgpLmF1dGhvcml6YXRpb25XYXNSZXF1ZXN0ZWQpOwpA
QCAtMjU4LDcgKzI1OCw3IEBAIFRFU1QoV2ViS2l0LCBEdXBsaWNhdGVHZW9sb2NhdGlvbkF1dGhv
cmkKICAgICBoYXNSZWNlaXZlZEFsZXJ0ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQ
YWdlTmFtZWQ6QCJHZW9sb2NhdGlvbkdldEN1cnJlbnRQb3NpdGlvblJlc3VsdCJdOwogCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZoYXNSZWNlaXZlZEFsZXJ0KTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChoYXNSZWNlaXZlZEFsZXJ0KTsKIAogICAgIEVYUEVDVF9XS19TVFJF
USh1aURlbGVnYXRlLmdldCgpLmFsZXJ0TWVzc2FnZSwgIlNVQ0NFU1MiKTsKICAgICBFWFBFQ1Rf
VFJVRShjb3JlTG9jYXRpb25Qcm92aWRlci5nZXQoKS5hdXRob3JpemF0aW9uV2FzUmVxdWVzdGVk
KTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR2V0RGlzcGxh
eU1lZGlhLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvR2V0RGlzcGxheU1lZGlhLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dldERpc3BsYXlNZWRpYS5tbQkod29ya2luZyBj
b3B5KQpAQCAtMTM4LDcgKzEzOCw3IEBAIHB1YmxpYzoKICAgICAgICAgTlNTdHJpbmcgKnNjcmlw
dCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAicHJvbXB0Rm9yQ2FwdHVyZSglQCkiLCBj
b25zdHJhaW50c107CiAgICAgICAgIFttX3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpzY3JpcHRdOwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2
ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2
ZWRTY3JpcHRNZXNzYWdlKTsKICAgICAgICAgaWYgKHNob3VsZFN1Y2NlZWQpIHsKICAgICAgICAg
ICAgIEVYUEVDVF9TVFJFUShbKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldIFVU
RjhTdHJpbmddLCAiYWxsb3dlZCIpOwogICAgICAgICAgICAgRVhQRUNUX1RSVUUoaGF2ZVN0cmVh
bSh0cnVlKSk7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dl
dFJlc291cmNlRGF0YS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0dldFJlc291cmNlRGF0YS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZXRSZXNvdXJjZURhdGEubW0JKHdv
cmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgVEVTVChXZWJLaXQsIEdldFBERlJlc291cmNl
RGF0YSkKICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0Rv
bmUpOwogfQogCiBURVNUKFdlYktpdCwgR2V0UERGUmVzb3VyY2VEYXRhSW5VbnBhcmVudGVkV2Vi
VmlldykKQEAgLTcwLDcgKzcwLDcgQEAgVEVTVChXZWJLaXQsIEdldFBERlJlc291cmNlRGF0YUlu
VW5wYXJlbgogICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlz
RG9uZSk7CiB9CiAKICNlbmRpZgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9JREJEZWxldGVSZWNvdmVyeS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lEQkRlbGV0ZVJlY292ZXJ5Lm1tCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lEQkRlbGV0
ZVJlY292ZXJ5Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBAIFRFU1QoSW5kZXhl
ZERCLCBEZWxldGVSZWNvdmVyeSkKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJJREJEZWxldGVSZWNvdmVyeSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlw
dE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVz
c2FnZSk7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJEZWxldGVkIGRhdGFiYXNlIiwgW2xhc3RT
Y3JpcHRNZXNzYWdlIGJvZHldKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvSURCSW5kZXhVcGdyYWRlVG9WMi5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lEQkluZGV4VXBncmFkZVRvVjIubW0JKHJl
dmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
SURCSW5kZXhVcGdyYWRlVG9WMi5tbQkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCBU
RVNUKEluZGV4ZWREQiwgSW5kZXhVcGdyYWRlVG9WMikKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVl
c3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJJREJJbmRleFVwZ3JhZGVUb1YyIiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShAIk9iamVjdCBleHBl
Y3RlZCB0byBiZSBhIGJsb2I6IFtvYmplY3QgQmxvYl0iLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9k
eV0pOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JY29u
TG9hZGluZ0RlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjQ1NTE2KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JY29uTG9hZGluZ0RlbGVn
YXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsOCArMTczLDggQEAgVEVTVChJY29uTG9hZGlu
ZywgRGVmYXVsdEZhdmljb24pCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Rpbmc6Ly8vbWFp
biJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZVdpdGhJY29ucyk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZpY29uRGVsZWdhdGUuZ2V0KCktPnJlY2VpdmVkRmF2aWNvbkRhdGFDYWxsYmFjayk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZVdpdGhJY29ucyk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoaWNvbkRlbGVnYXRlLmdldCgpLT5yZWNlaXZlZEZhdmljb25EYXRh
Q2FsbGJhY2spOwogCiAgICAgYXV0byogZmF2aWNvblBhcmFtZXRlcnMgPSBpY29uRGVsZWdhdGUu
Z2V0KCktPmZhdmljb24uZ2V0KCk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJ0ZXN0aW5nOi8vL2Zh
dmljb24uaWNvIiwgZmF2aWNvblBhcmFtZXRlcnMudXJsLmFic29sdXRlU3RyaW5nKTsKQEAgLTIx
Niw3ICsyMTYsNyBAQCBURVNUKEljb25Mb2FkaW5nLCBBbHJlYWR5Q2FjaGVkSWNvbikKICAgICBO
U1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAidGVzdGluZzovLy9tYWluIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpY29uRGVs
ZWdhdGUuZ2V0KCktPnJlY2VpdmVkRmF2aWNvbkRhdGFDYWxsYmFjayk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoaWNvbkRlbGVnYXRlLmdldCgpLT5yZWNlaXZlZEZhdmljb25EYXRhQ2Fs
bGJhY2spOwogCiAgICAgRVhQRUNUX1RSVUUoW2ljb25EYXRhRnJvbURpc2suZ2V0KCkgaXNFcXVh
bDppY29uRGVsZWdhdGUuZ2V0KCktPnJlY2VpdmVkRmF2aWNvbkRhdGEuZ2V0KCldKTsKIApAQCAt
MjI3LDcgKzIyNyw3IEBAIFRFU1QoSWNvbkxvYWRpbmcsIEFscmVhZHlDYWNoZWRJY29uKQogICAg
IHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAidGVzdGluZzovLy9tYWluMiJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaWNvbkRlbGVnYXRlLmdldCgp
LT5yZWNlaXZlZEZhdmljb25EYXRhQ2FsbGJhY2spOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGljb25EZWxlZ2F0ZS5nZXQoKS0+cmVjZWl2ZWRGYXZpY29uRGF0YUNhbGxiYWNrKTsKIAog
ICAgIEVYUEVDVF9UUlVFKFtpY29uRGF0YUZyb21EaXNrLmdldCgpIGlzRXF1YWw6aWNvbkRlbGVn
YXRlLmdldCgpLT5yZWNlaXZlZEZhdmljb25EYXRhLmdldCgpXSk7CiB9CkBAIC0yNDksMTUgKzI0
OSwxNSBAQCBURVNUKEljb25Mb2FkaW5nLCBJY29uTG9hZENhbmNlbGxlZENhbGxiCiAgICAgTlNV
UkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAInRlc3Rpbmc6Ly8vbWFpbiJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaGFuZGxlci5n
ZXQoKS0+cmVjZWl2ZWRGYXZpY29uVGFzayk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
aGFuZGxlci5nZXQoKS0+cmVjZWl2ZWRGYXZpY29uVGFzayk7CiAKICAgICAvLyBPdXIgc2NoZW1l
IGhhbmRsZXIgbmV2ZXIgcmVwbGllcyB0byB0aGUgZmF2aWNvbiB0YXNrLCBzbyBvdXIgaWNvbiBk
ZWxlZ2F0ZSBsb2FkIGNhbGxiYWNrIGlzIHN0aWxsIHBlbmRpbmcuCiAgICAgLy8gU3RvcCB0aGUg
ZG9jdW1lbnRsb2FkZXIncyBsb2FkaW5nIGFuZCB2ZXJpZnkgdGhlIGljb24gZGVsZWdhdGUgY2Fs
bGJhY2sgaXMgY2FsbGVkLgogICAgIFt3ZWJWaWV3IHN0b3BMb2FkaW5nXTsKIAogICAgIC8vIFdh
aXQgdW50aWwgdGhlIGRhdGEgY2FsbGJhY2sgaXMgY2FsbGVkLCAqYW5kKiB0aGUgdGFzayBpcyBz
dG9wcGVkCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZoYW5kbGVyLmdldCgpLT5mYXZp
Y29uVGFza1N0b3BwZWQpOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaWNvbkRlbGVn
YXRlLmdldCgpLT5yZWNlaXZlZEZhdmljb25EYXRhQ2FsbGJhY2spOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGhhbmRsZXIuZ2V0KCktPmZhdmljb25UYXNrU3RvcHBlZCk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoaWNvbkRlbGVnYXRlLmdldCgpLT5yZWNlaXZlZEZhdmljb25E
YXRhQ2FsbGJhY2spOwogCiAgICAgRVhQRUNUX0VRKGljb25EZWxlZ2F0ZS5nZXQoKS0+cmVjZWl2
ZWRGYXZpY29uRGF0YS5nZXQoKS5sZW5ndGgsICh1bnNpZ25lZCBsb25nKTApOwogfQpAQCAtMjc5
LDcgKzI3OSw3IEBAIFRFU1QoSWNvbkxvYWRpbmcsIEljb25Mb2FkQ2FuY2VsbGVkQ2FsbGIKICAg
ICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdGluZzovLy9tYWluIl1dOwogICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpY29u
RGVsZWdhdGUuZ2V0KCktPmRpZFNhdmVDYWxsYmFjayk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoaWNvbkRlbGVnYXRlLmdldCgpLT5kaWRTYXZlQ2FsbGJhY2spOwogCiAgICAgLy8gT3Vy
IHNjaGVtZSBoYW5kbGVyIG5ldmVyIHJlcGxpZXMgdG8gdGhlIGZhdmljb24gdGFzaywgc28gb3Vy
IGljb24gZGVsZWdhdGUgbG9hZCBjYWxsYmFjayBpcyBzdGlsbCBwZW5kaW5nLgogICAgIC8vIFN0
b3AgdGhlIGRvY3VtZW50bG9hZGVyJ3MgbG9hZGluZyBhbmQgdmVyaWZ5IHRoZSBpY29uIGRlbGVn
YXRlIGNhbGxiYWNrIGlzIGNhbGxlZC4KQEAgLTI5NSw1ICsyOTUsNSBAQCBURVNUKEljb25Mb2Fk
aW5nLCBJY29uTG9hZENhbmNlbGxlZENhbGxiCiAgICAgICAgICppY29uQ2FsbGJhY2tDYWxsZWQg
PSB0cnVlOwogICAgIH0pOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpY29uQ2Fs
bGJhY2tDYWxsZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGljb25DYWxsYmFja0Nh
bGxlZCk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lu
ZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLm1t
CShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0luZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW0JKHdvcmtpbmcgY29weSkKQEAgLTg5
LDcgKzg5LDcgQEAgVEVTVChJbmRleGVkREIsIERhdGFiYXNlUHJvY2Vzc0tpbGwpCiAgICAgICAg
ICAgICBicmVhazsKIAogICAgICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKLSAg
ICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwor
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwog
ICAgICAgICBpZiAoIWtpbGxlZERCUHJvY2VzcyAmJiBvcGVuUmVxdWVzdFVwZ3JhZGVOZWVkZWQp
IHsKICAgICAgICAgICAgIGtpbGxlZERCUHJvY2VzcyA9IHRydWU7CiAgICAgICAgICAgICBbY29u
ZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCBfdGVybWluYXRlTmV0d29ya1Byb2Nlc3NdOwpJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJGaWxl
TmFtZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0luZGV4ZWREQkZpbGVOYW1lLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQkZpbGVOYW1lLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoKQogICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogICAgIAogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2Fn
ZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UpOwogICAgIFJldGFpblB0cjxOU1N0cmluZz4gc3RyaW5nID0gKE5TU3RyaW5nICopW2xhc3RT
Y3JpcHRNZXNzYWdlIGJvZHldOwogICAgIEVYUEVDVF9XS19TVFJFUShAIlN1Y2Nlc3MiLCBzdHJp
bmcuZ2V0KCkpOwogCkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoKQogICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNz
YWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlw
dE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVz
c2FnZSk7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBzdHJpbmcyID0gKE5TU3RyaW5nICopW2xh
c3RTY3JpcHRNZXNzYWdlIGJvZHldOwogICAgIEVYUEVDVF9XS19TVFJFUShAIlN1Y2Nlc3MiLCBz
dHJpbmcyLmdldCgpKTsKIApAQCAtMTc5LDEzICsxNzksMTMgQEAgVEVTVChJbmRleGVkREIsIElu
ZGV4ZWREQkZpbGVOYW1lQVBJKQogICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOwogICAg
IH1dOwogICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChy
ZWFkeVRvQ29udGludWUpOwogCiAgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFT
dG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W05TU2V0IHNldFdpdGhPYmplY3RzOldLV2Vic2l0ZURh
dGFUeXBlSW5kZXhlZERCRGF0YWJhc2VzLCBuaWxdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0
YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgcmVhZHlUb0NvbnRpbnVl
ID0gdHJ1ZTsKICAgICB9XTsKICAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwocmVhZHlUb0NvbnRpbnVlKTsKICAgICAKICAgICBhdXRvIGRlZmF1bHRGaWxl
TWFuYWdlciA9IFtOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXTsKICAgICBOU1VSTCAqaWRi
Um9vdFVSTCA9IFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIF9pbmRleGVk
REJEYXRhYmFzZURpcmVjdG9yeV07CkBAIC0yMTEsNyArMjExLDcgQEAgVEVTVChJbmRleGVkREIs
IEluZGV4ZWREQkZpbGVIYXNoQ29sbGlzaQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOwogCiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgUmV0YWluUHRyPE5TU3Ry
aW5nPiBzdHJpbmcgPSAoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV07CiAgICAg
RVhQRUNUX1dLX1NUUkVRKEAiRXJyb3IiLCBzdHJpbmcuZ2V0KCkpOwogfQpJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJNdWx0aVByb2Nlc3MubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRl
eGVkREJNdWx0aVByb2Nlc3MubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCTXVsdGlQcm9jZXNzLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBXS1NjcmlwdE1lc3NhZ2UgKmdldE5leHRN
ZXNzYWdlKCkKIHsKICAgICBpZiAoc2NyaXB0TWVzc2FnZXMuaXNFbXB0eSgpKSB7CiAgICAgICAg
IHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIFtb
c2NyaXB0TWVzc2FnZXMudGFrZUZpcnN0KCkgcmV0YWluXSBhdXRvcmVsZWFzZV07CkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNl
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
SW5kZXhlZERCUGVyc2lzdGVuY2UubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCUGVyc2lzdGVuY2UubW0JKHdvcmtp
bmcgY29weSkKQEAgLTY0LDExICs2NCwxMSBAQCBURVNUKEluZGV4ZWREQiwgSW5kZXhlZERCUGVy
c2lzdGVuY2UpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiSW5kZXhl
ZERCUGVyc2lzdGVuY2UtMSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7
CiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAgICAgUmV0YWluUHRyPE5TU3Ry
aW5nPiBzdHJpbmcxID0gKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldOwogCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBzdHJp
bmcyID0gKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldOwogCkBAIC04NCw3ICs4
NCw3IEBAIFRFU1QoSW5kZXhlZERCLCBJbmRleGVkREJQZXJzaXN0ZW5jZSkKICAgICByZXF1ZXN0
ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAiSW5kZXhlZERCUGVyc2lzdGVuY2UtMiIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7
CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBzdHJpbmczID0gKE5TU3RyaW5nICopW2xhc3RTY3Jp
cHRNZXNzYWdlIGJvZHldOwogCkBAIC0xMDcsMTEgKzEwNywxMSBAQCBURVNUKEluZGV4ZWREQiwg
SW5kZXhlZERCUGVyc2lzdGVuY2VQcml2CiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAiSW5kZXhlZERCUGVyc2lzdGVuY2UtMSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVk
U2NyaXB0TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAgICAg
UmV0YWluUHRyPE5TU3RyaW5nPiBzdHJpbmcxID0gKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNz
YWdlIGJvZHldOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlw
dE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVz
c2FnZSk7CiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAgICAgUmV0YWluUHRy
PE5TU3RyaW5nPiBzdHJpbmcyID0gKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHld
OwogCkBAIC0xMjUsNyArMTI1LDcgQEAgVEVTVChJbmRleGVkREIsIEluZGV4ZWREQlBlcnNpc3Rl
bmNlUHJpdgogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJJbmRleGVkREJQZXJzaXN0ZW5jZS0y
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICByZWNlaXZlZFNj
cmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHN0cmluZzMgPSAo
TlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV07CiAKQEAgLTE0NSwxNCArMTQ1LDE0
IEBAIFRFU1QoSW5kZXhlZERCLCBJbmRleGVkREJEYXRhUmVtb3ZhbCkKICAgICBbW1dLV2Vic2l0
ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczp3ZWJzaXRlRGF0
YVR5cGVzLmdldCgpIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlv
bkhhbmRsZXI6XigpIHsKICAgICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKICAgICB9XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwocmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIHJlYWR5VG9Db250
aW51ZSA9IGZhbHNlOwogICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVd
IGZldGNoRGF0YVJlY29yZHNPZlR5cGVzOndlYnNpdGVEYXRhVHlwZXMuZ2V0KCkgY29tcGxldGlv
bkhhbmRsZXI6XihOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQgKj4gKmRhdGFSZWNvcmRzKSB7
CiAgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7CiAgICAgICAgIEFTU0VSVF9FUSgwdSwg
ZGF0YVJlY29yZHMuY291bnQpOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVhZHlUb0NvbnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRv
Q29udGludWUpOwogCiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAgICAgYXV0
byBoYW5kbGVyID0gYWRvcHROUyhbW0luZGV4ZWREQk1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0
XSk7CkBAIC0xNjEsNyArMTYxLDcgQEAgVEVTVChJbmRleGVkREIsIEluZGV4ZWREQkRhdGFSZW1v
dmFsKQogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uLmdldCgpXSk7CiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
SW5kZXhlZERCUGVyc2lzdGVuY2UtMSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UpOwogCiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CiAgICAgW1tXS1dlYnNpdGVEYXRh
U3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6d2Vic2l0ZURh
dGFUeXBlcy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TQXJyYXk8V0tXZWJzaXRlRGF0YVJl
Y29yZCAqPiAqZGF0YVJlY29yZHMpIHsKQEAgLTE3MCwxMiArMTcwLDEyIEBAIFRFU1QoSW5kZXhl
ZERCLCBJbmRleGVkREJEYXRhUmVtb3ZhbCkKICAgICAgICAgICAgIHJlYWR5VG9Db250aW51ZSA9
IHRydWU7CiAgICAgICAgIH1dOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVhZHlUb0NvbnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRv
Q29udGludWUpOwogCiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CiAgICAgW1tXS1dlYnNp
dGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6d2Vi
c2l0ZURhdGFUeXBlcy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TQXJyYXk8V0tXZWJzaXRl
RGF0YVJlY29yZCAqPiAqZGF0YVJlY29yZHMpIHsKICAgICAgICAgcmVhZHlUb0NvbnRpbnVlID0g
dHJ1ZTsKICAgICAgICAgQVNTRVJUX0VRKDB1LCBkYXRhUmVjb3Jkcy5jb3VudCk7CiAgICAgfV07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlYWR5VG9Db250aW51ZSk7CiB9CkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJh
Y2t3YXJkQ29tcGF0aWJpbGl0eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN0cnVjdHVyZWRDbG9uZUJhY2t3YXJkQ29tcGF0
aWJpbGl0eS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxp
dHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIFdLU2NyaXB0TWVz
c2FnZSAqZ2V0TmV4dE1lc3NhZ2UoKQogewogICAgIGlmIChzY3JpcHRNZXNzYWdlcy5pc0VtcHR5
KCkpIHsKICAgICAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7Ci0gICAgICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICAgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICB9CiAK
ICAgICByZXR1cm4gW1tzY3JpcHRNZXNzYWdlcy50YWtlRmlyc3QoKSByZXRhaW5dIGF1dG9yZWxl
YXNlXTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhl
ZERCU3VzcGVuZEltbWluZW50bHkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5kSW1taW5lbnRseS5tbQkocmV2aXNp
b24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRl
eGVkREJTdXNwZW5kSW1taW5lbnRseS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBA
QCAtICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2VyQ29uCiBzdGF0aWMgdm9pZCBy
dW5UZXN0QW5kQ2hlY2tSZXN1bHQoTlNTdHJpbmcqIGV4cGVjdGVkUmVzdWx0KQogewogICAgIHJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIFJldGFpblB0cjxOU1N0cmluZz4gc3RyaW5nID0g
KE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldOwogICAgIEVYUEVDVF9XS19TVFJF
UShleHBlY3RlZFJlc3VsdCwgc3RyaW5nLmdldCgpKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCVGVtcEZpbGVTaXplLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCVGVt
cEZpbGVTaXplLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0luZGV4ZWREQlRlbXBGaWxlU2l6ZS5tbQkod29ya2luZyBjb3B5KQpA
QCAtNzgsNyArNzgsNyBAQCBURVNUKEluZGV4ZWREQiwgSW5kZXhlZERCVGVtcEZpbGVTaXplKQog
ICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOwogICAgIH1dOwogICAgIHJlYWR5VG9Db250
aW51ZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRp
bnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRvQ29udGludWUpOwogCiAg
ICAgLy8gRG8gc29tZSBJbmRleGVkREIgb3BlcmF0aW9ucyB0byBnZW5lcmF0ZSBXQUwgZmlsZS4K
ICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKV0pOwpAQCAtODYsMTEgKzg2LDExIEBAIFRFU1QoSW5kZXhlZERCLCBJbmRleGVkREJU
ZW1wRmlsZVNpemUpCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKICAgICBy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHN0cmluZzEg
PSAoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV07CiAKICAgICByZWNlaXZlZFNj
cmlwdE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2Vp
dmVkU2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRT
Y3JpcHRNZXNzYWdlKTsKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHN0cmluZzIgPSAoTlNTdHJp
bmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV07CiAKICAgICAvLyBUZXJtaW5hdGUgbmV0d29y
ayBwcm9jZXNzIHRvIGtlZXAgV0FMIG9uIGRpc2suCkBAIC0xMDcsNyArMTA3LDcgQEAgVEVTVChJ
bmRleGVkREIsIEluZGV4ZWREQlRlbXBGaWxlU2l6ZSkKICAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKIAogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIFJldGFpblB0
cjxOU1N0cmluZz4gc3RyaW5nMyA9IChOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5
XTsKIAogICAgIGZpbGVBdHRyaWJ1dGVzID0gW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2Vy
XSBhdHRyaWJ1dGVzT2ZJdGVtQXRQYXRoOndhbEZpbGVQYXRoLmdldCgpLnBhdGggZXJyb3I6bmls
XTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERC
VXNlckRlbGV0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0luZGV4ZWREQlVzZXJEZWxldGUubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCVXNlckRlbGV0ZS5t
bQkod29ya2luZyBjb3B5KQpAQCAtNjcsMTQgKzY3LDE0IEBAIFRFU1QoSW5kZXhlZERCLCBJbmRl
eGVkREJVc2VyRGVsZXRlKQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCiAg
ICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBzdHJp
bmcgPSAoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV07CiAKICAgICBbY29uZmln
dXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOltOU1NldCBz
ZXRXaXRoT2JqZWN0czpXS1dlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlcywgbmlsXSBt
b2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7
CiAgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7CiAgICAgfV07CiAgICAgcmVhZHlUb0Nv
bnRpbnVlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29u
dGludWUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlYWR5VG9Db250aW51ZSk7CiAK
ICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJDb250aW51ZSIsIHN0cmluZy5nZXQoKSk7CiB9CkBAIC05
Myw1ICs5Myw1IEBAIFRFU1QoSW5kZXhlZERCLCBJbmRleGVkREJVc2VyRGVsZXRlQmVmb3IKICAg
ICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKICAgICB9XTsKICAgICByZWFkeVRvQ29udGlu
dWUgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVhZHlUb0NvbnRpbnVlKTsKIH0KSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSklURW5hYmxlZC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0pJVEVu
YWJsZWQubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvSklURW5hYmxlZC5tbQkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBA
QCBURVNUKFdlYktpdCwgSklURW5hYmxlZCkKICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsK
ICAgICAgICAgICAgIH1dOwogICAgICAgICB9XTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgfTsKIAogICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gYWRvcHROUyhbX1dL
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIG5ld10pOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9KYXZhU2NyaXB0RHVyaW5nTmF2aWdhdGlvbi5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0phdmFTY3JpcHRE
dXJpbmdOYXZpZ2F0aW9uLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0phdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC04Nyw4ICs4Nyw4IEBAIFRFU1QoV2ViS2l0LCBKYXZhU2NyaXB0RHVyaW5n
TmF2aWdhdGlvbikKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsK
IAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
Zmlyc3RVUkwuZ2V0KCldXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm5hdmlnYXRp
b25Db21wbGV0ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwobmF2aWdhdGlvbkNvbXBs
ZXRlKTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6c2Vjb25kVVJMLmdldCgpXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWNlaXZlZEJvdGhBbGVydHMpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVk
Qm90aEFsZXJ0cyk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0xvYWRBbHRlcm5hdGVIVE1MU3RyaW5nLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmcubW0JKHJl
dmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
TG9hZEFsdGVybmF0ZUhUTUxTdHJpbmcubW0JKHdvcmtpbmcgY29weSkKQEAgLTY4LDE1ICs2OCwx
NSBAQCBURVNUKFdLV2ViVmlldywgTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdGCiAgICAgW3dlYlZp
ZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmNvbnRyb2xsZXIuZ2V0KCldOwogCiAgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzp1bmxvYWRhYmxlVVJMXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
aXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAgIGlzRG9u
ZSA9IGZhbHNlOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpsb2FkYWJsZVVSTF1dXTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoaXNEb25lKTsKICAgICBpc0RvbmUgPSBmYWxzZTsKIAogICAgIFt3ZWJWaWV3IGdvQmFja107
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAgaXNEb25lID0gZmFsc2U7CiAKICAgICBXS0JhY2tG
b3J3YXJkTGlzdCAqbGlzdCA9IFt3ZWJWaWV3IGJhY2tGb3J3YXJkTGlzdF07CkBAIC05MCw3ICs5
MCw3IEBAIFRFU1QoV0tXZWJWaWV3LCBMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ0YKICAgICAgICAg
cmV0dXJuOwogCiAgICAgW3dlYlZpZXcgZ29Gb3J3YXJkXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsK
ICAgICBpc0RvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9FUSgoTlNVSW50ZWdlcikxLCBsaXN0
LmJhY2tMaXN0LmNvdW50KTsKQEAgLTExMyw3ICsxMTMsNyBAQCBURVNUKFdLV2ViVmlldywgTG9h
ZEFsdGVybmF0ZUhUTUxTdHJpbmdGCiAgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGFyZ2V0VVJMXV07CiAKICAgICAgICAgaXNEb25lID0g
ZmFsc2U7Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICAg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKICAgICAgICAgLy8gSW4gc3VjY2Vz
cywgd2Ugc2hvdWxkIG9ubHkgc3RhcnQgMiBwcm92aXNpb25hbCBsb2FkczogMSBmb3IgdGhlIHNl
Y29uZCBsb2FkUmVxdWVzdCwgYW5kIDEgZm9yIHRoZSBfbG9hZEFsdGVybmF0ZUhUTUxTdHJpbmcu
CiAgICAgICAgIC8vIFRoZSBzZWNvbmQgbG9hZFJlcXVlc3QgY2FuY2VscyB0aGUgZmlyc3Qgb25l
IGJlZm9yZSBpdHMgcHJvdmlzaW9uYWwgbG9hZCBzdGFydHMuCiAgICAgICAgIEVYUEVDVF9FUSgy
LCBwcm92aXNpb25hbExvYWRDb3VudCk7CkBAIC0xMzQsMTkgKzEzNCwxOSBAQCBURVNUKFdLV2Vi
VmlldywgTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdGCiAKICAgICBOU1VSTCAqaW52YWxpZFVSTCA9
IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20lM0MlM0UvIl07
CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpp
bnZhbGlkVVJMXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAgaXNEb25lID0gZmFsc2U7CiAK
ICAgICBbd2ViVmlldyByZWxvYWRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNE
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAgIGlzRG9uZSA9
IGZhbHNlOwogCiAgICAgW3dlYlZpZXcgcmVsb2FkRnJvbU9yaWdpbl07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlz
RG9uZSk7CiAgICAgaXNEb25lID0gZmFsc2U7CiAKICAgICBbd2ViVmlldyBfcmVsb2FkRXhwaXJl
ZE9ubHldOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAgIGlzRG9uZSA9IGZhbHNlOwogCiAgICAg
V0tCYWNrRm9yd2FyZExpc3QgKmxpc3QgPSBbd2ViVmlldyBiYWNrRm9yd2FyZExpc3RdOwpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkRmlsZVRoZW5SZWxv
YWQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Mb2FkRmlsZVRoZW5SZWxvYWQubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9hZEZpbGVUaGVuUmVsb2FkLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC02NSw1ICs2NSw1IEBAIFRFU1QoV0tXZWJWaWV3LCBMb2FkRmlsZVRoZW5SZWxv
YWQpCiAgICAgW3dlYlZpZXcgbG9hZEZpbGVVUkw6ZmlsZSBhbGxvd2luZ1JlYWRBY2Nlc3NUb1VS
TDpmaWxlLlVSTEJ5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF07CiAgICAgW3dlYlZpZXcgcmVs
b2FkXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0xvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvYWRJbnZhbGlkVVJMUmVxdWVz
dC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Mb2FkSW52YWxpZFVSTFJlcXVlc3QubW0JKHdvcmtpbmcgY29weSkKQEAgLTc1LDcg
Kzc1LDcgQEAgVEVTVChXZWJLaXQsIExvYWRJbnZhbGlkVVJMUmVxdWVzdCkKIAogICAgICAgICBk
aWRGaW5pc2hUZXN0ID0gZmFsc2U7CiAgICAgICAgIGRpZEZhaWxQcm92aXNpb25hbExvYWQgPSBm
YWxzZTsKLSAgICAgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hUZXN0KTsKKyAgICAgICAgcnVuVW50
aWwoZGlkRmluaXNoVGVzdCk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUoZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZCk7CiAgICAgfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Mb2NhbFN0b3JhZ2VDbGVhci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZUNsZWFyLm1tCShyZXZpc2lvbiAyNDU1
MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFn
ZUNsZWFyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIFRFU1QoV0tXZWJWaWV3
LCBMb2NhbFN0b3JhZ2VDbGVhcikKICAgICAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAiTG9jYWxTdG9yYWdlQ2xlYXIiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAgICAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWFkeVRvQ29udGludWUpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRv
Q29udGludWUpOwogICAgICAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKIAogICAgICAgICB3
ZWJWaWV3ID0gbmlsOwpAQCAtODgsNyArODgsNyBAQCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9y
YWdlQ2xlYXIpCiAgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7CiAgICAgfV07CiAKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwocmVhZHlUb0NvbnRpbnVlKTsKIH0KIAogc3RhdGljIGxvbmcgbG9u
ZyBmaWxlU2l6ZShOU1VSTCogdXJsKQpAQCAtMTM2LDcgKzEzNiw3IEBAIFRFU1QoV0tXZWJWaWV3
LCBDbGVhckFwcENhY2hlKQogICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3Rv
cmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFU
eXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxl
cjpeKCkgewogICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOwogICAgIH1dOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChyZWFkeVRvQ29udGludWUpOwogCiAgICAgLy8gU3RhcnQgd2l0aCBhIGNs
ZWFuIHNsYXRlIG9mIFdlYnNpdGUgY2FjaGVzLgogICAgIGlmIChhdXRvICp3ZWJzaXRlQ2FjaGVE
aXJlY3RvcnkgPSBkZWZhdWx0V2Vic2l0ZUNhY2hlRGlyZWN0b3J5KCkpIHsKQEAgLTE4OCw3ICsx
ODgsNyBAQCBURVNUKFdLV2ViVmlldywgQ2xlYXJBcHBDYWNoZSkKICAgICAgICAgb3JpZ2luYWxX
ZWJzaXRlRGF0YVJlY29yZENvdW50ID0gd2Vic2l0ZURhdGFSZWNvcmRzLmNvdW50OwogICAgICAg
ICByZWFkeVRvQ29udGludWUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChy
ZWFkeVRvQ29udGludWUpOwogCiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CiAgICAgW1tX
S1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dL
V2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0Rh
dGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKQpAQCAtMjA0LDUgKzIwNCw1IEBA
IFRFU1QoV0tXZWJWaWV3LCBDbGVhckFwcENhY2hlKQogICAgICAgICAgICAgcmVhZHlUb0NvbnRp
bnVlID0gdHJ1ZTsKICAgICAgICAgfV07CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJl
YWR5VG9Db250aW51ZSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJh
Y2tlci5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIubW0JKHdvcmtpbmcgY29weSkK
QEAgLTUxLDE0ICs1MSwxNCBAQCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlRmV0Y2hEYXRh
UmVjCiAgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0
YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmll
ZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAg
ICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KHJlYWR5VG9Db250aW51ZSk7CiAKICAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKICAgICBh
dXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgd2ViVmlldy5nZXQoKS5VSURlbGVnYXRlID0gW1tb
TG9jYWxTdG9yYWdlVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOwogICAgIFt3
ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPHNjcmlwdD5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndGVz
dEtleScsICd0ZXN0VmFsdWUnKTthbGVydChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGVzdEtleScp
KTs8L3NjcmlwdD4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vbG9jYWxo
b3N0Il1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRvQ29udGludWUpOwogCiAgICAgLy8g
TG9jYWwgc3RvcmFnZSBkYXRhYmFzZSB1cGRhdGUgaW50ZXJ2YWwgaXMgMSBzZWNvbmQuCiAgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMSk7CkBAIC03MSw1ICs3MSw1IEBAIFRFU1QoV0tX
ZWJWaWV3LCBMb2NhbFN0b3JhZ2VGZXRjaERhdGFSZWMKICAgICAgICAgQVNTRVJUX0VRKDF1LCBv
cmlnaW5zLmNvdW50KTsKICAgICAgICAgRVhQRUNUX1NUUkVRKCJodHRwOi8vbG9jYWxob3N0Iiwg
W29yaWdpbnMgb2JqZWN0QXRJbmRleDowXS5VVEY4U3RyaW5nKTsKICAgICB9XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwocmVhZHlUb0NvbnRpbnVlKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlTnVsbEVudHJpZXMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VO
dWxsRW50cmllcy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5tbQkod29ya2luZyBjb3B5
KQpAQCAtNzQsNyArNzQsNyBAQCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlTnVsbEVudHJp
ZXMpCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKICAgICByZWFkeVRvQ29u
dGludWUgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250
aW51ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVhZHlUb0NvbnRpbnVlKTsKIAog
ICAgIHdlYlZpZXcgPSBuaWw7CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5t
bQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjAsNyAr
NjAsNyBAQCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlRW1wdHlTdHJpbmcpCiAgICAgW1tX
S1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dL
V2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0Rh
dGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAgICAgIHJlYWR5VG9D
b250aW51ZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWFkeVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlYWR5VG9Db250
aW51ZSk7CiAKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICAgICAgICAgUmV0YWluUHRyPExvY2Fs
U3RvcmFnZU1lc3NhZ2VIYW5kbGVyPiBoYW5kbGVyID0gYWRvcHROUyhbW0xvY2FsU3RvcmFnZU1l
c3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CkBAIC03Myw3ICs3Myw3IEBAIFRFU1QoV0tXZWJW
aWV3LCBMb2NhbFN0b3JhZ2VFbXB0eVN0cmluZykKICAgICAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAibG9jYWxzdG9yYWdlLWVtcHR5LXN0cmluZy12YWx1ZSIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1d
OwogICAgICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKICAgICAKLSAgICAgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgICAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgICAg
ICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICAgICAgUmV0YWluUHRyPE5TU3Ry
aW5nPiBzdHJpbmcxID0gKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldOwogICAg
ICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJzZXRJdGVtIEVtcHR5U3RyaW5nIiwgc3RyaW5nMS5nZXQo
KSk7CkBAIC05Niw3ICs5Niw3IEBAIFRFU1QoV0tXZWJWaWV3LCBMb2NhbFN0b3JhZ2VFbXB0eVN0
cmluZykKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJsb2NhbHN0b3Jh
Z2UtZW1wdHktc3RyaW5nLXZhbHVlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
cmVxdWVzdF07CiAgICAgCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNj
cmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0
TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAgICAgUmV0YWlu
UHRyPE5TU3RyaW5nPiBzdHJpbmcyID0gKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJv
ZHldOwogICAgIEVYUEVDVF9XS19TVFJFUShAIiIsIHN0cmluZzIuZ2V0KCkpOwpJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VRdWlya1Rlc3Qu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9M
b2NhbFN0b3JhZ2VRdWlya1Rlc3QubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUXVpcmtUZXN0Lm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBAIFRFU1QoV0tXZWJWaWV3LCBMb2NhbFN0b3JhZ2VR
dWlya0VuYWJsZWQKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAogICAgIHJl
YWR5VG9Db250aW51ZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVh
ZHlUb0NvbnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRvQ29udGlu
dWUpOwogCiAgICAgd2ViVmlldyA9IG5pbDsKIApAQCAtOTAsNyArOTAsNyBAQCBURVNUKFdLV2Vi
VmlldywgTG9jYWxTdG9yYWdlUXVpcmtEaXNhYmxlCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
cmVxdWVzdF07CiAgICAgCiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKHJlYWR5VG9Db250aW51ZSk7CiAgICAgCiAgICAgd2ViVmlldyA9IG5pbDsKICAg
ICAKQEAgLTExMyw3ICsxMTMsNyBAQCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlUXVpcmtE
aXNhYmxlCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAgICAgCiAgICAgcmVh
ZHlUb0NvbnRpbnVlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFk
eVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlYWR5VG9Db250aW51
ZSk7CiAgICAgCiAgICAgd2ViVmlldyA9IG5pbDsKICAgICAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTWVkaWFCdWZmZXJpbmdQb2xpY3kubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9NZWRpYUJ1ZmZlcmlu
Z1BvbGljeS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9NZWRpYUJ1ZmZlcmluZ1BvbGljeS5tbQkod29ya2luZyBjb3B5KQpAQCAt
NjEsNyArNjEsNyBAQCBURVNUKFdlYktpdCwgTWVkaWFCdWZmZXJpbmdQb2xpY3kpCiAgICAgW3dl
YlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBsYXlpbmciIGFjdGlvbjpeKCkg
eyBpc1BsYXlpbmcgPSB0cnVlOyB9XTsKIAogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2Fk
VGVzdFBhZ2VOYW1lZDpAInZpZGVvLXdpdGgtYXVkaW8iXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmlzUGxheWluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNQbGF5
aW5nKTsKIAogICAgIHdhaXRVbnRpbEJ1ZmZlcmluZ1BvbGljeUlzRXF1YWxUbyh3ZWJWaWV3Lmdl
dCgpLCAiRGVmYXVsdCIpOwogCkBAIC05Miw3ICs5Miw3IEBAIFRFU1QoV2ViS2l0LCBNZWRpYUJ1
ZmZlcmluZ1BvbGljeSkKICAgICAvLyBQb2xpY3kgc2hvdWxkIGdvIGJhY2sgdG8gZGVmYXVsdCB3
aGVuIHBsYXliYWNrIHN0YXJ0cy4KICAgICBpc1BsYXlpbmcgPSBmYWxzZTsKICAgICBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ28oKSJdOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNQbGF5aW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChp
c1BsYXlpbmcpOwogCiAgICAgd2FpdFVudGlsQnVmZmVyaW5nUG9saWN5SXNFcXVhbFRvKHdlYlZp
ZXcuZ2V0KCksICJEZWZhdWx0Iik7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL01lc3NhZ2VQb3J0UHJvdmlkZXJzLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTWVzc2FnZVBvcnRQcm92aWRlcnMubW0J
KHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvTWVzc2FnZVBvcnRQcm92aWRlcnMubW0JKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcg
QEAgVEVTVChNZXNzYWdlUG9ydCwgUHJvdmlkZXJzKQogICAgIFt3azFWaWV3LmdldCgpIHNldEZy
YW1lTG9hZERlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbW3drMVZpZXcgbWFpbkZyYW1l
XSBsb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+bmV3IE1lc3NhZ2VDaGFubmVsOzwvc2NyaXB0PiIg
YmFzZVVSTDpuaWxdOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5V
bnRpbChkaWRGaW5pc2hMb2FkKTsKIAogICAgIC8vIE5vdyB1c2luZyBhIFdLV2ViVmlldyB0byBs
b2FkIGNvbnRlbnQgdGhhdCB1c2VzIG1lc3NhZ2UgcG9ydHMgd2lsbCB1c2UgdGhlIFdLMi1zdHls
ZSBtZXNzYWdlIHBvcnRzLgogICAgIC8vIFRoaXMgc2hvdWxkIG5vdCBjb25mbGljdCB3aXRoIFdL
MS1zdHlsZSBtZXNzYWdlIHBvcnRzLgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Nb2RhbEFsZXJ0cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL01vZGFsQWxlcnRzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL01vZGFsQWxlcnRzLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzksNSArMTM5LDUgQEAgVEVTVChXZWJLaXQsIE1vZGFsQWxlcnRz
KQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIm1vZGFsLWFsZXJ0cy1p
bi1uZXctYWJvdXQtYmxhbmstd2luZG93IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbi5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRpb24ubW0JKHJldmlz
aW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2
aWdhdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBAQCBURVNUKFdLTmF2aWdh
dGlvbiwgTG9hZFJlcXVlc3QpCiAgICAgQVNTRVJUX1RSVUUoW1tjdXJyZW50TmF2aWdhdGlvbiBf
cmVxdWVzdF0gaXNFcXVhbDpyZXF1ZXN0XSk7CiAKICAgICBpc0RvbmUgPSBmYWxzZTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoaXNEb25lKTsKIH0KIAogQGludGVyZmFjZSBEaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0
aW9uRGVsZWdhdGUgOiBOU09iamVjdCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+CkBAIC0xNDAsNyAr
MTQwLDcgQEAgVEVTVChXS05hdmlnYXRpb24sIERpZEZhaWxQcm92aXNpb25hbE5hdgogICAgIEFT
U0VSVF9UUlVFKFtbY3VycmVudE5hdmlnYXRpb24gX3JlcXVlc3RdIGlzRXF1YWw6cmVxdWVzdF0p
OwogCiAgICAgaXNEb25lID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZp
c0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKIEBpbnRl
cmZhY2UgQ3Jhc2hSZWFzb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0
ZT4KQEAgLTE2Niw3ICsxNjYsNyBAQCBURVNUKFdLTmF2aWdhdGlvbiwgQ3Jhc2hSZWFzb24pCiAg
ICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aHRtbD5zdGFydCB0aGUgd2ViIHByb2Nlc3M8
L2h0bWw+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93ZWJraXQub3Jn
LyJdXTsKICAgICBbd2ViVmlldyBfa2lsbFdlYkNvbnRlbnRQcm9jZXNzQW5kUmVzZXRTdGF0ZV07
CiAgICAgCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKIEBpbnRlcmZhY2UgRGVjaWRlUG9saWN5
Rm9yUGFnZUNhY2hlTmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRl
bGVnYXRlPgpAQCAtMjAxLDE3ICsyMDEsMTcgQEAgVEVTVChXS05hdmlnYXRpb24sIERlY2lkZVBv
bGljeUZvclBhZ2VDYQogCiAgICAgaXNEb25lID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICByZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImRhdGE6dGV4
dC9odG1sLDIiXV07CiAKICAgICBpc0RvbmUgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgIGlzRG9uZSA9IGZhbHNl
OwogICAgIFt3ZWJWaWV3IGdvQmFja107Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZp
c0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBBU1NF
UlRfVFJVRShbZGVsZWdhdGUgZGVjaWRlZFBvbGljeUZvckJhY2tGb3J3YXJkTmF2aWdhdGlvbl0p
OwogfQpAQCAtMjQ5LDcgKzI0OSw3IEBAIFRFU1QoV0tOYXZpZ2F0aW9uLCBOYXZpZ2F0aW9uQWN0
aW9uSGFzTmEKIAogICAgIGlzRG9uZSA9IGZhbHNlOwogICAgIGRlbGVnYXRlLT5uYXZpZ2F0aW9u
ID0gW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9
CiAKIEBpbnRlcmZhY2UgQ2xpZW50UmVkaXJlY3ROYXZpZ2F0aW9uRGVsZWdhdGUgOiBOU09iamVj
dDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+CkBAIC0yODQsNyArMjg0LDcgQEAgVEVTVChX
S05hdmlnYXRpb24sIFdlYlZpZXdXaWxsUGVyZm9ybUNsaQogICAgIHJlZGlyZWN0VVJMID0gbmls
OwogICAgIHJlZGlyZWN0RGVsYXkgPSAwOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAgQVNTRVJUX0RPVUJMRV9FUShyZWRpcmVj
dERlbGF5LCAxMjMpOwogICAgIEFTU0VSVF9TVFJFUShyZWRpcmVjdFVSTC5nZXQoKS5hYnNvbHV0
ZVN0cmluZy5VVEY4U3RyaW5nLCAiZGF0YTp0ZXh0L2h0bWwsUGFnZTEiKTsKQEAgLTI5NCw3ICsy
OTQsNyBAQCBURVNUKFdLTmF2aWdhdGlvbiwgV2ViVmlld1dpbGxQZXJmb3JtQ2xpCiAgICAgcmVk
aXJlY3RVUkwgPSBuaWw7CiAgICAgcmVkaXJlY3REZWxheSA9IE5TVGltZUludGVydmFsU2luY2Ux
OTcwOyAvLyBVc2UgYW55IG5vbi16ZXJvIHZhbHVlLCB3ZSB3aWxsIHRlc3QgdGhhdCB0aGUgZGVs
ZWdhdGUgcmVjZWl2ZXMgYSBkZWxheSBvZiAwLgogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJl
cXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAgQVNTRVJUX0RPVUJMRV9FUShyZWRp
cmVjdERlbGF5LCAwKTsKICAgICBBU1NFUlRfU1RSRVEocmVkaXJlY3RVUkwuZ2V0KCkuYWJzb2x1
dGVTdHJpbmcuVVRGOFN0cmluZywgImRhdGE6dGV4dC9odG1sLFBhZ2UyIik7CkBAIC0zMTQsNyAr
MzE0LDcgQEAgVEVTVChXS05hdmlnYXRpb24sIFdlYlZpZXdEaWRDYW5jZWxDbGllbgogICAgIGlz
RG9uZSA9IGZhbHNlOwogICAgIGRpZENhbmNlbFJlZGlyZWN0ID0gZmFsc2U7CiAgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZp
c0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBBU1NF
UlRfRkFMU0UoZGlkQ2FuY2VsUmVkaXJlY3QpOwogCkBAIC0zMjUsMTIgKzMyNSwxMiBAQCBURVNU
KFdLTmF2aWdhdGlvbiwgV2ViVmlld0RpZENhbmNlbENsaWVuCiAgICAgaXNEb25lID0gZmFsc2U7
CiAgICAgZGlkQ2FuY2VsUmVkaXJlY3QgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgIEFTU0VSVF9GQUxTRShkaWRD
YW5jZWxSZWRpcmVjdCk7CiAKICAgICBpc0RvbmUgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25l
KTsKIAogICAgIEFTU0VSVF9UUlVFKGRpZENhbmNlbFJlZGlyZWN0KTsKIApAQCAtMzQyLDE0ICsz
NDIsMTQgQEAgVEVTVChXS05hdmlnYXRpb24sIFdlYlZpZXdEaWRDYW5jZWxDbGllbgogICAgIGlz
RG9uZSA9IGZhbHNlOwogICAgIGRpZENhbmNlbFJlZGlyZWN0ID0gZmFsc2U7CiAgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZp
c0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBBU1NF
UlRfRkFMU0UoZGlkQ2FuY2VsUmVkaXJlY3QpOwogCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJkYXRhOnRleHQvaHRtbCxQ
YWdlNCJdXTsKICAgICBpc0RvbmUgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpy
ZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgIEFTU0VSVF9UUlVFKGRpZENhbmNl
bFJlZGlyZWN0KTsKIH0KQEAgLTM4MiwxMiArMzgyLDEyIEBAIFRFU1QoV0tOYXZpZ2F0aW9uLCBX
aWxsR29Ub0JhY2tGb3J3YXJkTGkKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0JhY2tG
b3J3YXJkRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9u
RGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm5h
dmlnYXRpb25Db21wbGV0ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwobmF2aWdhdGlv
bkNvbXBsZXRlKTsKICAgICBuYXZpZ2F0aW9uQ29tcGxldGUgPSBmYWxzZTsKICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUyIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmbmF2aWdhdGlvbkNvbXBsZXRlKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChuYXZpZ2F0aW9uQ29tcGxldGUpOwogICAgIFt3ZWJWaWV3IGdvQmFja107Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKIFJldGFpblB0cjxXS0JhY2tGb3J3YXJkTGlzdEl0ZW0+
IGZpcnN0SXRlbTsKQEAgLTQzOCwxMSArNDM4LDExIEBAIFRFU1QoV0tOYXZpZ2F0aW9uLCBMaXN0
SXRlbUFkZGVkUmVtb3ZlZCkKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0xpc3RJdGVt
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdh
dGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
InNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm5hdmlnYXRp
b25Db21wbGV0ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwobmF2aWdhdGlvbkNvbXBs
ZXRlKTsKICAgICBuYXZpZ2F0aW9uQ29tcGxldGUgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUyIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmbmF2aWdhdGlvbkNvbXBsZXRlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChuYXZpZ2F0aW9uQ29tcGxldGUpOwogICAgIFtbd2ViVmlldyBiYWNrRm9yd2FyZExpc3Rd
IF9yZW1vdmVBbGxJdGVtc107Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAjZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9O
YXZpZ2F0aW9uQWN0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbkFjdGlvbi5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uQWN0aW9uLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC02MywxMyArNjMsMTMgQEAgLSAodm9pZCl3YWl0Rm9yTmF2aWdh
dGlvbkFjdGlvbkNhbGxiYWNrCiB7CiAgICAgX25hdmlnYXRpb25BY3Rpb24gPSBudWxscHRyOwog
ICAgIF9oYXNSZWNlaXZlZE5hdmlnYXRpb25DYWxsYmFjayA9IGZhbHNlOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmX2hhc1JlY2VpdmVkTmF2aWdhdGlvbkNhbGxiYWNrKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChfaGFzUmVjZWl2ZWROYXZpZ2F0aW9uQ2FsbGJhY2spOwog
fQogCiAtICh2b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uCiB7CiAgICAgX2hhc0Zpbmlz
aGVkTmF2aWdhdGlvbiA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmX2hh
c0ZpbmlzaGVkTmF2aWdhdGlvbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoX2hhc0Zp
bmlzaGVkTmF2aWdhdGlvbik7CiB9CiAKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24g
KiluYXZpZ2F0aW9uQWN0aW9uIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9u
QWN0aW9uUG9saWN5KSlkZWNpc2lvbkhhbmRsZXIKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvTmV0d29ya1Byb2Nlc3NDcmFzaE5vblBlcnNpc3RlbnREYXRhU3Rv
cmUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9OZXR3b3JrUHJvY2Vzc0NyYXNoTm9uUGVyc2lzdGVudERhdGFTdG9yZS5tbQkocmV2aXNpb24g
MjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OZXR3b3Jr
UHJvY2Vzc0NyYXNoTm9uUGVyc2lzdGVudERhdGFTdG9yZS5tbQkod29ya2luZyBjb3B5KQpAQCAt
NjcsMTAgKzY3LDEwIEBAIFRFU1QoV2ViS2l0LCBOZXR3b3JrUHJvY2Vzc0NyYXNoTm9uUGVyc2kK
ICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCiAg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpzaW1w
bGVdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFtbd2ViVmll
dyBjb25maWd1cmF0aW9uXS5wcm9jZXNzUG9vbCBfdGVybWluYXRlTmV0d29ya1Byb2Nlc3NdOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6c2lt
cGxlMl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL05vd1BsYXlpbmcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Ob3dQbGF5aW5nLm1tCShyZXZpc2lvbiAyNDU1MTYp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05vd1BsYXlpbmcubW0J
KHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIFJldGFpblB0cjxNUk5vd1Bs
YXlpbmdDbGllbnRSZWY+IAogICAgICAgICAgICAgbm93UGxheWluZ0NsaWVudCA9IHBsYXllcjsK
ICAgICAgICAgZ290Tm93UGxheWluZyA9IHRydWU7CiAgICAgfSk7Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZnb3ROb3dQbGF5aW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChnb3ROb3dQbGF5aW5nKTsKICAgICByZXR1cm4gbm93UGxheWluZ0NsaWVudDsKIH0KIApAQCAt
MTE3LDE0ICsxMTcsMTQgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgYm9vbCBjb21wbGV0ZSA9
IGZhbHNlOwogICAgICAgICBbX3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OnNjcmlwdCBjb21w
bGV0aW9uSGFuZGxlcjpbJl0gKGlkLCBOU0Vycm9yICopIHsgY29tcGxldGUgPSB0cnVlOyB9XTsK
LSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjb21wbGV0ZSk7CisgICAgICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGNvbXBsZXRlKTsKICAgICB9CiAKICAgICB2b2lkIHJ1blNj
cmlwdFdpdGhvdXRVc2VyR2VzdHVyZShjb25zdCBTdHJpbmcmIHNjcmlwdCkKICAgICB7CiAgICAg
ICAgIGJvb2wgY29tcGxldGUgPSBmYWxzZTsKICAgICAgICAgW193ZWJWaWV3IF9ldmFsdWF0ZUph
dmFTY3JpcHRXaXRob3V0VXNlckdlc3R1cmU6c2NyaXB0IGNvbXBsZXRpb25IYW5kbGVyOlsmXSAo
aWQsIE5TRXJyb3IgKikgeyBjb21wbGV0ZSA9IHRydWU7IH1dOwotICAgICAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmNvbXBsZXRlKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoY29tcGxldGUpOwogICAgIH0KIAogICAgIHZvaWQgZXhlY3V0ZUFuZFdhaXRGb3JQbGF5aW5n
KEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKQEAgLTEzMiw3ICsxMzIsNyBAQCBwdWJsaWM6
CiAgICAgICAgIGJvb2wgaXNQbGF5aW5nID0gZmFsc2U7CiAgICAgICAgIFtfd2ViVmlldyBwZXJm
b3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAicGxheWluZyIgYWN0aW9uOlsmXSB7IGlzUGxheWlu
ZyA9IHRydWU7IH1dOwogICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmlzUGxheWluZyk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGlzUGxheWluZyk7CiAgICAgfQogCiAgICAgdm9pZCBleGVjdXRlQW5kV2FpdEZvcldlYlZpZXdU
b0JlY29tZU5vd1BsYXlpbmcoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQpAQCAtMTQ2LDcg
KzE0Niw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9KTsK
ICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZi
ZWNhbWVOb3dQbGF5aW5nKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoYmVjYW1l
Tm93UGxheWluZyk7CiAgICAgfQogCiBwcml2YXRlOgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Ob3dQbGF5aW5nQ29udHJvbHNUZXN0cy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05vd1BsYXlpbmdDb250
cm9sc1Rlc3RzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL05vd1BsYXlpbmdDb250cm9sc1Rlc3RzLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC02NCw3ICs2NCw3IEBAIC0gKEJPT0wpaGFzQWN0aXZlTm93UGxheWluZ1Nlc3Npb24KIAog
ICAgIFtzZWxmIF9yZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvOmNvbXBsZXRpb25I
YW5kbGVyXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmX3JlY2VpdmVkTm93UGxh
eWluZ0luZm9SZXNwb25zZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoX3JlY2VpdmVk
Tm93UGxheWluZ0luZm9SZXNwb25zZSk7CiAKICAgICByZXR1cm4gX2hhc0FjdGl2ZU5vd1BsYXlp
bmdTZXNzaW9uOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9PYnNlcnZlZFJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzQWZ0ZXJDcmFzaC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL09ic2VydmVkUmVuZGVy
aW5nUHJvZ3Jlc3NFdmVudHNBZnRlckNyYXNoLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL09ic2VydmVkUmVuZGVyaW5nUHJvZ3Jl
c3NFdmVudHNBZnRlckNyYXNoLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIFRF
U1QoV2ViS2l0LCBPYnNlcnZlZFJlbmRlcmluZ1Byb2dyZXNzRXYKICAgICBbd2ViVmlldyBfc2V0
T2JzZXJ2ZWRSZW5kZXJpbmdQcm9ncmVzc0V2ZW50czpfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50
Rmlyc3RQYWludEFmdGVyU3VwcHJlc3NlZEluY3JlbWVudGFsUmVuZGVyaW5nXTsKICAgICBbd2Vi
VmlldyBfa2lsbFdlYkNvbnRlbnRQcm9jZXNzQW5kUmVzZXRTdGF0ZV07CiAgICAgW3dlYlZpZXcg
bG9hZEhUTUxTdHJpbmc6QCJjb250ZW50IiBiYXNlVVJMOm5pbF07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
IH0KIAogI2VuZGlmCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L09wZW5BbmRDbG9zZVdpbmRvdy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL09wZW5BbmRDbG9zZVdpbmRvdy5tbQkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9PcGVuQW5kQ2xvc2VX
aW5kb3cubW0JKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcgQEAgVEVTVChXZWJLaXQsIE9w
ZW5BbmRDbG9zZVdpbmRvdykKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJvcGVuLWFuZC1jbG9zZS13aW5kb3ciIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rv
cnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogfQogCiBAaW50ZXJmYWNlIE9wZW5B
bmRDbG9zZVdpbmRvd1VJRGVsZWdhdGVBc3luYyA6IE9wZW5BbmRDbG9zZVdpbmRvd1VJRGVsZWdh
dGUKQEAgLTE1Miw3ICsxNTIsNyBAQCBURVNUKFdlYktpdCwgT3BlbkFuZENsb3NlV2luZG93QXN5
bmMpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAib3Blbi1hbmQtY2xv
c2Utd2luZG93IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoaXNEb25lKTsKIH0KIAogVEVTVChXZWJLaXQsIE9wZW5Bc3luY1dpdGhOaWwp
CkBAIC0xNzEsNyArMTcxLDcgQEAgVEVTVChXZWJLaXQsIE9wZW5Bc3luY1dpdGhOaWwpCiAgICAg
TlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAib3Blbi1hbmQtY2xvc2Utd2luZG93
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoaXNEb25lKTsKIH0KIAogLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3MTA4MyAtIFRyeSB0byBmaWd1cmUgb3V0IHdoeSB0aGlzIGZhaWxzIGZvciBzb21lIGNv
bmZpZ3MgYnV0IG5vdCBvdGhlcnMsIGFuZCByZXNvbHZlLgpAQCAtMTkwLDcgKzE5MCw3IEBAIFRF
U1QoV2ViS2l0LCBPcGVuQXN5bmNXaXRoTmlsKQogLy8gICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0
ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAib3Blbi1hbmQtY2xvc2Utd2luZG93IiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAvLyAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIC8vCi0vLyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmlzRG9uZSk7CisvLyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwog
Ly8KIC8vICAgIGJvb2wgY2F1Z2h0RXhjZXB0aW9uID0gZmFsc2U7CiAvLyAgICBAdHJ5IHsKQEAg
LTIzOCw3ICsyMzgsNyBAQCBURVNUKFdlYktpdCwgT3BlbldpbmRvd0ZlYXR1cmVzKQogICAgIE5T
U3RyaW5nICp3aW5kb3dPcGVuRm9ybWF0U3RyaW5nID0gQCJ3aW5kb3cub3BlbihcImFib3V0OmJs
YW5rXCIsIFwiX2JsYW5rXCIsIFwiJUBcIikiOwogCiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZh
U2NyaXB0OkAid2luZG93Lm9wZW4oXCJhYm91dDpibGFua1wiKSIgY29tcGxldGlvbkhhbmRsZXI6
bmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKICAgICBpc0RvbmUgPSBmYWxzZTsKIAogLy8gIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQyNzEgLSBXZWJDb3JlIGN1
cnJlbnRseSBkb2Vzbid0IGRpc3Rpbmd1aXNoIGJldHdlZW4gdW5zcGVjaWZpZWQgKG5pbCkgYW5k
IGZhbHNlCkBAIC0yNTUsNyArMjU1LDcgQEAgVEVTVChXZWJLaXQsIE9wZW5XaW5kb3dGZWF0dXJl
cykKIAogICAgIE5TU3RyaW5nICpmZWF0dXJlc1N0cmluZ0FsbFNwZWNpZmllZEFuZFRydWUgPSBA
Im1lbnViYXI9eWVzLHN0YXR1cz15ZXMsdG9vbGJhcj15ZXMscmVzaXphYmxlPXllcyxsb2NhdGlv
bj15ZXMsc2Nyb2xsYmFycz15ZXMsZnVsbHNjcmVlbj15ZXMiOwogICAgIFt3ZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdDpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDp3aW5kb3dPcGVuRm9ybWF0
U3RyaW5nLCBmZWF0dXJlc1N0cmluZ0FsbFNwZWNpZmllZEFuZFRydWVdIGNvbXBsZXRpb25IYW5k
bGVyOm5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAgaXNEb25lID0gZmFsc2U7CiAKICAg
ICBFWFBFQ1RfVFJVRShbb3BlbldpbmRvd0ZlYXR1cmVzIG1lbnVCYXJWaXNpYmlsaXR5XS5ib29s
VmFsdWUpOwpAQCAtMjY5LDcgKzI2OSw3IEBAIFRFU1QoV2ViS2l0LCBPcGVuV2luZG93RmVhdHVy
ZXMpCiAKICAgICBOU1N0cmluZyAqZmVhdHVyZXNTdHJpbmdBbGxTcGVjaWZpZWRBbmRGYWxzZSA9
IEAibWVudWJhcj1ubyxzdGF0dXM9bm8sdG9vbGJhcj1ubyxyZXNpemFibGU9bm8sbG9jYXRpb249
bm8sc2Nyb2xsYmFycz1ubyxmdWxsc2NyZWVuPW5vIjsKICAgICBbd2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHQ6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6d2luZG93T3BlbkZvcm1hdFN0cmlu
ZywgZmVhdHVyZXNTdHJpbmdBbGxTcGVjaWZpZWRBbmRGYWxzZV0gY29tcGxldGlvbkhhbmRsZXI6
bmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKICAgICBpc0RvbmUgPSBmYWxzZTsKIAogICAgIEVY
UEVDVF9GQUxTRShbb3BlbldpbmRvd0ZlYXR1cmVzIG1lbnVCYXJWaXNpYmlsaXR5XS5ib29sVmFs
dWUpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QYXJzZXJZ
aWVsZFRva2VuVGVzdHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9QYXJzZXJZaWVsZFRva2VuVGVzdHMubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGFyc2VyWWllbGRUb2tl
blRlc3RzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyB2b2lkIHdh
aXRGb3JEZWxheShTZWNvbmRzIGRlbGF5KQogICAgIGRpc3BhdGNoX2FmdGVyKGRpc3BhdGNoX3Rp
bWUoRElTUEFUQ0hfVElNRV9OT1csIGRlbGF5Lm5hbm9zZWNvbmRzKCkpLCBkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpLCBeewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9KTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogfQogCiBURVNUKFBhcnNlcllpZWxkVG9rZW5UZXN0cywgUHJldmVudERvY3VtZW50
TG9hZEJ5VGFraW5nUGFyc2VyWWllbGRUb2tlbikKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUGFzdGVJbWFnZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Bhc3RlSW1hZ2UubW0JKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGFzdGVJbWFnZS5t
bQkod29ya2luZyBjb3B5KQpAQCAtNjUsOCArNjUsOCBAQCAtICh2b2lkKXdhaXRGb3JNZXNzYWdl
OihOU1N0cmluZyAqKW1lc3NhCiAgICAgW3NlbGYgZXZhbHVhdGVKYXZhU2NyaXB0OnNjcmlwdCBj
b21wbGV0aW9uSGFuZGxlcjpeKGlkLCBOU0Vycm9yICopIHsKICAgICAgICAgZXZhbHVhdGVkU2Ny
aXB0ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmV2YWx1
YXRlZFNjcmlwdCk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZE1lc3Nh
Z2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGV2YWx1YXRlZFNjcmlwdCk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRNZXNzYWdlKTsKIH0KIAogQGVuZApJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJl
RGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9QaWN0dXJlSW5QaWN0dXJlRGVsZWdhdGUubW0JKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGljdHVyZUluUGljdHVyZURl
bGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyB2b2lkIHdh
aXRVbnRpbE9uTG9hZElzQ29tcGxldGVkKFcKICAgICB3aGlsZSAoIW9uTG9hZENvbXBsZXRlZCkg
ewogICAgICAgICBmZXRjaE9uTG9hZGVkQ29tcGxldGVkRG9uZSA9IGZhbHNlOwogICAgICAgICBX
S1BhZ2VSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWUocGFnZSwgVGVzdFdlYktpdEFQSTo6VXRpbDo6
dG9XSygid2luZG93Lm9ubG9hZGNvbXBsZXRlZCAhPT0gdW5kZWZpbmVkIikuZ2V0KCksIDAsIG9u
TG9hZGVkQ29tcGxldGVkQ2FsbGJhY2spOwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmZldGNoT25Mb2FkZWRDb21wbGV0ZWREb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZmV0Y2hPbkxvYWRlZENvbXBsZXRlZERvbmUpOwogICAgIH0KIH0KIApAQCAtMTMz
LDcgKzEzMyw3IEBAIFRFU1QoUGljdHVyZUluUGljdHVyZSwgV0tVSURlbGVnYXRlKQogICAgIHJl
Y2VpdmVkTG9hZGVkTWVzc2FnZSA9IGZhbHNlOwogICAgIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRMb2Fk
ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZExvYWRlZE1l
c3NhZ2UpOwogCiAgICAgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVWYWx1ZSA9IGZhbHNlOwog
ICAgIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlQ2FsbGVkID0gZmFsc2U7CkBAIC0xNDksNyAr
MTQ5LDcgQEAgVEVTVChQaWN0dXJlSW5QaWN0dXJlLCBXS1VJRGVsZWdhdGUpCiAgICAgW3dlYlZp
ZXcgbW91c2VEb3duOmV2ZW50XTsKICNlbmRpZgogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZUNhbGxlZCk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVDYWxsZWQpOwogICAgIEFTU0VS
VF9UUlVFKGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlVmFsdWUpOwogCiAgICAgLy8gV2FpdCBm
b3IgUElQQWdlbnQgdG8gbGF1bmNoLCBvciBpdCB3b24ndCBjYWxsIC1waXBEaWRDbG9zZTogY2Fs
bGJhY2suCkBAIC0xNjgsNyArMTY4LDcgQEAgVEVTVChQaWN0dXJlSW5QaWN0dXJlLCBXS1VJRGVs
ZWdhdGUpCiAgICAgW3dlYlZpZXcgbW91c2VEb3duOmV2ZW50XTsKICNlbmRpZgogCi0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZUNhbGxlZCk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVD
YWxsZWQpOwogICAgIEFTU0VSVF9GQUxTRShoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZVZhbHVl
KTsKIH0KIApAQCAtMjI4LDIwICsyMjgsMjAgQEAgVEVTVChQaWN0dXJlSW5QaWN0dXJlLCBXS1Bh
Z2VVSUNsaWVudCkKICAgICByZWNlaXZlZExvYWRlZE1lc3NhZ2UgPSBmYWxzZTsKICAgICBXS1Jl
dGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJj
ZSgiUGljdHVyZUluUGljdHVyZURlbGVnYXRlIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVS
TCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkTG9hZGVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
cmVjZWl2ZWRMb2FkZWRNZXNzYWdlKTsKICAgICB3YWl0VW50aWxPbkxvYWRJc0NvbXBsZXRlZCh3
ZWJWaWV3LnBhZ2UoKSk7CiAgICAgCiAgICAgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVWYWx1
ZSA9IGZhbHNlOwogICAgIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlQ2FsbGVkID0gZmFsc2U7
CiAgICAgd2ViVmlldy5zaW11bGF0ZUJ1dHRvbkNsaWNrKGtXS0V2ZW50TW91c2VCdXR0b25MZWZ0
QnV0dG9uLCA1LCA1LCAwKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmhhc1ZpZGVv
SW5QaWN0dXJlSW5QaWN0dXJlQ2FsbGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbCho
YXNWaWRlb0luUGljdHVyZUluUGljdHVyZUNhbGxlZCk7CiAgICAgQVNTRVJUX1RSVUUoaGFzVmlk
ZW9JblBpY3R1cmVJblBpY3R1cmVWYWx1ZSk7CiAgICAgCiAgICAgc2xlZXAoMV9zKTsgLy8gV2Fp
dCBmb3IgUElQQWdlbnQgdG8gbGF1bmNoLCBvciBpdCB3b24ndCBjYWxsIC1waXBEaWRDbG9zZTog
Y2FsbGJhY2suCiAgICAgCiAgICAgaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVDYWxsZWQgPSBm
YWxzZTsKICAgICB3ZWJWaWV3LnNpbXVsYXRlQnV0dG9uQ2xpY2soa1dLRXZlbnRNb3VzZUJ1dHRv
bkxlZnRCdXR0b24sIDUsIDUsIDApOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaGFz
VmlkZW9JblBpY3R1cmVJblBpY3R1cmVDYWxsZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlQ2FsbGVkKTsKICAgICBBU1NFUlRfRkFMU0Uo
aGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVWYWx1ZSk7CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGx1Z2luTG9hZENsaWVudFBvbGljaWVzLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGx1Z2lu
TG9hZENsaWVudFBvbGljaWVzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1BsdWdpbkxvYWRDbGllbnRQb2xpY2llcy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTI0LDcgKzEyNCw3IEBAIFRFU1QoV2ViS2l0LCBQbHVnaW5Mb2FkQ2xp
ZW50UG9saWNpZXNXaXQKICAgICB9XTsKICAgICBbd2ViVmlldy5wbGF0Zm9ybVZpZXcoKS5icm93
c2luZ0NvbnRleHRDb250cm9sbGVyIGxvYWRIVE1MU3RyaW5nOkAiPGh0bWw+PGJvZHk+PHNjcmlw
dD5uYXZpZ2F0b3IucGx1Z2lucy5sZW5ndGg7PC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4iIGJhc2VV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJdXTsKIAotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbCh0ZXN0RmluaXNoZWQpOwogfQogCiAjZW5kaWYgLy8gV0tfSEFWRV9DX1NQSQpJbmRleDog
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVmZXJlbmNlcy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZWZlcmVu
Y2VzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1ByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05OSw3ICs5OSw3IEBA
IFRFU1QoV2ViS2l0LCBXZWJHTEVuYWJsZWQpCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVs
ZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpu
aWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRBbGVydCk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRBbGVydCk7CiAgICAgRVhQRUNUX1NUUkVR
KFtkZWxlZ2F0ZSBhbGVydF0uVVRGOFN0cmluZywgImVuYWJsZWQiKTsKIAogICAgIHJlY2VpdmVk
QWxlcnQgPSBmYWxzZTsKQEAgLTEwOCw3ICsxMDgsNyBAQCBURVNUKFdlYktpdCwgV2ViR0xFbmFi
bGVkKQogICAgIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKV0pOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwog
ICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpuaWxdOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRBbGVydCk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwocmVjZWl2ZWRBbGVydCk7CiAgICAgRVhQRUNUX1NUUkVRKFtkZWxlZ2F0ZSBhbGVy
dF0uVVRGOFN0cmluZywgImRpc2FibGVkIik7CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlZmVycmVkQXVkaW9CdWZmZXJTaXplLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlZmVycmVkQXVk
aW9CdWZmZXJTaXplLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1ByZWZlcnJlZEF1ZGlvQnVmZmVyU2l6ZS5tbQkod29ya2luZyBj
b3B5KQpAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgICAgIF9fYmxvY2sgYm9vbCBpc1Bs
YXlpbmcgPSBmYWxzZTsKICAgICAgICAgW3dlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVz
c2FnZTpAInBsYXlpbmciIGFjdGlvbjpeKCkgeyBpc1BsYXlpbmcgPSB0cnVlOyB9XTsKICAgICAg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOm5hbWVdOwotICAgICAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzUGxheWluZyk7CisgICAgICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGlzUGxheWluZyk7CiAgICAgICAgIEVYUEVDVF9FUShleHBlY3RlZEF1
ZGlvQnVmZmVyU2l6ZSwgcHJlZmVycmVkQXVkaW9CdWZmZXJTaXplKCkpOwogICAgIH0KIApJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVwYXJlRm9yTW92ZVRv
V2luZG93Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVwYXJlRm9yTW92ZVRvV2luZG93
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIFRFU1QoV0tXZWJWaWV3LCBQcmVw
YXJlRm9yTW92ZVRvV2luZG93KQogICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgIH1dOwogCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKIApAQCAtNzMsNyArNzMsNyBAQCBURVNUKFdLV2ViVmll
dywgUHJlcGFyZUZvck1vdmVUb1dpbmRvd1RoCiAKICAgICBbd2ViVmlldyBfY2xvc2VdOwogCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKICNlbmRpZgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3VzcGVuZE1lZGlhQnVmZmVyaW5nLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N1
c3BlbmRNZWRpYUJ1ZmZlcmluZy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3VzcGVuZE1lZGlhQnVmZmVyaW5nLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIFRFU1QoV2ViS2l0LCBQcm9jZXNzU3Vz
cGVuZE1lZGlhQnVmZmVyaW4KIAogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBh
Z2VOYW1lZDpAInZpZGVvLXdpdGgtYXVkaW8iXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmaXNQbGF5aW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc1BsYXlpbmcp
OwogCiAgICAgYXV0byBpc0VsZW1lbnRBbGxvd2VkVG9CdWZmZXIgPSBbJl0gewogICAgICAgICBy
ZXR1cm4gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5pbnRl
cm5hbHMuZWxlbWVudFNob3VsZEJ1ZmZlckRhdGEoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigndmlk
ZW8nKSkiXS5ib29sVmFsdWU7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0J
KHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTUxNyw3ICs1
MTcsNyBAQCBzdGF0aWMgdm9pZCBydW5CYXNpY1Rlc3QoU2NoZW1lSGFuZGxlclNoCiAgICAgTlNV
UkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIl1dOwogICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50
aWZpZXJdOwpAQCAtNTI1LDcgKzUyNSw3IEBAIHN0YXRpYyB2b2lkIHJ1bkJhc2ljVGVzdChTY2hl
bWVIYW5kbGVyU2gKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIl1d
OwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdOwpAQCAtNTMzLDcgKzUzMyw3IEBAIHN0YXRpYyB2b2lkIHJ1bkJhc2ljVGVz
dChTY2hlbWVIYW5kbGVyU2gKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4yLmh0
bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMyA9IFt3ZWJWaWV3IF93ZWJQ
cm9jZXNzSWRlbnRpZmllcl07CkBAIC01NzIsNyArNTcyLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwg
TG9hZEFmdGVyUG9saWN5RGVjaXNpbwogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3
LndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgbmF2aWdh
dGlvbkRlbGVnYXRlLT5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gXihXS05hdmln
YXRpb25BY3Rpb24gKiwgdm9pZCAoXmRlY2lzaW9uSGFuZGxlcikoV0tOYXZpZ2F0aW9uQWN0aW9u
UG9saWN5KSkgewpAQCAtNjExLDcgKzYxMSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEtpbGxXZWJD
b250ZW50UHJvY2Vzc0EKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQu
b3JnL21haW4xLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIF9fYmxvY2sgQk9PTCBp
c1JlZGlyZWN0aW9uID0gTk87CkBAIC02MzAsMTMgKzYzMCwxMyBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBLaWxsV2ViQ29udGVudFByb2Nlc3NBCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcv
bWFpbjIuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6c3BpblJ1bkxvb3AoMTApOwogICAgIFt3ZWJWaWV3IHJlbG9hZF07CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIH0KIApAQCAtNjU3LDcgKzY1Nyw3IEBAIFRFU1QoUHJv
Y2Vzc1N3YXAsIE5vU3dhcHBpbmdGb3JlVExEUGx1czIKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVl
c3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
cHNvbjovL3d3dzEud2Via2l0Lm9yZy9tYWluMS5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtNjY1
LDcgKzY2NSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5vU3dhcHBpbmdGb3JlVExEUGx1czIKICAg
ICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInBzb246Ly93d3cyLndlYmtpdC5vcmcvbWFpbjIuaHRtbCJdXTsKICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZh
bHNlOwogCiAgICAgYXV0byBwaWQyID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsK
QEAgLTcwMCw5ICs3MDAsOSBAQCBURVNUKFByb2Nlc3NTd2FwLCBCYWNrKQogICAgIE5TVVJMUmVx
dWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVk
TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHdlYmtpdFBJRCA9IFt3ZWJWaWV3IF93ZWJQ
cm9jZXNzSWRlbnRpZmllcl07CkBAIC03MTAsNyArNzEwLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwg
QmFjaykKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCiAgICAgYXV0byBhcHBsZVBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRl
bnRpZmllcl07CkBAIC03MTksNyArNzE5LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQmFjaykKICAg
ICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInBzb246Ly93d3cuZ29vZ2xlLmNvbS9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxz
ZTsKIAogICAgIGF1dG8gZ29vZ2xlUElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XTsKQEAgLTcyOCw3ICs3MjgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBCYWNrKQogICAgIHJlcXVl
c3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
cHNvbjovL3d3dy5iaW5nLmNvbS9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAg
IGF1dG8gYmluZ1BJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC03MzYs
OSArNzM2LDkgQEAgVEVTVChQcm9jZXNzU3dhcCwgQmFjaykKIAogICAgIFt3ZWJWaWV3IGdvQmFj
a107IC8vIEJhY2sgdG8gZ29vZ2xlLmNvbS4KIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZl
ZE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWRBZnRlckZpcnN0QmFja05hdmlnYXRp
b24gPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtNzQ2LDkgKzc0Niw5IEBA
IFRFU1QoUHJvY2Vzc1N3YXAsIEJhY2spCiAKICAgICBbd2ViVmlldyBnb0JhY2tdOyAvLyBCYWNr
IHRvIGFwcGxlLmNvbS4KIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRN
ZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwog
ICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogCiAgICAgYXV0byBwaWRBZnRlclNlY29uZEJhY2tOYXZpZ2F0aW9uID0gW3dlYlZp
ZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTgwMCw3ICs4MDAsNyBAQCBURVNUKFByb2Nl
c3NTd2FwLCBIaXN0b3J5TmF2aWdhdGlvblRvRnJhCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0
ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBz
b246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAg
IGF1dG8gd2Via2l0UElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTgw
OCwxOSArODA4LDE5IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEhpc3RvcnlOYXZpZ2F0aW9uVG9GcmEK
ICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCNmb28iXV07CiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAogICAgIGF1dG8gYXBwbGVQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50
aWZpZXJdOwogCiAgICAgW3dlYlZpZXcgZ29CYWNrXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRv
bmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9FUSh3ZWJraXRQSUQsIFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl0pOwogCiAgICAgW3dlYlZpZXcgZ29Gb3J3YXJkXTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9FUShhcHBsZVBJRCwgW3dlYlZp
ZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CkBAIC04MzEsNyArODMxLDcgQEAgVEVTVChQcm9j
ZXNzU3dhcCwgSGlzdG9yeU5hdmlnYXRpb25Ub0ZyYQogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEo
QCJURVNUIiwgaW5uZXJUZXh0KTsKICAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gdHJ1
ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVubmlu
Z1NjcmlwdCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWRSdW5uaW5nU2Ny
aXB0KTsKIH0KIAogVEVTVChQcm9jZXNzU3dhcCwgU3VzcGVuZGVkUGFnZURpZXNBZnRlckJhY2tG
b3J3YXJkTGlzdEl0ZW1Jc0dvbmUpCkBAIC04NTMsNyArODUzLDcgQEAgVEVTVChQcm9jZXNzU3dh
cCwgU3VzcGVuZGVkUGFnZURpZXNBZnRlcgogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJl
cXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRv
IHdlYmtpdFBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC04NjEsNyAr
ODYxLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU3VzcGVuZGVkUGFnZURpZXNBZnRlcgogICAgIHJl
cXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICBhdXRvIGFwcGxlUElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAg
LTg3MSw3ICs4NzEsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBTdXNwZW5kZWRQYWdlRGllc0FmdGVy
CiAgICAgRVhQRUNUX0VRKDJVLCBbcHJvY2Vzc1Bvb2wgX3dlYlByb2Nlc3NDb3VudElnbm9yaW5n
UHJld2FybWVkQW5kQ2FjaGVkXSk7CiAKICAgICBbd2ViVmlldyBnb0JhY2tdOyAvLyBCYWNrIHRv
IHdlYmtpdC5vcmcuCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBF
WFBFQ1RfRVEod2Via2l0UElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKQEAg
LTg4Miw3ICs4ODIsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBTdXNwZW5kZWRQYWdlRGllc0FmdGVy
CiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCJdXTsKICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogCiAgICAgRVhQRUNUX0VRKHdlYmtpdFBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXSk7CkBAIC05MTUsNyArOTE1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU3VzcGVu
ZGVkUGFnZXNJbkFjdGl2aQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtp
dC5vcmcvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHdlYmtpdFBJ
RCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC05MjQsMTMgKzkyNCwxMyBA
QCBURVNUKFByb2Nlc3NTd2FwLCBTdXNwZW5kZWRQYWdlc0luQWN0aXZpCiAgICAgICAgIEVYUEVD
VF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZyIsIGFjdGl2ZURvbWFpbnNbMF0pOwog
ICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5nb29nbGUuY29tL21haW4uaHRtbCJdXTsK
ICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBnb29nbGVQSUQgPSBbd2ViVmlldyBfd2ViUHJv
Y2Vzc0lkZW50aWZpZXJdOwpAQCAtOTQxLDcgKzk0MSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFN1
c3BlbmRlZFBhZ2VzSW5BY3RpdmkKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3
dy5nb29nbGUuY29tIiwgYWN0aXZlRG9tYWluc1swXSk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwog
ICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgW3Byb2Nl
c3NQb29sIF9nZXRBY3RpdmVQYWdlc09yaWdpbnNJbldlYlByb2Nlc3NGb3JUZXN0aW5nOndlYmtp
dFBJRCBjb21wbGV0aW9uSGFuZGxlcjpeKE5TQXJyYXk8TlNTdHJpbmcgKj4gKmFjdGl2ZURvbWFp
bnMpIHsKQEAgLTk0OSwxNCArOTQ5LDE0IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFN1c3BlbmRlZFBh
Z2VzSW5BY3RpdmkKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQu
b3JnIiwgYWN0aXZlRG9tYWluc1swXSk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgW3dlYlZpZXcgZ29CYWNr
XTsgLy8gQmFjayB0byB3ZWJraXQub3JnLgogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVk
TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZEFmdGVyQmFja05hdmlnYXRpb24gPSBb
d2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtOTY3LDcgKzk2Nyw3IEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIFN1c3BlbmRlZFBhZ2VzSW5BY3RpdmkKICAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKEAicHNvbjovL3d3dy5nb29nbGUuY29tIiwgYWN0aXZlRG9tYWluc1swXSk7CiAgICAgICAg
IGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNl
OwogCiAgICAgW3Byb2Nlc3NQb29sIF9nZXRBY3RpdmVQYWdlc09yaWdpbnNJbldlYlByb2Nlc3NG
b3JUZXN0aW5nOndlYmtpdFBJRCBjb21wbGV0aW9uSGFuZGxlcjpeKE5TQXJyYXk8TlNTdHJpbmcg
Kj4gKmFjdGl2ZURvbWFpbnMpIHsKQEAgLTk3NSw3ICs5NzUsNyBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBTdXNwZW5kZWRQYWdlc0luQWN0aXZpCiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246
Ly93d3cud2Via2l0Lm9yZyIsIGFjdGl2ZURvbWFpbnNbMF0pOwogICAgICAgICBkb25lID0gdHJ1
ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIH0KIApAQCAt
MTAwMiw5ICsxMDAyLDkgQEAgVEVTVChQcm9jZXNzU3dhcCwgQmFja1dpdGhvdXRTdXNwZW5kZWRQ
YQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1s
Il1dOwogICAgIFt3ZWJWaWV3MSBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQxID0gW3dl
YlZpZXcxIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0xMDIwLDE2ICsxMDIwLDE2IEBAIFRF
U1QoUHJvY2Vzc1N3YXAsIEJhY2tXaXRob3V0U3VzcGVuZGVkUGEKICAgICByZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93
d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldzIgbG9hZFJlcXVlc3Q6cmVx
dWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8g
cGlkMiA9IFt3ZWJWaWV3MiBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogCiAgICAgW3dlYlZpZXcy
IGdvQmFja107CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2Fn
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRNZXNzYWdlKTsKICAgICBy
ZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxz
ZTsKIAogICAgIGF1dG8gcGlkMyA9IFt3ZWJWaWV3MiBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpA
QCAtMTA1NSw3ICsxMDU1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQmFja05hdmlnYXRpb25BZnRl
clNlcwogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5o
dG1sIl1dOwogICAgIFt3ZWJWaWV3MSBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQxID0gW3dlYlZpZXcxIF93
ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0xMDYzLDcgKzEwNjMsNyBAQCBURVNUKFByb2Nlc3NT
d2FwLCBCYWNrTmF2aWdhdGlvbkFmdGVyU2VzCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNv
bS9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcxIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDIgPSBbd2Vi
VmlldzEgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTEwNzcsMTQgKzEwNzcsMTQgQEAgVEVT
VChQcm9jZXNzU3dhcCwgQmFja05hdmlnYXRpb25BZnRlclNlcwogICAgIFt3ZWJWaWV3MiBzZXRO
YXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCiAgICAgW3dlYlZpZXcyIF9yZXN0
b3JlU2Vzc2lvblN0YXRlOnNlc3Npb25TdGF0ZS5nZXQoKSBhbmROYXZpZ2F0ZTpZRVNdOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAi
cHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgW1t3ZWJWaWV3MiBVUkxdIGFic29sdXRl
U3RyaW5nXSk7CiAgICAgYXV0byBwaWQzID0gW3dlYlZpZXcyIF93ZWJQcm9jZXNzSWRlbnRpZmll
cl07CiAKICAgICBbd2ViVmlldzIgZ29CYWNrXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluLmh0bWwiLCBbW3dlYlZpZXcyIFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKQEAgLTExMTUsMTMg
KzExMTUsMTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlV2luZG93T3Blbk5vTwogICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENyZWF0
ZVdlYlZpZXcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZENyZWF0ZVdlYlZpZXcp
OwogICAgIGRpZENyZWF0ZVdlYlZpZXcgPSBmYWxzZTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAg
ICBFWFBFQ1RfRVEoMiwgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyk7CiAKQEAgLTExNTQsMTMg
KzExNTQsMTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NPcmlnaW5CdXRTYW1lU2l0ZQogICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENyZWF0
ZVdlYlZpZXcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZENyZWF0ZVdlYlZpZXcp
OwogICAgIGRpZENyZWF0ZVdlYlZpZXcgPSBmYWxzZTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAg
ICBFWFBFQ1RfRVEoMiwgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyk7CiAKQEAgLTExOTQsMTMg
KzExOTQsMTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlV2luZG93T3BlbldpdAogICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENyZWF0
ZVdlYlZpZXcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZENyZWF0ZVdlYlZpZXcp
OwogICAgIGRpZENyZWF0ZVdlYlZpZXcgPSBmYWxzZTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAg
ICBFWFBFQ1RfRVEoMiwgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyk7CiAKQEAgLTEyMzIsMTMg
KzEyMzIsMTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVXaW5kb3dPcGVuTm9PcAogICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENyZWF0
ZVdlYlZpZXcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZENyZWF0ZVdlYlZpZXcp
OwogICAgIGRpZENyZWF0ZVdlYlZpZXcgPSBmYWxzZTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAg
ICBFWFBFQ1RfRVEoMiwgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyk7CiAKQEAgLTEyNzEsMTMg
KzEyNzEsMTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtUYXJnZXRXaQogICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENyZWF0
ZVdlYlZpZXcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZENyZWF0ZVdlYlZpZXcp
OwogICAgIGRpZENyZWF0ZVdlYlZpZXcgPSBmYWxzZTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAg
ICBFWFBFQ1RfRVEoMywgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyk7CiAKQEAgLTEzMTAsMTMg
KzEzMTAsMTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtUYXJnZXRJbQogICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENyZWF0
ZVdlYlZpZXcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZENyZWF0ZVdlYlZpZXcp
OwogICAgIGRpZENyZWF0ZVdlYlZpZXcgPSBmYWxzZTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAg
ICBFWFBFQ1RfRVEoMywgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyk7CiAKQEAgLTEzNDksMTMg
KzEzNDksMTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlQmxhbmtUYXJnZXRObwogICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENyZWF0
ZVdlYlZpZXcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZENyZWF0ZVdlYlZpZXcp
OwogICAgIGRpZENyZWF0ZVdlYlZpZXcgPSBmYWxzZTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAg
ICBFWFBFQ1RfRVEoMywgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyk7CiAKQEAgLTEzODgsMTMg
KzEzODgsMTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZVNpdGVCbGFua1RhcmdldE5vTwogICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENyZWF0
ZVdlYlZpZXcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZENyZWF0ZVdlYlZpZXcp
OwogICAgIGRpZENyZWF0ZVdlYlZpZXcgPSBmYWxzZTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAg
ICBFWFBFQ1RfRVEoMywgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyk7CiAKQEAgLTE0MjYsMTIg
KzE0MjYsMTIgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2VydmVyUmVkaXJlY3RGcm9tTmV3VwogICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZzZXJ2ZXJSZWRpcmVjdGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChzZXJ2ZXJSZWRpcmVjdGVkKTsKICAgICBzZXJ2ZXJSZWRpcmVjdGVkID0gZmFsc2U7CiAKICAg
ICBzZWVuUElEcy5hZGQoW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CiAKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIHNlZW5QSURzLmFkZChbd2ViVmll
dyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKQEAgLTE0NTksNyArMTQ1OSw3IEBAIFRFU1QoUHJv
Y2Vzc1N3YXAsIFNlcnZlclJlZGlyZWN0KQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8v
d3d3Lmdvb2dsZS5jb20vbWFpbjEuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpy
ZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0
byBwaWRBZnRlckZpcnN0TG9hZCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBA
IC0xNDcxLDE0ICsxNDcxLDE0IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNlcnZlclJlZGlyZWN0KQog
ICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
c2VydmVyUmVkaXJlY3RlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoc2VydmVyUmVk
aXJlY3RlZCk7CiAgICAgc2VydmVyUmVkaXJlY3RlZCA9IGZhbHNlOwogCiAgICAgc2VlblBJRHMu
YWRkKFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIGlmIChhdXRvIHByb3Zp
c2lvbmFsUElEID0gW3dlYlZpZXcgX3Byb3Zpc2lvbmFsV2ViUHJvY2Vzc0lkZW50aWZpZXJdKQog
ICAgICAgICBzZWVuUElEcy5hZGQocHJvdmlzaW9uYWxQSUQpOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiAKICAgICBzZWVuUElEcy5hZGQoW3dlYlZpZXcgX3dlYlByb2Nl
c3NJZGVudGlmaWVyXSk7CkBAIC0xNTExLDcgKzE1MTEsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBT
ZXJ2ZXJSZWRpcmVjdDIpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0
Lm9yZy9tYWluMS5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZEFmdGVy
Rmlyc3RMb2FkID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTE1MjQsMTQg
KzE1MjQsMTQgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2VydmVyUmVkaXJlY3QyKQogICAgIHJlcXVl
c3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
cHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnNlcnZlclJl
ZGlyZWN0ZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHNlcnZlclJlZGlyZWN0ZWQp
OwogICAgIHNlcnZlclJlZGlyZWN0ZWQgPSBmYWxzZTsKIAogICAgIHNlZW5QSURzLmFkZChbd2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKICAgICBpZiAoYXV0byBwcm92aXNpb25hbFBJ
RCA9IFt3ZWJWaWV3IF9wcm92aXNpb25hbFdlYlByb2Nlc3NJZGVudGlmaWVyXSkKICAgICAgICAg
c2VlblBJRHMuYWRkKHByb3Zpc2lvbmFsUElEKTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCiAgICAgc2VlblBJRHMuYWRkKFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl0pOwpAQCAtMTU0Niw3ICsxNTQ2LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2VydmVyUmVk
aXJlY3QyKQogCiAgICAgW3dlYlZpZXcgZ29CYWNrXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQu
b3JnL21haW4xLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOwpAQCAtMTU3
MCw3ICsxNTcwLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2VydmVyUmVkaXJlY3RUb0Fib3V0Qgog
ICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3Lmdvb2dsZS5jb20vbWFpbi5odG1sIl1d
OwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZEFmdGVyRmlyc3RMb2FkID0gW3dlYlZp
ZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTE1ODIsMTQgKzE1ODIsMTQgQEAgVEVTVChQ
cm9jZXNzU3dhcCwgU2VydmVyUmVkaXJlY3RUb0Fib3V0QgogICAgIHJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53
ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmc2VydmVyUmVkaXJlY3RlZCk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoc2VydmVyUmVkaXJlY3RlZCk7CiAgICAgc2VydmVy
UmVkaXJlY3RlZCA9IGZhbHNlOwogCiAgICAgc2VlblBJRHMuYWRkKFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl0pOwogICAgIGlmIChhdXRvIHByb3Zpc2lvbmFsUElEID0gW3dlYlZpZXcg
X3Byb3Zpc2lvbmFsV2ViUHJvY2Vzc0lkZW50aWZpZXJdKQogICAgICAgICBzZWVuUElEcy5hZGQo
cHJvdmlzaW9uYWxQSUQpOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICBzZWVuUElEcy5hZGQoW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CkBAIC0x
NjI1LDcgKzE2MjUsNyBAQCBzdGF0aWMgdm9pZCBydW5TYW1lT3JpZ2luU2VydmVyUmVkaXJlY3RU
CiAgICAgICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbjMuaHRtbCJdXTsKICAgICAg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9u
ZSk7CiAgICAgICAgIGRvbmUgPSBmYWxzZTsKICAgICB9CiAKQEAgLTE2NDEsMTMgKzE2NDEsMTMg
QEAgc3RhdGljIHZvaWQgcnVuU2FtZU9yaWdpblNlcnZlclJlZGlyZWN0VAogICAgIHJlcXVlc3Qg
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNv
bjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmd2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwod2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdCk7CiAKICAgICBzZWVuUElEcy5hZGQoW3dlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXSk7CiAgICAgaWYgKGF1dG8gcHJvdmlzaW9uYWxQSUQgPSBbd2ViVmlldyBfcHJv
dmlzaW9uYWxXZWJQcm9jZXNzSWRlbnRpZmllcl0pCiAgICAgICAgIHNlZW5QSURzLmFkZChwcm92
aXNpb25hbFBJRCk7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZFBlcmZvcm1D
bGllbnRSZWRpcmVjdCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkUGVyZm9ybUNs
aWVudFJlZGlyZWN0KTsKICAgICBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QgPSBmYWxzZTsKICAg
ICB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0ID0gZmFsc2U7CiAKQEAgLTE2NTUsMTQgKzE2NTUs
MTQgQEAgc3RhdGljIHZvaWQgcnVuU2FtZU9yaWdpblNlcnZlclJlZGlyZWN0VAogICAgIGlmIChh
dXRvIHByb3Zpc2lvbmFsUElEID0gW3dlYlZpZXcgX3Byb3Zpc2lvbmFsV2ViUHJvY2Vzc0lkZW50
aWZpZXJdKQogICAgICAgICBzZWVuUElEcy5hZGQocHJvdmlzaW9uYWxQSUQpOwogCi0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZzZXJ2ZXJSZWRpcmVjdGVkKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChzZXJ2ZXJSZWRpcmVjdGVkKTsKICAgICBzZXJ2ZXJSZWRpcmVjdGVkID0g
ZmFsc2U7CiAKICAgICBzZWVuUElEcy5hZGQoW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XSk7CiAgICAgaWYgKGF1dG8gcHJvdmlzaW9uYWxQSUQgPSBbd2ViVmlldyBfcHJvdmlzaW9uYWxX
ZWJQcm9jZXNzSWRlbnRpZmllcl0pCiAgICAgICAgIHNlZW5QSURzLmFkZChwcm92aXNpb25hbFBJ
RCk7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIHNlZW5QSURz
LmFkZChbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKQEAgLTE3MDEsNyArMTcwMSw3
IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFRlcm1pbmF0ZVByb2Nlc3NSaWdodEEKICAgICBOU1VSTFJl
cXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxX
aXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogCiAgICAgZGVsZWdhdGUtPmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uSGFu
ZGxlciA9IF57CkBAIC0xNzQ4LDcgKzE3NDgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBQb2xpY3lD
YW5jZWxBZnRlclNlcnZlCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuZ29vZ2xl
LmNvbS9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHBpZEFmdGVyRmly
c3RMb2FkID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKIApAQCAtMTc1Niw3ICsx
NzU2LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUG9saWN5Q2FuY2VsQWZ0ZXJTZXJ2ZQogCiAgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAidGVzdExpbmsuY2xpY2soKSIgY29tcGxldGlv
bkhhbmRsZXI6bmlsXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmFpbGVkKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmYWlsZWQpOwogICAgIGZhaWxlZCA9IGZhbHNl
OwogICAgIGRvbmUgPSBmYWxzZTsKIApAQCAtMTc3MCw3ICsxNzcwLDcgQEAgVEVTVChQcm9jZXNz
U3dhcCwgUG9saWN5Q2FuY2VsQWZ0ZXJTZXJ2ZQogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJM
aW5rIiwgaW5uZXJUZXh0KTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAKQEAgLTE3OTMsMTQgKzE3OTMsMTQgQEAg
VEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlRG93bmxvYWQpCiAgICAgTlNVUkxSZXF1ZXN0ICpy
ZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAInBzb246Ly93d3cuZ29vZ2xlLmNvbS9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsK
ICAgICBhdXRvIHBpZEFmdGVyRmlyc3RMb2FkID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlm
aWVyXTsKIAogICAgIHNob3VsZENvbnZlcnRUb0Rvd25sb2FkID0gdHJ1ZTsKICAgICBbd2ViVmll
dyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ0ZXN0TGluay5jbGljaygpIiBjb21wbGV0aW9uSGFuZGxl
cjpuaWxdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmYWlsZWQpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGZhaWxlZCk7CiAgICAgZmFpbGVkID0gZmFsc2U7CiAgICAg
c2hvdWxkQ29udmVydFRvRG93bmxvYWQgPSBmYWxzZTsKIApAQCAtMTgxMiw3ICsxODEyLDcgQEAg
VEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NTaXRlRG93bmxvYWQpCiAgICAgICAgIEVYUEVDVF9XS19T
VFJFUShAIkxpbmsiLCBpbm5lclRleHQpOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIH0KIApAQCAtMTg1NSw3ICsxODU1
LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2FtZU9yaWdpblN5c3RlbVByZXZpZQogICAgIE5TVVJM
UmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25l
ID0gZmFsc2U7CiAgICAgYXV0byBwaWRBZnRlckZpcnN0TG9hZCA9IFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CiAKQEAgLTE4OTEsNyArMTg5MSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IENyb3NzT3JpZ2luU3lzdGVtUHJldmkKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3
dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gcGlk
QWZ0ZXJGaXJzdExvYWQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogCkBAIC0x
OTI5LDcgKzE5MjksNyBAQCBzdGF0aWMgdm9pZCBydW5DbGllbnRTaWRlUmVkaXJlY3RUZXN0KFNo
CiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwi
XV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gd2Via2l0UElEID0gW3dlYlZpZXcgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTE5MzcsNyArMTkzNyw3IEBAIHN0YXRpYyB2b2lkIHJ1
bkNsaWVudFNpZGVSZWRpcmVjdFRlc3QoU2gKICAgICAvLyBOYXZpZ2F0ZSB0byB0aGUgcGFnZSBk
b2luZyBhIGNsaWVudC1zaWRlIHJlZGlyZWN0IHRvIGFwcGxlLmNvbS4KICAgICBbd2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCJ0ZXN0TGluay5jbGljaygpIiBjb21wbGV0aW9uSGFuZGxlcjpu
aWxdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCJwc29uOi8vd3d3Lmdvb2dsZS5jb20vY2xpZW50U2lkZVJlZGlyZWN0Lmh0bWwi
LCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOwpAQCAtMTk0Nyw3ICsxOTQ3LDcgQEAg
c3RhdGljIHZvaWQgcnVuQ2xpZW50U2lkZVJlZGlyZWN0VGVzdChTaAogICAgIGVsc2UKICAgICAg
ICAgRVhQRUNUX0VRKHdlYmtpdFBJRCwgZ29vZ2xlUElEKTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy5hcHBs
ZS5jb20vbWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKQEAgLTE5
ODYsNyArMTk4Niw3IEBAIHN0YXRpYyB2b2lkIHJ1bkNsaWVudFNpZGVSZWRpcmVjdFRlc3QoU2gK
IAogICAgIC8vIE5hdmlnYXRlIGJhY2suCiAgICAgW3dlYlZpZXcgZ29CYWNrXTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmlu
Z10pOwpAQCAtMjAxMSw3ICsyMDExLDcgQEAgc3RhdGljIHZvaWQgcnVuQ2xpZW50U2lkZVJlZGly
ZWN0VGVzdChTaAogCiAgICAgLy8gTmF2aWdhdGUgZm9yd2FyZC4KICAgICBbd2ViVmlldyBnb0Zv
cndhcmRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNU
X1dLX1NUUkVRKEAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVS
TF0gYWJzb2x1dGVTdHJpbmddKTsKQEAgLTIwNjQsMTIgKzIwNjQsMTIgQEAgVEVTVChQcm9jZXNz
U3dhcCwgQ3Jvc3NTaXRlQ2xpZW50U2lkZVJlZAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9
IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAImNsaWVudC1zaWRlLXJlZGlyZWN0IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxz
ZTsKIAogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMiA9IFt3
ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0yMDk5LDcgKzIwOTksNyBAQCBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUJhY2tBZnRlckNsaWVuCiAgICAgTlNVUkxSZXF1ZXN0ICpy
ZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsK
IAogICAgIGF1dG8gd2Via2l0UElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsK
QEAgLTIxMTAsMTQgKzIxMTAsMTQgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0
ZXJDbGllbgogICAgIC8vIE5hdmlnYXRlIHRvIHRoZSBwYWdlIGRvaW5nIGEgY2xpZW50LXNpZGUg
cmVkaXJlY3QgdG8gYXBwbGUuY29tLgogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpA
InRlc3RMaW5rLmNsaWNrKCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93
d3cuZ29vZ2xlLmNvbS9jbGllbnRTaWRlUmVkaXJlY3QuaHRtbCIsIFtbd2ViVmlldyBVUkxdIGFi
c29sdXRlU3RyaW5nXSk7CiAgICAgYXV0byBnb29nbGVQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9ORSh3ZWJraXRQSUQsIGdvb2dsZVBJRCk7CiAKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShA
InBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCIsIFtbd2ViVmlldyBVUkxdIGFic29sdXRl
U3RyaW5nXSk7CkBAIC0yMTM3LDE0ICsyMTM3LDE0IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRlQmFja0FmdGVyQ2xpZW4KICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4yLmh0
bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9FUShhcHBsZVBJRCwgW3dlYlZp
ZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CiAKICAgICBbd2ViVmlldyBnb0JhY2tdOwogCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEoYXBwbGVQ
SUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwpAQCAtMjE3NywxMyArMjE3Nywx
MyBAQCBzdGF0aWMgdm9pZCBydW5OYXZpZ2F0aW9uV2l0aExvY2tlZEhpc3RvCiAgICAgTlNVUkxS
ZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAogICAgIGF1dG8gd2Via2l0UElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXTsKIAogICAgIC8vIFBhZ2UgcmVkaXJlY3RzIHRvIGFwcGxlLmNvbS4KLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gYXBwbGVQSUQgPSBbd2ViVmll
dyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtMjIwMCw5ICsyMjAwLDkgQEAgc3RhdGljIHZv
aWQgcnVuTmF2aWdhdGlvbldpdGhMb2NrZWRIaXN0bwogCiAgICAgcmVjZWl2ZWRNZXNzYWdlID0g
ZmFsc2U7CiAgICAgW3dlYlZpZXcgZ29CYWNrXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkTWVzc2FnZSk7IC8vIFNob3VsZCBiZSByZXN0b3JlZCBmcm9tIFBhZ2VDYWNo
ZS4KKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOyAvLyBTaG91
bGQgYmUgcmVzdG9yZWQgZnJvbSBQYWdlQ2FjaGUuCiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFs
c2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEo
d2Via2l0UElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKQEAgLTIyMTIsOCAr
MjIxMiw4IEBAIHN0YXRpYyB2b2lkIHJ1bk5hdmlnYXRpb25XaXRoTG9ja2VkSGlzdG8KICAgICBF
WFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiLCBbYmFja0Zv
cndhcmRMaXN0LmZvcndhcmRJdGVtLlVSTCBhYnNvbHV0ZVN0cmluZ10pOwogCiAgICAgW3dlYlZp
ZXcgZ29Gb3J3YXJkXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsgLy8gU2hvdWxkIGJl
IHJlc3RvcmVkIGZyb20gUGFnZUNhY2hlLgorICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7IC8vIFNo
b3VsZCBiZSByZXN0b3JlZCBmcm9tIFBhZ2VDYWNoZS4KICAgICByZWNlaXZlZE1lc3NhZ2UgPSBm
YWxzZTsKICAgICBkb25lID0gZmFsc2U7CiAKQEAgLTIyNTAsNyArMjI1MCw3IEBAIHN0YXRpYyB2
b2lkIHJ1blF1aWNrQmFja0ZvcndhcmROYXZpZ2F0aW8KICAgICBOU1VSTFJlcXVlc3QgKnJlcXVl
c3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
cHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAog
ICAgIGF1dG8gd2Via2l0UElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAg
LTIyNTgsNyArMjI1OCw3IEBAIHN0YXRpYyB2b2lkIHJ1blF1aWNrQmFja0ZvcndhcmROYXZpZ2F0
aW8KICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIl1dOwogICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25l
ID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEod2Via2l0UElELCBbd2ViVmlldyBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdKTsKQEAgLTIyNjYsNyArMjI2Niw3IEBAIHN0YXRpYyB2b2lkIHJ1blF1aWNr
QmFja0ZvcndhcmROYXZpZ2F0aW8KICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4u
aHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBhcHBsZVBJRCA9IFt3ZWJWaWV3
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0yMzUxLDkgKzIzNTEsOSBAQCBURVNUKFByb2Nl
c3NTd2FwLCBTZXNzaW9uU3RvcmFnZSkKICAgICAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnJlcXVlc3RdOwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2
ZWRNZXNzYWdlKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRNZXNz
YWdlKTsKICAgICAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgICAgICBkb25lID0gZmFsc2U7CiAKICAgICAgICAgYXV0byB3ZWJraXRQSUQg
PSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtMjM2MSw3ICsyMzYxLDcgQEAg
VEVTVChQcm9jZXNzU3dhcCwgU2Vzc2lvblN0b3JhZ2UpCiAgICAgICAgIHJlcXVlc3QgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3
dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwogICAgICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpy
ZXF1ZXN0XTsKIAotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
ICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICAgICAgZG9uZSA9IGZhbHNl
OwogCiAgICAgICAgIGF1dG8gYXBwbGVQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZp
ZXJdOwpAQCAtMjM3Miw5ICsyMzcyLDkgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2Vzc2lvblN0b3Jh
Z2UpCiAgICAgICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAg
ICAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICAgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZE1lc3NhZ2UpOworICAgICAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwogICAgICAgICByZWNlaXZlZE1lc3NhZ2UgPSBm
YWxzZTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICAgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgICAgIGRvbmUgPSBmYWxzZTsKIAog
ICAgICAgICAvLyBXZSBzaG91bGQgaGF2ZSBnb25lIGJhY2sgdG8gdGhlIHdlYmtpdC5vcmcgcHJv
Y2VzcyBmb3IgdGhpcyBsb2FkIHNpbmNlIHdlIHJldXNlIFN1c3BlbmRlZFBhZ2VzJyBwcm9jZXNz
IHdoZW4gcG9zc2libGUuCkBAIC0yNDA1LDcgKzI0MDUsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBS
ZXVzZVN1c3BlbmRlZFByb2Nlc3MpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cu
d2Via2l0Lm9yZy9tYWluMS5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHdl
YmtpdFBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0yNDEzLDcgKzI0
MTMsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBSZXVzZVN1c3BlbmRlZFByb2Nlc3MpCiAgICAgcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluMS5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICBhdXRvIGFwcGxlUElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAg
LTI0MjMsNyArMjQyMyw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFJldXNlU3VzcGVuZGVkUHJvY2Vz
cykKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIl1dOwogICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25l
ID0gZmFsc2U7CiAKICAgICAvLyBXZSBzaG91bGQgaGF2ZSBnb25lIGJhY2sgdG8gdGhlIHdlYmtp
dC5vcmcgcHJvY2VzcyBmb3IgdGhpcyBsb2FkIHNpbmNlIHdlIHJldXNlIFN1c3BlbmRlZFBhZ2Vz
JyBwcm9jZXNzIHdoZW4gcG9zc2libGUuCkBAIC0yNDMyLDcgKzI0MzIsNyBAQCBURVNUKFByb2Nl
c3NTd2FwLCBSZXVzZVN1c3BlbmRlZFByb2Nlc3MpCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxl
LmNvbS9tYWluMi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICAvLyBXZSBzaG91bGQg
aGF2ZSBnb25lIGJhY2sgdG8gdGhlIGFwcGxlLmNvbSBwcm9jZXNzIGZvciB0aGlzIGxvYWQgc2lu
Y2Ugd2UgcmV1c2UgU3VzcGVuZGVkUGFnZXMnIHByb2Nlc3Mgd2hlbiBwb3NzaWJsZS4KQEAgLTI0
NTcsMTQgKzI0NTcsMTQgQEAgVEVTVChQcm9jZXNzU3dhcCwgUmV1c2VTdXNwZW5kZWRQcm9jZXNz
TAogICAgIE5TU3RyaW5nICpodG1sU3RyaW5nID0gQCI8aHRtbD48Ym9keT5URVNUPC9ib2R5Pjwv
aHRtbD4iOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWxTdHJpbmcgYmFzZVVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIl1d
OwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHdlYmtp
dFBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAKICAgICBbd2ViVmlldyBs
b2FkSFRNTFN0cmluZzpodG1sU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJw
c29uOi8vd3d3LmFwcGxlLmNvbS9tYWluMS5odG1sIl1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIGFwcGxlUElEID0gW3dlYlZpZXcgX3dlYlByb2Nl
c3NJZGVudGlmaWVyXTsKQEAgLTI0NzMsNyArMjQ3Myw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFJl
dXNlU3VzcGVuZGVkUHJvY2Vzc0wKIAogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWxT
dHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9y
Zy9tYWluMi5odG1sIl1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICAvLyBXZSBzaG91bGQgaGF2ZSBnb25lIGJhY2sgdG8gdGhlIHdlYmtpdC5vcmcgcHJvY2Vz
cyBmb3IgdGhpcyBsb2FkIHNpbmNlIHdlIHJldXNlIFN1c3BlbmRlZFBhZ2VzJyBwcm9jZXNzIHdo
ZW4gcG9zc2libGUuCkBAIC0yNDgxLDcgKzI0ODEsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBSZXVz
ZVN1c3BlbmRlZFByb2Nlc3NMCiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sU3Ry
aW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9t
YWluMi5odG1sIl1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAg
ICAvLyBXZSBzaG91bGQgaGF2ZSBnb25lIGJhY2sgdG8gdGhlIGFwcGxlLmNvbSBwcm9jZXNzIGZv
ciB0aGlzIGxvYWQgc2luY2Ugd2UgcmV1c2UgU3VzcGVuZGVkUGFnZXMnIHByb2Nlc3Mgd2hlbiBw
b3NzaWJsZS4KQEAgLTI1MTUsNyArMjUxNSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFJldXNlU3Vz
cGVuZGVkUHJvY2Vzc0UKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQu
b3JnL21haW4xLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gd2Via2l0UElE
ID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTI1MjMsNyArMjUyMyw3IEBA
IFRFU1QoUHJvY2Vzc1N3YXAsIFJldXNlU3VzcGVuZGVkUHJvY2Vzc0UKICAgICByZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246
Ly93d3cuYXBwbGUuY29tL21haW4xLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1
dG8gYXBwbGVQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtMjUzMyw3
ICsyNTMzLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUmV1c2VTdXNwZW5kZWRQcm9jZXNzRQogICAg
IHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiXV07CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxz
ZTsKIAogICAgIC8vIFdlIHNob3VsZCBoYXZlIGdvbmUgYmFjayB0byB0aGUgd2Via2l0Lm9yZyBw
cm9jZXNzIGZvciB0aGlzIGxvYWQgc2luY2Ugd2UgcmV1c2UgU3VzcGVuZGVkUGFnZXMnIHByb2Nl
c3Mgd2hlbiBwb3NzaWJsZS4KQEAgLTI1NDIsNyArMjU0Miw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IFJldXNlU3VzcGVuZGVkUHJvY2Vzc0UKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21h
aW4yLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIC8vIFdlIHNob3VsZCBoYXZlIGdv
bmUgYmFjayB0byB0aGUgYXBwbGUuY29tIHByb2Nlc3MgZm9yIHRoaXMgbG9hZCBzaW5jZSB3ZSBy
ZXVzZSBTdXNwZW5kZWRQYWdlcycgcHJvY2VzcyB3aGVuIHBvc3NpYmxlLgpAQCAtMjU2Nyw3ICsy
NTY3LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUmV1c2VTdXNwZW5kZWRQcm9jZXNzTwogICAgIE5T
VVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXTsKICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byB3ZWJraXRQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdOwpAQCAtMjU3NSw3ICsyNTc1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUmV1
c2VTdXNwZW5kZWRQcm9jZXNzTwogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbjEu
aHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBhcHBsZVBJRCA9IFt3ZWJWaWV3
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0yNTg0LDcgKzI1ODQsNyBAQCBURVNUKFByb2Nl
c3NTd2FwLCBSZXVzZVN1c3BlbmRlZFByb2Nlc3NPCiAKICAgICBbd2ViVmlldyBnb0JhY2tdOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEod2Vi
a2l0UElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKQEAgLTI2MTYsNyArMjYx
Niw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEhpc3RvcnlJdGVtSURDb25mdXNpb24KICAgICBOU1VS
TFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCiAgICAgYXV0byB3ZWJraXRQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdOwpAQCAtMjYyNCw3ICsyNjI0LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgSGlzdG9y
eUl0ZW1JRENvbmZ1c2lvbgogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1s
Il1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIGFwcGxlUElEID0gW3dlYlZpZXcgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTI2MzMsNyArMjYzMyw3IEBAIFRFU1QoUHJvY2Vzc1N3
YXAsIEhpc3RvcnlJdGVtSURDb25mdXNpb24KICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuZ29vZ2xlLmNv
bS9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gZ29vZ2xlUElEID0g
W3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTI2NDIsMTQgKzI2NDIsMTQgQEAg
VEVTVChQcm9jZXNzU3dhcCwgSGlzdG9yeUl0ZW1JRENvbmZ1c2lvbgogCiAgICAgW3dlYlZpZXcg
Z29CYWNrXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQ
RUNUX0VRKGFwcGxlUElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKIAogICAg
IFt3ZWJWaWV3IGdvQmFja107CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsK
IAogICAgIEVYUEVDVF9FUSh3ZWJraXRQSUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmll
cl0pOwpAQCAtMjY4Miw3ICsyNjgyLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgR29Ub1NlY29uZEl0
ZW1JbkJhY2tIaQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcv
bWFpbjEuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byB3ZWJraXRQSUQgPSBb
d2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtMjY5MCw3ICsyNjkwLDcgQEAgVEVT
VChQcm9jZXNzU3dhcCwgR29Ub1NlY29uZEl0ZW1JbkJhY2tIaQogICAgIHJlcXVlc3QgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3
dy53ZWJraXQub3JnL21haW4yLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVx
dWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVD
VF9FUSh3ZWJraXRQSUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwpAQCAtMjY5
OCwyMSArMjY5OCwyMSBAQCBURVNUKFByb2Nlc3NTd2FwLCBHb1RvU2Vjb25kSXRlbUluQmFja0hp
CiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBm
YWxzZTsKIAogICAgIGF1dG8gYXBwbGVQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZp
ZXJdOwogICAgIEVYUEVDVF9ORSh3ZWJraXRQSUQsIGFwcGxlUElEKTsKIAogICAgIFt3ZWJWaWV3
IGdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOndlYlZpZXcuZ2V0KCkuYmFja0ZvcndhcmRMaXN0LmJh
Y2tMaXN0WzBdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVY
UEVDVF9FUSh3ZWJraXRQSUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwogICAg
IEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIiwgW1t3
ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKIAogICAgIFt3ZWJWaWV3IGdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtOndlYlZpZXcuZ2V0KCkuYmFja0ZvcndhcmRMaXN0LmZvcndhcmRMaXN0WzFd
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9FUShh
cHBsZVBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CkBAIC0yNzQyLDcgKzI3
NDIsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBQcml2YXRlQW5kUmVndWxhclNlc3NpCiAgICAgTlNV
UkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuZ29vZ2xlLmNvbS9tYWluLmh0bWwiXV07CiAgICAg
W3JlZ3VsYXJXZWJWaWV3MSBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgW3JlZ3VsYXJXZWJWaWV3MSBfY2xvc2VdOwpAQCAt
Mjc1NCw3ICsyNzU0LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUHJpdmF0ZUFuZFJlZ3VsYXJTZXNz
aQogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxX
aXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbcHJp
dmF0ZVdlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcHJpdmF0ZVNlc3Npb25XZWJraXRQSUQgPSBbcHJp
dmF0ZVdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTI3NjIsNyArMjc2Miw3IEBA
IFRFU1QoUHJvY2Vzc1N3YXAsIFByaXZhdGVBbmRSZWd1bGFyU2Vzc2kKICAgICByZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246
Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKICAgICBbcHJpdmF0ZVdlYlZpZXcgbG9hZFJl
cXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAog
ICAgIGF1dG8gcHJpdmF0ZVNlc3Npb25BcHBsZVBJRCA9IFtwcml2YXRlV2ViVmlldyBfd2ViUHJv
Y2Vzc0lkZW50aWZpZXJdOwpAQCAtMjc3Nyw3ICsyNzc3LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwg
UHJpdmF0ZUFuZFJlZ3VsYXJTZXNzaQogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5nb29nbGUuY29tL21h
aW4uaHRtbCJdXTsKICAgICBbcmVndWxhcldlYlZpZXcyIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHJlZ3VsYXJT
ZXNzaW9uR29vZ2xlUElEID0gW3JlZ3VsYXJXZWJWaWV3MiBfd2ViUHJvY2Vzc0lkZW50aWZpZXJd
OwpAQCAtMjc4NSw3ICsyNzg1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUHJpdmF0ZUFuZFJlZ3Vs
YXJTZXNzaQogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAg
ICBbcmVndWxhcldlYlZpZXcyIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHJlZ3VsYXJTZXNzaW9uV2Via2l0UElE
ID0gW3JlZ3VsYXJXZWJWaWV3MiBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtMjg0NCw3ICsy
ODQ0LDcgQEAgdm9pZCB0ZXN0UmV1c2VTdXNwZW5kZWRQcm9jZXNzRm9yUmVndWxhcgogICAgIE5T
VVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXTsKICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byB3ZWJraXRQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdOwpAQCAtMjg1Miw3ICsyODUyLDcgQEAgdm9pZCB0ZXN0UmV1c2VTdXNwZW5k
ZWRQcm9jZXNzRm9yUmVndWxhcgogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5o
dG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIGFwcGxlUElEID0gW3dlYlZpZXcg
X3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTI4NjEsNyArMjg2MSw3IEBAIHZvaWQgdGVzdFJl
dXNlU3VzcGVuZGVkUHJvY2Vzc0ZvclJlZ3VsYXIKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0
Lm9yZy9tYWluMi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEod2Vi
a2l0UElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKQEAgLTI5MjMsNyArMjky
Myw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE1haW5GcmFtZXNPbmx5KQogICAgIE5TVVJMUmVxdWVz
dCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWNlaXZlZE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkTWVz
c2FnZSk7CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEoMXUs
IHNlZW5QSURzLnNpemUoKSk7CkBAIC0yOTU2LDcgKzI5NTYsNyBAQCBzdGF0aWMgdW5zaWduZWQg
d2FpdFVudGlsQ2xpZW50V2lkdGhJcyhXCiAgICAgICAgICAgICBjbGllbnRXaWR0aCA9IFtyZXN1
bHQgaW50ZWdlclZhbHVlXTsKICAgICAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgICAgICB9XTsK
LSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICAgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgICAgIGRvbmUgPSBmYWxzZTsKICAgICAgICAg
LS10aW1lb3V0OwogICAgIH0gd2hpbGUgKGNsaWVudFdpZHRoICE9IGV4cGVjdGVkQ2xpZW50V2lk
dGggJiYgdGltZW91dCA+PSAwKTsKQEAgLTI5ODgsNyArMjk4OCw3IEBAIFRFU1QoUHJvY2Vzc1N3
YXAsIFBhZ2Vab29tTGV2ZWxBZnRlclN3YXAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjov
L3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpy
ZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgdW5z
aWduZWQgY2xpZW50V2lkdGggPSB3YWl0VW50aWxDbGllbnRXaWR0aElzKHdlYlZpZXcuZ2V0KCks
IDQwMCk7CkBAIC0yOTk3LDcgKzI5OTcsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBQYWdlWm9vbUxl
dmVsQWZ0ZXJTd2FwCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiXV07
CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwog
ICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGNsaWVudFdpZHRoID0gd2FpdFVudGlsQ2xpZW50V2lk
dGhJcyh3ZWJWaWV3LmdldCgpLCA0MDApOwpAQCAtMzAwNiw3ICszMDA2LDcgQEAgVEVTVChQcm9j
ZXNzU3dhcCwgUGFnZVpvb21MZXZlbEFmdGVyU3dhcAogICAgIC8vIEtpbGwgdGhlIFdlYlByb2Nl
c3MsIHRoZSBwYWdlIHNob3VsZCByZWxvYWQgYXV0b21hdGljYWxseSBhbmQgdGhlIHBhZ2Ugem9v
bSBsZXZlbCBzaG91bGQgYmUgbWFpbnRhaW5lZC4KICAgICBraWxsKFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl0sIDkpOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7
CiAKICAgICBjbGllbnRXaWR0aCA9IHdhaXRVbnRpbENsaWVudFdpZHRoSXMod2ViVmlldy5nZXQo
KSwgNDAwKTsKQEAgLTMwNTIsNyArMzA1Miw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRl
Q3Jvc3NTaXRlQmVmb3IKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQu
b3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0ZBTFNFKGZh
aWxlZCk7CkBAIC0zMDc5LDcgKzMwNzksNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBEb1NhbWVTaXRl
TmF2aWdhdGlvbkFmCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9y
Zy9tYWluMS5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHdlYmtpdFBJRCA9
IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0zMDk0LDcgKzMwOTQsNyBAQCBU
RVNUKFByb2Nlc3NTd2FwLCBEb1NhbWVTaXRlTmF2aWdhdGlvbkFmCiAgICAgcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8v
d3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVx
dWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVD
VF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIiwgW1t3ZWJWaWV3
IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKQEAgLTMxMjEsMzEgKzMxMjEsMzEgQEAgVEVTVChQcm9j
ZXNzU3dhcCwgU3VzcGVuZGVkUGFnZUxpbWl0KQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9
IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29u
Oi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBy
ZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwog
CiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJwc29uOi8vd3d3Lmdvb2dsZS5jb20vbWFpbi5odG1sIl1dOwogICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0g
ZmFsc2U7CiAKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYmluZy5jb20vbWFpbi5odG1sIl1dOwogICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiAKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cueWFob28uY29tL21haW4uaHRtbCJd
XTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgLy8gTmF2aWdhdGlvbnMgdG8gNSBkaWZmZXJlbnQg
ZG9tYWlucywgd2UgZXhwZWN0IHRvIGhhdmUgc2VlbiA1IGRpZmZlcmVudCBQSURzCkBAIC0zMTg0
LDcgKzMxODQsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBQYWdlQ2FjaGUxKQogICAgIE5TVVJMUmVx
dWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogCiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0g
ZmFsc2U7CiAKICAgICBhdXRvIHBpZEFmdGVyTG9hZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdOwpAQCAtMzE5NCw3ICszMTk0LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUGFnZUNh
Y2hlMSkKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKIAogICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWRBZnRlckxvYWQyID0gW3dlYlZpZXcgX3dlYlByb2Nl
c3NJZGVudGlmaWVyXTsKQEAgLTMyMDMsOSArMzIwMyw5IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFBh
Z2VDYWNoZTEpCiAgICAgRVhQRUNUX05FKHBpZEFmdGVyTG9hZDEsIHBpZEFmdGVyTG9hZDIpOwog
CiAgICAgW3dlYlZpZXcgZ29CYWNrXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRNZXNz
YWdlKTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkQWZ0ZXJMb2FkMyA9IFt3ZWJWaWV3IF93ZWJQ
cm9jZXNzSWRlbnRpZmllcl07CkBAIC0zMjE3LDkgKzMyMTcsOSBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBQYWdlQ2FjaGUxKQogICAgIEVYUEVDVF9FUSgydSwgc2VlblBJRHMuc2l6ZSgpKTsKIAogICAg
IFt3ZWJWaWV3IGdvRm9yd2FyZF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkTWVzc2Fn
ZSk7CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZEFmdGVyTG9hZDQgPSBbd2ViVmlldyBfd2ViUHJv
Y2Vzc0lkZW50aWZpZXJdOwpAQCAtMzI1Myw3ICszMjUzLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwg
UGFnZUNhY2hlV2hlbk5hdmlnYXRpbgogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3
LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVx
dWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBp
ZEFmdGVyTG9hZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtMzI2Myw3
ICszMjYzLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUGFnZUNhY2hlV2hlbk5hdmlnYXRpbgogICAg
IHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwogCiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7
CiAKICAgICBhdXRvIHBpZEFmdGVyTG9hZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZp
ZXJdOwpAQCAtMzI3Miw5ICszMjcyLDkgQEAgVEVTVChQcm9jZXNzU3dhcCwgUGFnZUNhY2hlV2hl
bk5hdmlnYXRpbgogICAgIEVYUEVDVF9ORShwaWRBZnRlckxvYWQxLCBwaWRBZnRlckxvYWQyKTsK
IAogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImhpc3RvcnkuYmFjaygpIiBjb21w
bGV0aW9uSGFuZGxlcjogbmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2Vp
dmVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRNZXNzYWdl
KTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRv
bmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkQWZ0ZXJMb2FkMyA9IFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CkBAIC0zMjg2LDkgKzMyODYsOSBAQCBURVNUKFByb2Nlc3NTd2FwLCBQ
YWdlQ2FjaGVXaGVuTmF2aWdhdGluCiAgICAgRVhQRUNUX0VRKDJ1LCBzZWVuUElEcy5zaXplKCkp
OwogCiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiaGlzdG9yeS5mb3J3YXJkKCki
IGNvbXBsZXRpb25IYW5kbGVyOiBuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
cmVjZWl2ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZE1l
c3NhZ2UpOwogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWRBZnRlckxvYWQ0ID0gW3dlYlZpZXcgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTMzMjYsNyArMzMyNiw3IEBAIFRFU1QoUHJvY2Vzc1N3
YXAsIFVzZVdlYlByb2Nlc3NDYWNoZUFmdGUKICAgICAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0
ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBz
b246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAKICAgICAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgICAgICBkb25l
ID0gZmFsc2U7CiAgICAgICAgIHdlYmtpdFBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl07CiAgICAgfQpAQCAtMzMzOCw3ICszMzM4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgVXNl
V2ViUHJvY2Vzc0NhY2hlQWZ0ZQogCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cu
YXBwbGUuY29tL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIGFwcGxlUElE
ID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKIApAQCAtMzM1MiwxNCArMzM1Miwx
NCBAQCBURVNUKFByb2Nlc3NTd2FwLCBVc2VXZWJQcm9jZXNzQ2FjaGVBZnRlCiAgICAgfV07CiAK
ICAgICBraWxsKGFwcGxlUElELCA5KTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJndl
YlByb2Nlc3NUZXJtaW5hdGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbCh3ZWJQcm9j
ZXNzVGVybWluYXRlZCk7CiAgICAgd2ViUHJvY2Vzc1Rlcm1pbmF0ZWQgPSBmYWxzZTsKIAogICAg
IEVYUEVDVF9FUSgwLCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKIAogICAgIHJl
cXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAog
ICAgIEVYUEVDVF9FUSh3ZWJraXRQSUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0p
OwpAQCAtMzM5MSw3ICszMzkxLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgVXNlV2ViUHJvY2Vzc0Nh
Y2hlRm9yTAogCiAgICAgICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5v
cmcvbWFpbjEuaHRtbCJdXTsKICAgICAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgICAgICBkb25lID0gZmFsc2U7CiAgICAgICAg
IHdlYmtpdFBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAgICAgICAgIEVY
UEVDVF9ORSgwLCB3ZWJraXRQSUQpOwpAQCAtMzQwOCw3ICszNDA4LDcgQEAgVEVTVChQcm9jZXNz
U3dhcCwgVXNlV2ViUHJvY2Vzc0NhY2hlRm9yTAogCiAgICAgICAgIE5TVVJMUmVxdWVzdCAqcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCJdXTsKICAgICAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgICAgICBk
b25lID0gZmFsc2U7CiAKICAgICAgICAgRVhQRUNUX0VRKHdlYmtpdFBJRCwgW3dlYlZpZXcgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXSk7CkBAIC0zNDI2LDcgKzM0MjYsNyBAQCBURVNUKFByb2Nlc3NT
d2FwLCBVc2VXZWJQcm9jZXNzQ2FjaGVGb3JMCiAKICAgICAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKICAgICAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgICAgICBkb25l
ID0gZmFsc2U7CiAKICAgICAgICAgRVhQRUNUX05FKHdlYmtpdFBJRCwgW3dlYlZpZXcgX3dlYlBy
b2Nlc3NJZGVudGlmaWVyXSk7CkBAIC0zNDUzLDcgKzM0NTMsNyBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBOdW1iZXJPZlByZXdhcm1lZFByb2NlCiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjov
L3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpy
ZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVD
VF9FUSgydSwgW3Byb2Nlc3NQb29sIF93ZWJQcm9jZXNzQ291bnRdKTsKQEAgLTM0NjIsNyArMzQ2
Miw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE51bWJlck9mUHJld2FybWVkUHJvY2UKIAogICAgIHJl
cXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAicHNvbjovL3d3dy5nb29nbGUuY29tL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAog
ICAgIEVYUEVDVF9FUSgzdSwgW3Byb2Nlc3NQb29sIF93ZWJQcm9jZXNzQ291bnRdKTsKQEAgLTM0
OTcsNyArMzQ5Nyw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE51bWJlck9mQ2FjaGVkUHJvY2Vzc2UK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbWF4U3VzcGVuZGVkUGFnZUNvdW50ICsgMTsg
aSsrKSB7CiAgICAgICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6bWFrZVN0cmluZygicHNvbjovL3d3dy5k
b21haW4tIiwgaSwgIi5jb20iKV1dOwogICAgICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICAgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgICAgIGRvbmUgPSBmYWxzZTsKIAog
ICAgICAgICBFWFBFQ1RfRVEoaSArIDEsIFtwcm9jZXNzUG9vbCBfd2ViUHJvY2Vzc0NvdW50XSk7
CkBAIC0zNTA3LDcgKzM1MDcsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOdW1iZXJPZkNhY2hlZFBy
b2Nlc3NlCiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOm1ha2VTdHJpbmcoInBzb246Ly93d3cuZG9t
YWluLSIsIG1heFN1c3BlbmRlZFBhZ2VDb3VudCArIDEsICIuY29tIildXTsKICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxz
ZTsKIAogICAgIGludCB0aW1lb3V0ID0gMTAwOwpAQCAtMzUyNCw3ICszNTI0LDcgQEAgVEVTVChQ
cm9jZXNzU3dhcCwgTnVtYmVyT2ZDYWNoZWRQcm9jZXNzZQogICAgIFtbV0tXZWJzaXRlRGF0YVN0
b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3Rv
cmUgX2FsbFdlYnNpdGVEYXRhVHlwZXNJbmNsdWRpbmdQcml2YXRlXSBtb2RpZmllZFNpbmNlOltO
U0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAgICAgIHJlYWR5
VG9Db250aW51ZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWFkeVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlYWR5VG9D
b250aW51ZSk7CiAKICAgICB0aW1lb3V0ID0gMTAwOwogICAgIHdoaWxlIChbcHJvY2Vzc1Bvb2wg
X3dlYlByb2Nlc3NDb3VudF0gPiAxICYmIHRpbWVvdXQgPiAwKSB7CkBAIC0zNTc3LDI5ICszNTc3
LDI5IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFBhZ2VTaG93SGlkZSkKICAgICBOU1VSTFJlcXVlc3Qg
KnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKIAogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZE1lc3Nh
Z2UpOwogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwi
XV07CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwocmVjZWl2ZWRNZXNzYWdlKTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFt3ZWJWaWV3IGdvQmFja107
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRNZXNz
YWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBb
d2ViVmlldyBnb0ZvcndhcmRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2
ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2Up
OwogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCiAgICAgd2hpbGUgKFtyZWNlaXZlZE1lc3NhZ2VzIGNvdW50XSA8IDcpCkBA
IC0zNjY5LDI5ICszNjY5LDI5IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIExvYWRVbmxvYWQpCiAgICAg
TlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAK
ICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
cmVjZWl2ZWRNZXNzYWdlKTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5j
b20vbWFpbi5odG1sIl1dOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRNZXNzYWdl
ID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBbd2Vi
VmlldyBnb0JhY2tdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNz
YWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwogICAg
IHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZh
bHNlOwogCiAgICAgW3dlYlZpZXcgZ29Gb3J3YXJkXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVj
ZWl2ZWRNZXNzYWdlKTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIHdoaWxlIChbcmVjZWl2ZWRNZXNzYWdlcyBj
b3VudF0gPCA3KQpAQCAtMzc0MSw3ICszNzQxLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgV2ViSW5z
cGVjdG9yKQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFp
bjEuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQxID0gW3dlYlZpZXcg
X3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTM3NTEsNyArMzc1MSw3IEBAIFRFU1QoUHJvY2Vz
c1N3YXAsIFdlYkluc3BlY3RvcikKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4y
Lmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3IF93
ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0zNzYxLDcgKzM3NjEsNyBAQCBURVNUKFByb2Nlc3NT
d2FwLCBXZWJJbnNwZWN0b3IpCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIu
aHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQzID0gW3dlYlZpZXcgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTM4MDMsMTQgKzM4MDMsMTQgQEAgVEVTVChQcm9jZXNz
U3dhcCwgU2FtZU9yaWdpbkJsb2JOYXZpZ2F0aQogICAgIG51bWJlck9mRGVjaWRlUG9saWN5Q2Fs
bHMgPSAwOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5o
dG1sIl1dXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8g
cGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAgICAgRVhQRUNUX1RSVUUo
ISFwaWQxKTsKIAogICAgIFt3ZWJWaWV3IF9ldmFsdWF0ZUphdmFTY3JpcHRXaXRob3V0VXNlckdl
c3R1cmU6QCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGluaycpLmNsaWNrKCkiIGNvbXBsZXRp
b25IYW5kbGVyOiBuaWxdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAg
ICAgYXV0byBwaWQyID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKICAgICBFWFBF
Q1RfVFJVRSghIXBpZDIpOwpAQCAtMzgzNiw3ICszODM2LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwg
Q3Jvc3NPcmlnaW5CbG9iTmF2aWdhdAogCiAgICAgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyA9
IDA7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwi
XV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gcGlkMSA9
IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAgICAgRVhQRUNUX1RSVUUoISFwaWQx
KTsKQEAgLTM4NDcsMTAgKzM4NDcsMTAgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NPcmlnaW5C
bG9iTmF2aWdhdAogICAgICAgICBibG9iVVJMID0gU3RyaW5nKFtOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAiJUAiLCByZXN1bHRdKTsKICAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0g
dHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUnVu
bmluZ1NjcmlwdCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWRSdW5uaW5n
U2NyaXB0KTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWlu
Lmh0bWwiXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8g
cGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAgICAgRVhQRUNUX1RSVUUo
ISFwaWQyKTsKQEAgLTM4NjAsMTMgKzM4NjAsMTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jvc3NP
cmlnaW5CbG9iTmF2aWdhdAogICAgIFt3ZWJWaWV3IF9ldmFsdWF0ZUphdmFTY3JpcHRXaXRob3V0
VXNlckdlc3R1cmU6KE5TU3RyaW5nICopc2NyaXB0IGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlk
IHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgZmluaXNoZWRSdW5uaW5nU2NyaXB0
ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVk
UnVubmluZ1NjcmlwdCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWRSdW5u
aW5nU2NyaXB0KTsKIAogICAgIC8vIFRoaXMgbmF2aWdhdGlvbiB3aWxsIGZhaWwuCiAgICAgW3dl
YlZpZXcgX2V2YWx1YXRlSmF2YVNjcmlwdFdpdGhvdXRVc2VyR2VzdHVyZTpAImRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdsaW5rJykuY2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQg
cmVzdWx0LCBOU0Vycm9yICplcnJvcikgewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHBpZDMgPSBbd2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9UUlVFKCEhcGlkMyk7CkBA
IC0zODk0LDEzICszODk0LDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlVG9BYm91dEJs
YW5rKQogCiAgICAgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyA9IDA7CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV1dOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9u
ZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CiAgICAgRVhQRUNUX1RSVUUoISFwaWQxKTsKIAogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJhYm91dDpibGFuayJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFs
c2U7CiAgICAgYXV0byBwaWQyID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKICAg
ICBFWFBFQ1RfVFJVRSghIXBpZDIpOwpAQCAtMzkyNywxMyArMzkyNywxMyBAQCBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0ZVRvRGF0YVVSTCkKIAogICAgIG51bWJlck9mRGVjaWRlUG9saWN5Q2Fs
bHMgPSAwOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5o
dG1sIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHBp
ZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9UUlVFKCEh
cGlkMSk7CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiZGF0YTp0ZXh0L3BsYWluLFBBU1MiXV1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gcGlkMiA9IFt3ZWJW
aWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAgICAgRVhQRUNUX1RSVUUoISFwaWQyKTsKQEAg
LTM5NTksNyArMzk1OSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFByb2Nlc3NSZXVzZSkKICAgICBO
U1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwiXV07CiAg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRl
bnRpZmllcl07CkBAIC0zOTY3LDcgKzM5NjcsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBQcm9jZXNz
UmV1c2UpCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiXV07CiAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRv
bmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl07CkBAIC0zOTc1LDcgKzM5NzUsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBQcm9jZXNzUmV1
c2UpCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCJdXTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQzID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlm
aWVyXTsKQEAgLTQwMDQsNyArNDAwNCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFByb2Nlc3NSZXVz
ZWVUTERQbHVzMikKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dzEud2Via2l0Lm9y
Zy9tYWluMS5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDEgPSBbd2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtNDAxMiw3ICs0MDEyLDcgQEAgVEVTVChQ
cm9jZXNzU3dhcCwgUHJvY2Vzc1JldXNlZVRMRFBsdXMyKQogICAgIHJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5h
cHBsZS5jb20vbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3Rd
OwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDIg
PSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtNDAyMCw3ICs0MDIwLDcgQEAg
VEVTVChQcm9jZXNzU3dhcCwgUHJvY2Vzc1JldXNlZVRMRFBsdXMyKQogICAgIHJlcXVlc3QgPSBb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjov
L3d3dzIud2Via2l0Lm9yZy9tYWluMi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBh
dXRvIHBpZDMgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtNDA0NywxMyAr
NDA0NywxMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDb25jdXJyZW50SGlzdG9yeU5hdmlnCiAgICAg
W3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07
CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJd
XV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHdlYmtp
dFBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dXTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gYXBwbGVQSUQgPSBbd2ViVmlldyBfd2Vi
UHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtNDA2MSw3ICs0MDYxLDcgQEAgVEVTVChQcm9jZXNzU3dh
cCwgQ29uY3VycmVudEhpc3RvcnlOYXZpZwogICAgIEVYUEVDVF9ORSh3ZWJraXRQSUQsIGFwcGxl
UElEKTsKIAogICAgIFt3ZWJWaWV3IGdvQmFja107Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25l
ID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEod2Via2l0UElELCBbd2ViVmlldyBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdKTsKQEAgLTQwNzcsNyArNDA3Nyw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENv
bmN1cnJlbnRIaXN0b3J5TmF2aWcKICAgICBbd2ViVmlldyBnb0ZvcndhcmRdOwogICAgIFt3ZWJW
aWV3IGdvRm9yd2FyZF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAog
ICAgIEVYUEVDVF9FUShhcHBsZVBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7
CkBAIC00MDg5LDcgKzQwODksNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDb25jdXJyZW50SGlzdG9y
eU5hdmlnCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4u
aHRtbCIsIFtiYWNrRm9yd2FyZExpc3QuYmFja0l0ZW0uVVJMIGFic29sdXRlU3RyaW5nXSk7CiAK
ICAgICBbd2ViVmlldyBnb0JhY2tdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNl
OwogCiAgICAgRVhQRUNUX05FKGFwcGxlUElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZp
ZXJdKTsKQEAgLTQxMTksNyArNDExOSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlVG9J
bnZhbGlkVVJMKQogCiAgICAgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyA9IDA7CiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV1dOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93
ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAgICAgRVhQRUNUX1RSVUUoISFwaWQxKTsKQEAgLTQxMjks
NyArNDEyOSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlVG9JbnZhbGlkVVJMKQogICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImxvY2F0aW9uLmhyZWYgPSAnaHR0cDovL0E9
YSVCPWInIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwogCiAgICAgZGlkUmVwb25kVG9Qb2xpY3lE
ZWNpc2lvbkNhbGwgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZFJl
cG9uZFRvUG9saWN5RGVjaXNpb25DYWxsKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
aWRSZXBvbmRUb1BvbGljeURlY2lzaW9uQ2FsbCk7CiAKICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpzcGluUnVuTG9vcCgxKTsKIApAQCAtNDE3NSwxNSArNDE3NSwxNSBAQCBURVNUKFByb2Nlc3NT
d2FwLCBOYXZpZ2F0ZVRvRGF0YVVSTFRoZW5CCiAKICAgICBudW1iZXJPZkRlY2lkZVBvbGljeUNh
bGxzID0gMDsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4u
aHRtbCJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgYXV0byBw
aWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNz
SWRlbnRpZmllcl07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBh
dXRvIHBpZDMgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogCkBAIC00MjA5LDE5
ICs0MjA5LDE5IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQ3Jvc3NTaXRlV2l0aFAKICAg
ICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgp
XTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1s
Il1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHdlYmtp
dFBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dXTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIGFwcGxlUElEID0gW3dlYlZpZXcgX3dlYlBy
b2Nlc3NJZGVudGlmaWVyXTsKIAogICAgIEVYUEVDVF9ORSh3ZWJraXRQSUQsIGFwcGxlUElEKTsK
IAogICAgIFt3ZWJWaWV3IGdvQmFja107Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFs
c2U7CiAKICAgICBFWFBFQ1RfTkUoYXBwbGVQSUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl0pOwpAQCAtNDIzOSwxMyArNDIzOSwxMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBBUElDb250
cm9sbGVkUHJvY2Vzc1N3CiAKICAgICBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzID0gMDsKICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnLzEiXV1dOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQ
cm9jZXNzSWRlbnRpZmllcl07CiAKICAgICAvLyBOYXZpZ2F0aW5nIGZyb20gdGhlIGFib3ZlIFVS
TCB0byB0aGlzIFVSTCBub3JtYWxseSBzaG91bGQgbm90IHByb2Nlc3Mgc3dhcC4KICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxX
aXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnLzIiXV1dOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNz
SWRlbnRpZmllcl07CiAKQEAgLTQyNTgsNyArNDI1OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEFQ
SUNvbnRyb2xsZWRQcm9jZXNzU3cKICAgICAgICAgZGVjaXNpb25IYW5kbGVyKF9XS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lBbGxvd0luTmV3UHJvY2Vzcyk7CiAgICAgfTsKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAicHNvbjovL3d3dy53ZWJpdC5vcmcvMyJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiAgICAgYXV0byBwaWQzID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlm
aWVyXTsKIApAQCAtNDMwMiwxNyArNDMwMiwxNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
ZVRvQ3Jvc3NTaXRlVGhlCiAKICAgICBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzID0gMDsKICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXV07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgYXV0byB3ZWJraXRQSUQgPSBb
d2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiAgICAgYXV0byBhcHBsZVBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRl
bnRpZmllcl07CiAgICAgRVhQRUNUX05FKHdlYmtpdFBJRCwgYXBwbGVQSUQpOyAvLyBTaG91bGQg
aGF2ZSBwcm9jZXNzLXN3YXBwZWQgd2hlbiBnb2luZyBmcm9tIHdlYmtpdC5vcmcgdG8gYXBwbGUu
Y29tLgogCiAgICAgLy8gUGFnZSBub3cgY2FsbHMgaGlzdG9yeS5iYWNrKCkgdG8gbmF2aWdhdGUg
YmFjayB0byB3ZWJraXQub3JnLgotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwog
CiAgICAgRVhQRUNUX0VRKDMsIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMpOwpAQCAtNDM0Nywz
OCArNDM0NywzOCBAQCBURVNUKFByb2Nlc3NTd2FwLCBTd2FwT25Gb3JtU3VibWlzc2lvbikKICAg
ICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgp
XTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1s
Il1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHdlYmtp
dFBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAgICAgRVhQRUNUX1dLX1NU
UkVRKEAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIsIFtbd2ViVmlldyBVUkxdIGFi
c29sdXRlU3RyaW5nXSk7CiAKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzdWJt
aXRCdXR0b24uY2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIGFwcGxlUElEID0gW3dlYlZpZXcgX3dlYlBy
b2Nlc3NJZGVudGlmaWVyXTsKICAgICBFWFBFQ1RfTkUod2Via2l0UElELCBhcHBsZVBJRCk7CiAg
ICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgW1t3
ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKIAogICAgIFt3ZWJWaWV3IHJlbG9hZF07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgRVhQRUNUX0VRKGFwcGxlUElE
LCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEo
QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0
ZVN0cmluZ10pOwogCiAgICAgW3dlYlZpZXcgZ29CYWNrXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKICAgICBFWFBFQ1RfRVEod2Via2l0UElELCBbd2ViVmlldyBfd2ViUHJv
Y2Vzc0lkZW50aWZpZXJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LndlYmtp
dC5vcmcvbWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKIAogICAg
IFt3ZWJWaWV3IGdvRm9yd2FyZF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7
CiAgICAgRVhQRUNUX0VRKGFwcGxlUElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJd
KTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwi
LCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOwogCiAgICAgW3dlYlZpZXcgZ29CYWNr
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICNpZiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICAvLyBUaGlzIGlzIG5vdCBndWFyYW50ZWVkIG9uIGlPUyBiZWNhdXNlIHRo
ZSBXZWJQcm9jZXNzIGNhY2hlIGlzIGRpc2FibGVkIG9uIGRldmljZXMgd2l0aCB0b28gbGl0dGxl
IFJBTS4KQEAgLTQ0MDYsNyArNDQwNiw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENsb3NlUGFnZUFm
dGVyQ3Jvc3NTaXQKICAgICBbd2ViVmlldyBjb25maWd1cmF0aW9uXS5wcmVmZXJlbmNlcy5fc2Fm
ZUJyb3dzaW5nRW5hYmxlZCA9IE5POwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cu
d2Via2l0Lm9yZy9tYWluLmh0bWwiXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZh
bHNlOwogCiAgICAgZGlkU3RhcnRQcm92aXNpb25hbExvYWQgPSBmYWxzZTsKQEAgLTQ0MTksNyAr
NDQxOSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENsb3NlUGFnZUFmdGVyQ3Jvc3NTaXQKICAgICAg
ICAgZG9uZSA9IHRydWU7CiAgICAgfTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZh
bHNlOwogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC41KTsKQEAgLTQ0NjQsNyAr
NDQ2NCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIExvYWRpbmdTdGF0ZUFmdGVyUG9saWMKICAgICBb
d2ViVmlldyBjb25maWd1cmF0aW9uXS5wcmVmZXJlbmNlcy5fc2FmZUJyb3dzaW5nRW5hYmxlZCA9
IE5POwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0
bWwiXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBs
b2FkT2JzZXJ2ZXIgPSBhZG9wdE5TKFtbUFNPTkxvYWRpbmdPYnNlcnZlciBhbGxvY10gaW5pdF0p
OwpAQCAtNDQ5Myw3ICs0NDkzLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgTG9hZGluZ1N0YXRlQWZ0
ZXJQb2xpYwogCiAgICAgRVhQRUNUX0VRKDFVLCBsb2FkaW5nU3RhdGVDaGFuZ2VzLnNpemUoKSk7
CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRTdGFydFByb3Zpc2lvbmFsTG9hZCk7
CiAgICAgZGlkU3RhcnRQcm92aXNpb25hbExvYWQgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9FUSgx
VSwgbG9hZGluZ1N0YXRlQ2hhbmdlcy5zaXplKCkpOwpAQCAtNDUwMiw3ICs0NTAyLDcgQEAgVEVT
VChQcm9jZXNzU3dhcCwgTG9hZGluZ1N0YXRlQWZ0ZXJQb2xpYwogICAgIEVYUEVDVF9XS19TVFJF
UShAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCIsIFtbd2ViVmlldyBVUkxdIGFic29s
dXRlU3RyaW5nXSk7CiAgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgaXNMb2FkaW5nXSk7CiAKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShA
InBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCIsIFtbd2ViVmlldyBVUkxdIGFic29sdXRl
U3RyaW5nXSk7CkBAIC00NTQyLDE0ICs0NTQyLDE0IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE9wZW5l
ckxpbmtBZnRlckFQSUNvbnQKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOnVpRGVsZWdhdGUu
Z2V0KCldOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWlu
MS5odG1sIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRv
IHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkaWRDcmVhdGVXZWJWaWV3KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkaWRDcmVhdGVXZWJWaWV3KTsKICAgICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7
CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9FUShw
aWQxLCBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CkBAIC00NTU5LDcg
KzQ1NTksNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250CiAgICAg
ICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIiwg
aGFzT3BlbmVyKTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICAvLyBXZSBmb3JjZSBhIHByb2Nlcy1zd2FwIHZp
YSBjbGllbnQgQVBJLgpAQCAtNDU2OSw3ICs0NTY5LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgT3Bl
bmVyTGlua0FmdGVyQVBJQ29udAogCiAgICAgLy8gTmF2aWdhdGluZyBmcm9tIHRoZSBhYm92ZSBV
UkwgdG8gdGhpcyBVUkwgbm9ybWFsbHkgc2hvdWxkIG5vdCBwcm9jZXNzIHN3YXAuCiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMy5odG1sIl1dXTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC00NTg2LDcgKzQ1ODYsNyBAQCBURVNUKFByb2Nl
c3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250CiAgICAgICAgICAgICBoYXNPcGVuZXIgPSBb
aGFzT3BlbmVyU3RyaW5nIGlzRXF1YWxUb1N0cmluZzpAInRydWUiXTsKICAgICAgICAgICAgIGRv
bmUgPSB0cnVlOwogICAgICAgICB9XTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgICAg
IGRvbmUgPSBmYWxzZTsKICAgICB9IHdoaWxlIChoYXNPcGVuZXIgJiYgKC0tdGltZW91dCkpOwog
ICAgIEVYUEVDVF9GQUxTRShoYXNPcGVuZXIpOwpAQCAtNDU5NSw3ICs0NTk1LDcgQEAgVEVTVChQ
cm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udAogICAgICAgICBFWFBFQ1RfV0tfU1RS
RVEoQCJ0cnVlIiwgc2F2ZWRPcGVuZXJJc0Nsb3NlZCk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwog
ICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogfQogCkBAIC00NjE1
LDE0ICs0NjE1LDE0IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE9wZW5lckxpbmtBZnRlckFQSUNvbnQK
ICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOnVpRGVsZWdhdGUuZ2V0KCldOwogCiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIl1dXTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBf
d2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
aWRDcmVhdGVXZWJWaWV3KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDcmVhdGVX
ZWJWaWV3KTsKICAgICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9FUShwaWQxLCBbY3JlYXRlZFdlYlZp
ZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CkBAIC00NjMyLDcgKzQ2MzIsNyBAQCBURVNUKFBy
b2Nlc3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250CiAgICAgICAgIEVYUEVDVF9XS19TVFJF
UShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIiwgaGFzT3BlbmVyKTsKICAgICAg
ICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFs
c2U7CiAKICAgICAvLyBXZSBmb3JjZSBhIHByb2Nlcy1zd2FwIHZpYSBjbGllbnQgQVBJLgpAQCAt
NDY0Miw3ICs0NjQyLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29u
dAogCiAgICAgLy8gTmF2aWdhdGluZyBmcm9tIHRoZSBhYm92ZSBVUkwgdG8gdGhpcyBVUkwgbm9y
bWFsbHkgc2hvdWxkIG5vdCBwcm9jZXNzIHN3YXAuCiAgICAgW2NyZWF0ZWRXZWJWaWV3IGxvYWRS
ZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjMuaHRtbCJdXV07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDIgPSBbY3JlYXRlZFdlYlZpZXcgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTQ2NTMsNyArNDY1Myw3IEBAIFRFU1QoUHJvY2Vzc1N3
YXAsIE9wZW5lckxpbmtBZnRlckFQSUNvbnQKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZmFs
c2UiLCBoYXNPcGVuZXIpOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIH0KIApAQCAtNDY3OCw3ICs0Njc4LDcgQEAgc3Rh
dGljIHZvaWQgcnVuUHJvY2Vzc1N3YXBEdWVUb1JlbGF0ZWRXZQogICAgIE5TVVJMUmVxdWVzdCAq
cmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6cmVsYXRlZFZpZXdVUkxdOwog
ICAgIFt3ZWJWaWV3MSBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQxID0gW3dlYlZpZXcxIF93ZWJQcm9jZXNz
SWRlbnRpZmllcl07CkBAIC00NjkzLDcgKzQ2OTMsNyBAQCBzdGF0aWMgdm9pZCBydW5Qcm9jZXNz
U3dhcER1ZVRvUmVsYXRlZFdlCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6dGFyZ2V0VVJMXTsKICAgICBbd2ViVmlldzIgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMiA9IFt3
ZWJWaWV3MiBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtNDc0MCw3ICs0NzQwLDcgQEAgVEVT
VChQcm9jZXNzU3dhcCwgUmVsYXRlZFdlYlZpZXdCZWZvcmVXZQogICAgIE5TVVJMUmVxdWVzdCAq
cmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXTsKICAgICBbd2ViVmlldzEg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxz
ZTsKIAogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3MSBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpA
QCAtNDc0OCw3ICs0NzQ4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUmVsYXRlZFdlYlZpZXdCZWZv
cmVXZQogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiXV07CiAgICAg
W3dlYlZpZXcyIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDIgPSBbd2ViVmlldzIgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXTsKQEAgLTQ3ODksNyArNDc4OSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFJlbG9hZFJl
bGF0ZWRXZWJWaWV3QWYKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQu
b3JnL21haW4xLmh0bWwiXV07CiAgICAgW3dlYlZpZXcxIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDEgPSBb
d2ViVmlldzEgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTQ3OTcsNyArNDc5Nyw3IEBAIFRF
U1QoUHJvY2Vzc1N3YXAsIFJlbG9hZFJlbGF0ZWRXZWJWaWV3QWYKICAgICByZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93
d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIl1dOwogICAgIFt3ZWJWaWV3MiBsb2FkUmVxdWVzdDpy
ZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0
byBwaWQyID0gW3dlYlZpZXcyIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC00ODA5LDEwICs0
ODA5LDEwIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFJlbG9hZFJlbGF0ZWRXZWJWaWV3QWYKIAogICAg
IGtpbGwocGlkMSwgOSk7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENyYXNo
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDcmFzaCk7CiAgICAgZGlkQ3Jhc2gg
PSBmYWxzZTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogfQogCkBAIC00
ODMzLDcgKzQ4MzMsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBUZXJtaW5hdGVkU3VzcGVuZGVkUGFn
CiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1s
Il1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJv
Y2Vzc0lkZW50aWZpZXJdOwpAQCAtNDg0OCw3ICs0ODQ4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwg
VGVybWluYXRlZFN1c3BlbmRlZFBhZwogICAgICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl1dOwogICAg
ICAgICBbd2ViVmlldzIgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICAgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZG9uZSk7CiAgICAgICAgIGRvbmUgPSBmYWxzZTsKIAogICAgICAgICBhdXRvIHBpZDIgPSBbd2Vi
VmlldzIgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTQ4NTcsNyArNDg1Nyw3IEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIFRlcm1pbmF0ZWRTdXNwZW5kZWRQYWcKICAgICAgICAgcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8v
d3d3Lmdvb2dsZS5jb20vbWFpbjIuaHRtbCJdXTsKICAgICAgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6cmVxdWVzdF07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgICAgIGRvbmUgPSBm
YWxzZTsKIAogICAgICAgICBbd2ViVmlldzIgX2tpbGxXZWJDb250ZW50UHJvY2Vzc0FuZFJlc2V0
U3RhdGVdOwpAQCAtNDg3MSw3ICs0ODcxLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgVGVybWluYXRl
ZFN1c3BlbmRlZFBhZwogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbjIuaHRtbCJd
XTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQ0ID0gW3dlYlZpZXcgX3dlYlByb2Nl
c3NJZGVudGlmaWVyXTsKQEAgLTQ4OTYsMTMgKzQ4OTYsMTMgQEAgVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGVCYWNrQW5kRm9ydGgpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cu
d2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVz
dF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIHJlcXVlc3Qg
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNv
bjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBh
dXRvKiBiYWNrRm9yd2FyZExpc3QgPSBbd2ViVmlldyBiYWNrRm9yd2FyZExpc3RdOwpAQCAtNDkx
Miw3ICs0OTEyLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQW5kRm9ydGgpCiAg
ICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIsIFti
YWNrRm9yd2FyZExpc3QuYmFja0l0ZW0uVVJMIGFic29sdXRlU3RyaW5nXSk7CiAKICAgICBbd2Vi
VmlldyBnb0JhY2tdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAg
RVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIsIFtiYWNr
Rm9yd2FyZExpc3QuY3VycmVudEl0ZW0uVVJMIGFic29sdXRlU3RyaW5nXSk7CkBAIC00OTIxLDcg
KzQ5MjEsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUJhY2tBbmRGb3J0aCkKICAgICBF
WFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiLCBbYmFja0Zv
cndhcmRMaXN0LmZvcndhcmRJdGVtLlVSTCBhYnNvbHV0ZVN0cmluZ10pOwogCiAgICAgW3dlYlZp
ZXcgZ29Gb3J3YXJkXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAg
IEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCIsIFtiYWNr
Rm9yd2FyZExpc3QuY3VycmVudEl0ZW0uVVJMIGFic29sdXRlU3RyaW5nXSk7CkBAIC00OTQ5LDcg
KzQ5NDksNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBTd2FwT25Mb2FkSFRNTFN0cmluZykKICAgICBO
U1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXTsKQEAgLTQ5NTcsNyArNDk1Nyw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFN3YXBPbkxv
YWRIVE1MU3RyaW5nKQogICAgIE5TU3RyaW5nICpodG1sU3RyaW5nID0gQCI8aHRtbD48Ym9keT5z
dWJzdGl0dXRlRGF0YTwvYm9keT48L2h0bWw+IjsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmlu
ZzpodG1sU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBs
ZS5jb20iXV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1
dG8gcGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC00OTY5LDcgKzQ5
NjksNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBTd2FwT25Mb2FkSFRNTFN0cmluZykKICAgICAgICAg
RVhQRUNUX1dLX1NUUkVRKEAic3Vic3RpdHV0ZURhdGEiLCAoTlNTdHJpbmcgKilpbm5lclRleHQp
OwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRv
bmUgPSBmYWxzZTsKIH0KIApAQCAtNDk5MCw1MiArNDk5MCw1MiBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBFcGhlbWVyYWxXZWJTdG9yYWdlKQogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0
ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3dlYmtpdC5v
cmcvIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgZG9uZSA9IGZhbHNlOwogICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnYScs
J2InKSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCwgTlNFcnJvciAqKSB7CiAgICAgICAgIGRvbmUg
PSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBkb25lID0gZmFsc2U7CiAg
ICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LnNlc3Npb25TdG9yYWdlLnNl
dEl0ZW0oJ2IsJ2EnKSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCwgTlNFcnJvciAqKSB7CiAgICAg
ICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBkb25lID0g
ZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly9leGFtcGxlLmNvbS8iXV1dOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAKICAgICBkb25lID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBz
b246Ly93ZWJraXQub3JnLyJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIAogICAgIGRvbmUgPSBmYWxz
ZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cubG9jYWxTdG9yYWdl
LmdldEl0ZW0oJ2EnKSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKikg
ewogICAgICAgICBFWFBFQ1RfVFJVRShbQCJiIiBpc0VxdWFsVG9TdHJpbmc6cmVzdWx0XSk7CiAg
ICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgCiAgICAg
ZG9uZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGh0bWw+PGlmcmFt
ZSBzcmM9J3Bzb246Ly93d3cud2Via2l0Lm9yZy9pZnJhbWUuaHRtbCc+PC9pZnJhbWU+PC9odG1s
PiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly93d3cuZXhhbXBsZS5jb20v
Il1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBkb25lID0gZmFsc2U7CiAgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKCdhJykiIGNv
bXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICopIHsKICAgICAgICAgRVhQRUNU
X0ZBTFNFKFtAImIiIGlzRXF1YWxUb1N0cmluZzpyZXN1bHRdKTsKICAgICAgICAgZG9uZSA9IHRy
dWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIAogICAgIGRvbmUgPSBmYWxzZTsKICAgICBb
d2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRl
bSgnYicpIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqKSB7CiAgICAg
ICAgIEVYUEVDVF9GQUxTRShbQCJhIiBpc0VxdWFsVG9TdHJpbmc6cmVzdWx0XSk7CiAgICAgICAg
IGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKIFRFU1QoUHJvY2Vz
c1N3YXAsIFVzZVByZXdhcm1lZFByb2Nlc3NBZnRlclRlcm1pbmF0aW5nTmV0d29ya1Byb2Nlc3Mp
CkBAIC01MDU2LDcgKzUwNTYsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBVc2VQcmV3YXJtZWRQcm9j
ZXNzQWZ0CiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNwaW5S
dW5Mb29wKDEpOwpAQCAtNTA2OCw3ICs1MDY4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgVXNlUHJl
d2FybWVkUHJvY2Vzc0FmdAogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUyIiB3aXRo
RXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMi
XV07CiAgICAgW3dlYlZpZXcyIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAKQEAgLTUwOTcsNyArNTA5Nyw3IEBAIFRFU1QoUHJv
Y2Vzc1N3YXAsIFVzZVNlc3Npb25Db29raWVzQWZ0ZXIKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVl
c3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJTZXRTZXNzaW9uQ29va2llIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxz
ZTsKIAogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBA
IC01MTA2LDcgKzUxMDYsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBVc2VTZXNzaW9uQ29va2llc0Fm
dGVyCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiXV07CiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmll
cl07CkBAIC01MTE2LDEzICs1MTE2LDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFVzZVNlc3Npb25D
b29raWVzQWZ0ZXIKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiR2V0U2Vzc2lvbkNvb2tpZSIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDMgPSBbd2ViVmlldyBfd2Vi
UHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9ORShwaWQyLCBwaWQzKTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZh
bHNlOwogCiAgICAgRVhQRUNUX0VRKDF1LCBbcmVjZWl2ZWRNZXNzYWdlcyBjb3VudF0pOwpAQCAt
NTE2Myw3ICs1MTYzLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgVXNlU2Vzc2lvbkNvb2tpZXNBZnRl
cgogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIlNldFNlc3Npb25Db29r
aWUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQxID0gW3dlYlZpZXcg
X3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTUxNzIsNyArNTE3Miw3IEBAIFRFU1QoUHJvY2Vz
c1N3YXAsIFVzZVNlc3Npb25Db29raWVzQWZ0ZXIKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUu
Y29tL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQyID0gW3dl
YlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTUxODIsMTQgKzUxODIsMTQgQEAgVEVT
VChQcm9jZXNzU3dhcCwgVXNlU2Vzc2lvbkNvb2tpZXNBZnRlcgogICAgIHJlcXVlc3QgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJHZXRTZXNzaW9uQ29va2llIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAg
IGF1dG8gcGlkMyA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAgICAgRVhQRUNU
X05FKHBpZDIsIHBpZDMpOwogICAgIEVYUEVDVF9ORShwaWQxLCBwaWQzKTsKIAotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNl
OwogCiAgICAgRVhQRUNUX0VRKDF1LCBbcmVjZWl2ZWRNZXNzYWdlcyBjb3VudF0pOwpAQCAtNTIx
NCw3ICs1MjE0LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUHJvY2Vzc1N3YXBJblJlbGF0ZWRWaQog
ICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiXV07
CiAgICAgW3dlYlZpZXcxIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIGFwcGxlUElEID0gW3dlYlZpZXcxIF93ZWJQ
cm9jZXNzSWRlbnRpZmllcl07CkBAIC01MjMxLDcgKzUyMzEsNyBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBQcm9jZXNzU3dhcEluUmVsYXRlZFZpCiAKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9y
Zy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcyIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byB3ZWJraXRQSUQgPSBb
d2ViVmlldzIgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTUyNjgsNyArNTI2OCw3IEBAIFRF
U1QoUHJvY2Vzc1N3YXAsIFRlcm1pbmF0ZVByb2Nlc3NBZnRlclAKIAogICAgIE5TVVJMUmVxdWVz
dCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNl
OwogCiAgICAgYXV0byB3ZWJraXRQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJd
OwpAQCAtNTI3Niw3ICs1Mjc2LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgVGVybWluYXRlUHJvY2Vz
c0FmdGVyUAogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwogCiAg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfTkUod2Via2l0UElELCBbd2ViVmlldyBfd2ViUHJv
Y2Vzc0lkZW50aWZpZXJdKTsKQEAgLTUyODQsMTIgKzUyODQsMTIgQEAgVEVTVChQcm9jZXNzU3dh
cCwgVGVybWluYXRlUHJvY2Vzc0FmdGVyUAogICAgIHdlYlByb2Nlc3NUZXJtaW5hdGVkID0gZmFs
c2U7CiAgICAga2lsbChbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdLCA5KTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmd2ViUHJvY2Vzc1Rlcm1pbmF0ZWQpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKHdlYlByb2Nlc3NUZXJtaW5hdGVkKTsKIAogICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnNwaW5SdW5Mb29wKDEpOwogCiAgICAgW3dlYlZpZXcgcmVsb2FkXTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIH0KIApAQCAtNTMxMiw3ICs1MzEy
LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU3dhcFdpdGhHZXN0dXJlQ29udHJvbAogICAgICAgICBO
U1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwogICAg
ICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgICAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKICAgICAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgICAgIC8vIEVuc3VyZSBhIFZpZXdH
ZXN0dXJlQ29udHJvbGxlciBpcyBjcmVhdGVkLgpAQCAtNTMyNCw3ICs1MzI0LDcgQEAgVEVTVChQ
cm9jZXNzU3dhcCwgU3dhcFdpdGhHZXN0dXJlQ29udHJvbAogICAgICAgICByZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93
d3cuZ29vZ2xlLmNvbS9tYWluLmh0bWwiXV07CiAgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgICAgICBkb25lID0gZmFs
c2U7CiAgICAgfQogfQpAQCAtNTM1NSw3ICs1MzU1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jh
c2hXaXRoR2VzdHVyZUNvbnRybwogICAgICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3
dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwogICAgICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpy
ZXF1ZXN0XTsKIAotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
ICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICAgICAgZG9uZSA9IGZhbHNl
OwogCiAgICAgICAgIC8vIEVuc3VyZSBhIFZpZXdHZXN0dXJlQ29udHJvbGxlciBpcyBjcmVhdGVk
LgpAQCAtNTM2NywxMiArNTM2NywxMiBAQCBURVNUKFByb2Nlc3NTd2FwLCBDcmFzaFdpdGhHZXN0
dXJlQ29udHJvCiAgICAgICAgIHdlYlByb2Nlc3NUZXJtaW5hdGVkID0gZmFsc2U7CiAgICAgICAg
IGtpbGwoW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSwgOSk7CiAKLSAgICAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZ3ZWJQcm9jZXNzVGVybWluYXRlZCk7CisgICAgICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKHdlYlByb2Nlc3NUZXJtaW5hdGVkKTsKIAogICAgICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpzcGluUnVuTG9vcCgxKTsKIAogICAgICAgICBbd2ViVmlldyBy
ZWxvYWRdOwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgICAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICAgICAgZG9uZSA9IGZhbHNlOwog
ICAgIH0KIH0KQEAgLTU0MDIsMTMgKzU0MDIsMTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdh
dGVDcm9zc09yaWdpbldpdAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtp
dC5vcmcvbWFpbjEuaHRtbCJdXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3Rd
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkaWRDcmVhdGVXZWJWaWV3KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkaWRDcmVhdGVXZWJWaWV3KTsKICAgICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7CiAK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9FUShbd2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdLCBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXSk7CkBAIC01NDIyLDE0ICs1NDIyLDE0IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5h
dmlnYXRlQ3Jvc3NPcmlnaW5XaXQKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAidHJ1ZSIsIGhh
c09wZW5lcik7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgLy8gTmF2aWdhdGUgY3Jvc3Mtb3JpZ2luLgogICAg
IHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwogCiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7
CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwi
LCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOwpAQCAtNTQzOSw3ICs1NDM5LDcgQEAg
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVDcm9zc09yaWdpbldpdAogICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCJ0cnVlIiwgaGFzT3BlbmVyKTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAg
fV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICAvLyBXZSBzaG91
bGQgbm90IGhhdmUgcHJvY2Vzcy1zd2FwcGVkIHNpbmNlIGFuIGF1eGlsaWFyeSB3aW5kb3cgaGFz
IGFuIG9wZW5lciBsaW5rIHRvIHVzLgpAQCAtNTQ3OSwxNiArNTQ3OSwxNiBAQCBURVNUKFByb2Nl
c3NTd2FwLCBOYXZpZ2F0ZUNyb3NzT3JpZ2luV2l0CiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0
ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBz
b246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIl1dOwogCiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAg
ICAvLyBPcGVucyAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiIGluIGFuIGF1eGls
aWFyeSB3aW5kb3cuCiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAidGVzdExpbmsu
Y2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZGlkQ3JlYXRlV2ViVmlldyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZGlkQ3JlYXRlV2ViVmlldyk7CiAgICAgZGlkQ3JlYXRlV2ViVmlldyA9IGZhbHNlOwogCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEoW3dlYlZpZXcg
X3dlYlByb2Nlc3NJZGVudGlmaWVyXSwgW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl0pOwpAQCAtNTUwMCwxNCArNTUwMCwxNCBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
ZUNyb3NzT3JpZ2luV2l0CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic2F2ZU9w
ZW5lZSgpIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCwgTlNFcnJvciAqZXJyb3IpIHsKICAg
ICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0g
ZmFsc2U7CiAKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJvcGVuZWUubG9jYXRp
b24uaHJlZiIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgb3BlbmVlVVJMLCBOU0Vycm9yICpl
cnJvcikgewogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LndlYmtpdC5vcmcv
bWFpbjIuaHRtbCIsIG9wZW5lZVVSTCk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgLy8gTmV3IHdpbmRvdyBz
aG91bGQgaGF2ZSBhbiBvcGVuZXIuCkBAIC01NTE1LDEzICs1NTE1LDEzIEBAIFRFU1QoUHJvY2Vz
c1N3YXAsIE5hdmlnYXRlQ3Jvc3NPcmlnaW5XaXQKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAi
dHJ1ZSIsIGhhc09wZW5lcik7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgLy8gTmF2aWdhdGUgYXV4aWxpYXJ5
IHdpbmRvdyBjcm9zcy1vcmlnaW4uCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWlu
Lmh0bWwiXV07CiAgICAgW2NyZWF0ZWRXZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAi
cHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgW1tjcmVhdGVkV2ViVmlldyBVUkxdIGFi
c29sdXRlU3RyaW5nXSk7CkBAIC01NTMxLDEzICs1NTMxLDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IE5hdmlnYXRlQ3Jvc3NPcmlnaW5XaXQKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAidHJ1ZSIs
IGhhc09wZW5lcik7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9u
ZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIFtjcmVhdGVkV2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJ3aW5kb3cub3BlbmVyLmNsb3NlZCA/ICd0cnVlJyA6ICdmYWxzZSciIGNvbXBsZXRp
b25IYW5kbGVyOiBbJl0gKGlkIG9wZW5lcklzQ2xvc2VkLCBOU0Vycm9yICplcnJvcikgewogICAg
ICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJmYWxzZSIsIG9wZW5lcklzQ2xvc2VkKTsKICAgICAgICAg
ZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7
CiAKICAgICAvLyBXZSBzaG91bGQgbm90IGhhdmUgcHJvY2Vzcy1zd2FwcGVkIHNpbmNlIHRoZSBh
dXhpbGlhcnkgd2luZG93IGhhcyBhbiBvcGVuZXIuCkBAIC01NTQ3LDcgKzU1NDcsNyBAQCBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUNyb3NzT3JpZ2luV2l0CiAgICAgW2NyZWF0ZWRXZWJWaWV3
IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5vcGVuZXIgPSBudWxsIiBjb21wbGV0aW9uSGFu
ZGxlcjogWyZdIChpZCwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAg
ICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICAvLyBBdXhp
bGlhcnkgd2luZG93IHNob3VsZCBub3QgaGF2ZSBhbiBvcGVuZXIuCkBAIC01NTU1LDEzICs1NTU1
LDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQ3Jvc3NPcmlnaW5XaXQKICAgICAgICAg
RVhQRUNUX1dLX1NUUkVRKEAiZmFsc2UiLCBoYXNPcGVuZXIpOwogICAgICAgICBkb25lID0gdHJ1
ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIC8v
IE5hdmlnYXRlIG9wZW5lZSBjcm9zcy1vcmlnaW4gYWdhaW4uCiAgICAgcmVxdWVzdCA9IFtOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3
Lmdvb2dsZS5jb20vbWFpbi5odG1sIl1dOwogICAgIFtjcmVhdGVkV2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIC8v
IEF1eGlsaWFyeSB3aW5kb3cgc2hvdWxkIG5vdCBoYXZlIGFuIG9wZW5lci4KQEAgLTU1NjksNyAr
NTU2OSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQ3Jvc3NPcmlnaW5XaXQKICAgICAg
ICAgRVhQRUNUX1dLX1NUUkVRKEAiZmFsc2UiLCBoYXNPcGVuZXIpOwogICAgICAgICBkb25lID0g
dHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAg
IEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cuZ29vZ2xlLmNvbS9tYWluLmh0bWwiLCBbW2Ny
ZWF0ZWRXZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKQEAgLTU1ODAsNyArNTU4MCw3IEBA
IFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQ3Jvc3NPcmlnaW5XaXQKICAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKEAiZmFsc2UiLCBvcGVuZWVJc0Nsb3NlZCk7CiAgICAgICAgIGRvbmUgPSB0cnVl
OwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogfQogCkBAIC01
NjA4LDE2ICs1NjA4LDE2IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEdvQmFja1RvU3VzcGVuZGVkUGFn
ZVcKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0
bWwiXV07CiAKICAgICBbd2ViVmlldzEgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCIsIFtbd2ViVmlldzEgVVJMXSBhYnNvbHV0ZVN0cmlu
Z10pOwogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3MSBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDcmVhdGVXZWJWaWV3KTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDcmVhdGVXZWJWaWV3KTsKICAgICBkaWRDcmVhdGVX
ZWJWaWV3ID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAog
ICAgIC8vIE5ldyBXS1dlYlZpZXcgaGFzIG5vdyBuYXZpZ2F0ZWQgdG8gd2Via2l0Lm9yZy4KQEAg
LTU2MjcsNyArNTYyNyw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEdvQmFja1RvU3VzcGVuZGVkUGFn
ZVcKIAogICAgIC8vIENsaWNrIGxpbmsgaW4gbmV3IFdLV2ViVmlldyBzbyB0aGF0IGl0IG5hdmln
YXRlcyBjcm9zcy1zaXRlIHRvIGFwcGxlLmNvbS4KICAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0OkAidGVzdExpbmsuY2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIC8vIE5ldyBXS1dlYlZp
ZXcgaGFzIG5vdyBuYXZpZ2F0ZWQgdG8gYXBwbGUuY29tLgpAQCAtNTYzNyw3ICs1NjM3LDcgQEAg
VEVTVChQcm9jZXNzU3dhcCwgR29CYWNrVG9TdXNwZW5kZWRQYWdlVwogCiAgICAgLy8gTmF2aWdh
dGUgYmFjayB0byB0aGUgc3VzcGVuZGVkIHBhZ2UgKHNob3VsZCB1c2UgdGhlIHBhZ2UgY2FjaGUp
LgogICAgIFtjcmVhdGVkV2ViVmlldyBnb0JhY2tdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNl
aXZlZE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwogCiAgICAgRVhQRUNU
X1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiLCBbW2NyZWF0ZWRX
ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKQEAgLTU2NDcsNyArNTY0Nyw3IEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIEdvQmFja1RvU3VzcGVuZGVkUGFnZVcKICAgICAvLyBEbyBhIGZyYWdtZW50
IG5hdmlnYXRpb24gaW4gdGhlIG9yaWdpbmFsIFdLV2ViVmlldyBhbmQgbWFrZSBzdXJlIHRoaXMg
ZG9lcyBub3QgY3Jhc2guCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRt
bCN0ZXN0TGluayJdXTsKICAgICBbd2ViVmlldzEgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJw
c29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCN0ZXN0TGluayIsIFtbd2ViVmlldzEgVVJM
XSBhYnNvbHV0ZVN0cmluZ10pOwpAQCAtNTY4OCw3ICs1Njg4LDcgQEAgc3RhdGljIHVuc2lnbmVk
IHdhaXRVbnRpbFNjcm9sbFBvc2l0aW9uSQogICAgICAgICAgICAgc2Nyb2xsUG9zaXRpb24gPSBb
cmVzdWx0IGludGVnZXJWYWx1ZV07CiAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKICAgICAgICAg
fV07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgICAgICBkb25lID0gZmFsc2U7CiAgICAg
fSB3aGlsZSAoIXNjcm9sbFBvc2l0aW9uKTsKIApAQCAtNTcxMiwxMyArNTcxMiwxMyBAQCBURVNU
KFByb2Nlc3NTd2FwLCBTY3JvbGxQb3NpdGlvblJlc3RvcmF0CiAKICAgICBOU1VSTFJlcXVlc3Qg
KnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsK
IAogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInNjcm9sbCgwLCA1MDAwKSIgY29t
cGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgewogICAgICAg
ICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxz
ZTsKIAogICAgIGRvIHsKQEAgLTU3MjcsMTggKzU3MjcsMTggQEAgVEVTVChQcm9jZXNzU3dhcCwg
U2Nyb2xsUG9zaXRpb25SZXN0b3JhdAogCiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0
OkAidGVzdExpbmsuY2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6IG5pbF07CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNj
cmlwdDpAIndpbmRvdy5zY3JvbGxZIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQs
IE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAgIEVYUEVDVF9FUSgwLCBbcmVzdWx0IGludGVnZXJW
YWx1ZV0pOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwog
ICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFt3ZWJWaWV3IGdvQmFja107Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHNjcm9sbFBvc2l0aW9uID0gd2FpdFVu
dGlsU2Nyb2xsUG9zaXRpb25Jc1Jlc3RvcmVkKHdlYlZpZXcuZ2V0KCkpOwpAQCAtNTc0Nyw3ICs1
NzQ3LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2Nyb2xsUG9zaXRpb25SZXN0b3JhdAogICAgIFt3
ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInNjcm9sbCgwLCA0MDAwKSIgY29tcGxldGlvbkhh
bmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgewogICAgICAgICBkb25lID0g
dHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAg
IGRvIHsKQEAgLTU3NTYsMTggKzU3NTYsMTggQEAgVEVTVChQcm9jZXNzU3dhcCwgU2Nyb2xsUG9z
aXRpb25SZXN0b3JhdAogCiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAidGVzdExp
bmsuY2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6IG5pbF07CiAKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwog
ICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndp
bmRvdy5zY3JvbGxZIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3Ig
KmVycm9yKSB7CiAgICAgICAgIEVYUEVDVF9FUSgwLCBbcmVzdWx0IGludGVnZXJWYWx1ZV0pOwog
ICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAogICAgIFt3ZWJWaWV3IGdvQmFja107Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiAKICAgICBzY3JvbGxQb3NpdGlvbiA9IHdhaXRVbnRpbFNjcm9sbFBvc2l0
aW9uSXNSZXN0b3JlZCh3ZWJWaWV3LmdldCgpKTsKQEAgLTU3OTgsNyArNTc5OCw3IEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIENvbnRlbnRCbG9ja2luZ0FmdGVyUHIKICAgICBbW1dLQ29udGVudFJ1bGVM
aXN0U3RvcmUgZGVmYXVsdFN0b3JlXSByZW1vdmVDb250ZW50UnVsZUxpc3RGb3JJZGVudGlmaWVy
OkAiQ29udGVudEJsb2NraW5nQWZ0ZXJQcm9jZXNzU3dhcEV4dGVuc2lvbiIgY29tcGxldGlvbkhh
bmRsZXI6XihOU0Vycm9yICplcnJvcikgewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwpAQCAtNTgx
Nyw3ICs1ODE3LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ29udGVudEJsb2NraW5nQWZ0ZXJQcgog
CiAgICAgICAgIGRvbmVDb21waWxpbmcgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZUNvbXBpbGluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZUNvbXBpbGluZyk7CiAKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNj
aGVtZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5n
OkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOmNvbnRlbnRCbG9ja2lu
Z0FmdGVyUHJvY2Vzc1N3YXBUZXN0Qnl0ZXNdOwpAQCAtNTgzMiw3ICs1ODMyLDcgQEAgVEVTVChQ
cm9jZXNzU3dhcCwgQ29udGVudEJsb2NraW5nQWZ0ZXJQcgogCiAgICAgTlNVUkxSZXF1ZXN0ICpy
ZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cud2FzU3ViZnJhbWVMb2Fk
ZWQgPyAnRkFJTCcgOiAnUEFTUyciIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwg
TlNFcnJvciAqZXJyb3IpIHsKQEAgLTU4NDAsMTIgKzU4NDAsMTIgQEAgVEVTVChQcm9jZXNzU3dh
cCwgQ29udGVudEJsb2NraW5nQWZ0ZXJQcgogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJQQVNT
IiwgYmxvY2tTdWNjZXNzKTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUu
Y29tL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFt3ZWJWaWV3IGV2YWx1YXRl
SmF2YVNjcmlwdDpAIndpbmRvdy53YXNTdWJmcmFtZUxvYWRlZCA/ICdGQUlMJyA6ICdQQVNTJyIg
Y29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgewpAQCAt
NTg1MywxMSArNTg1MywxMSBAQCBURVNUKFByb2Nlc3NTd2FwLCBDb250ZW50QmxvY2tpbmdBZnRl
clByCiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAIlBBU1MiLCBibG9ja1N1Y2Nlc3MpOwogICAg
ICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBm
YWxzZTsKIAogICAgIFt3ZWJWaWV3IGdvQmFja107Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25l
ID0gZmFsc2U7CiAKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cud2Fz
U3ViZnJhbWVMb2FkZWQgPyAnRkFJTCcgOiAnUEFTUyciIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0g
KGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKQEAgLTU4NjUsMTEgKzU4NjUsMTEgQEAgVEVT
VChQcm9jZXNzU3dhcCwgQ29udGVudEJsb2NraW5nQWZ0ZXJQcgogICAgICAgICBFWFBFQ1RfV0tf
U1RSRVEoQCJQQVNTIiwgYmxvY2tTdWNjZXNzKTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAg
fV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBbd2ViVmlldyBn
b0ZvcndhcmRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgW3dl
YlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93Lndhc1N1YmZyYW1lTG9hZGVkID8gJ0ZB
SUwnIDogJ1BBU1MnIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3Ig
KmVycm9yKSB7CkBAIC01ODc3LDEzICs1ODc3LDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENvbnRl
bnRCbG9ja2luZ0FmdGVyUHIKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiUEFTUyIsIGJsb2Nr
U3VjY2Vzcyk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgW1tXS0NvbnRlbnRSdWxlTGlzdFN0b3JlIGRlZmF1
bHRTdG9yZV0gcmVtb3ZlQ29udGVudFJ1bGVMaXN0Rm9ySWRlbnRpZmllcjpAIkNvbnRlbnRCbG9j
a2luZ0FmdGVyUHJvY2Vzc1N3YXBFeHRlbnNpb24iIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJv
ciAqZXJyb3IpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAKQEAgLTU4OTgsNyArNTg5OCw3IEBAIFRFU1QoUHJv
Y2Vzc1N3YXAsIENvbnRlbnRFeHRlbnNpb25CbG9ja3MKICAgICBbW1dLQ29udGVudFJ1bGVMaXN0
U3RvcmUgZGVmYXVsdFN0b3JlXSByZW1vdmVDb250ZW50UnVsZUxpc3RGb3JJZGVudGlmaWVyOkAi
Q29udGVudEJsb2NraW5nQWZ0ZXJQcm9jZXNzU3dhcEV4dGVuc2lvbiIgY29tcGxldGlvbkhhbmRs
ZXI6XihOU0Vycm9yICplcnJvcikgewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOwpAQCAtNTkyMCw3
ICs1OTIwLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ29udGVudEV4dGVuc2lvbkJsb2NrcwogCiAg
ICAgICAgIGRvbmVDb21waWxpbmcgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZUNvbXBpbGluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZG9uZUNvbXBpbGluZyk7CiAKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbUFNPTlNjaGVt
ZSBhbGxvY10gaW5pdF0pOwogICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9tVVJMU3RyaW5nOkAi
cHNvbjovL3d3dy5hcHBsZS5jb20vYmxvY2ttZS5odG1sIiB0b0RhdGE6bm90aWZ5TG9hZGVkQnl0
ZXNdOwpAQCAtNTkzMiwyMyArNTkzMiwyMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDb250ZW50RXh0
ZW5zaW9uQmxvY2tzCiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQu
b3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIHJlY2VpdmVkTWVzc2FnZSA9
IGZhbHNlOwogICAgIGZhaWxlZCA9IGZhbHNlOwogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5j
b20vYmxvY2ttZS5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmFpbGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChmYWlsZWQpOwogICAgIGZhaWxlZCA9IGZhbHNlOwogICAgIEVYUEVDVF9GQUxT
RShyZWNlaXZlZE1lc3NhZ2UpOwogCiAgICAgW3dlYlZpZXcgX2xvYWRBbHRlcm5hdGVIVE1MU3Ry
aW5nOkAiQmxvY2tlZCIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImRhdGE6dGV4dC9o
dG1sLCJdIGZvclVucmVhY2hhYmxlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3
dy5hcHBsZS5jb20vYmxvY2ttZS5odG1sIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogCiAgICAgW3dlYlZpZXcgX3JlbG9hZFdpdGhvdXRDb250ZW50QmxvY2tlcnNdOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0ZBTFNFKGZh
aWxlZCk7CkBAIC01OTU4LDcgKzU5NTgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDb250ZW50RXh0
ZW5zaW9uQmxvY2tzCiAgICAgW1tXS0NvbnRlbnRSdWxlTGlzdFN0b3JlIGRlZmF1bHRTdG9yZV0g
cmVtb3ZlQ29udGVudFJ1bGVMaXN0Rm9ySWRlbnRpZmllcjpAIkNvbnRlbnRCbG9ja2luZ0FmdGVy
UHJvY2Vzc1N3YXBFeHRlbnNpb24iIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqZXJyb3Ip
IHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiB9CiAKQEAgLTYwMjQsMTcgKzYwMjQsMTcgQEAgVEVTVChQcm9jZXNzU3dh
cCwgR2V0VXNlck1lZGlhQ2FwdHVyZVN0YQogICAgIGF1dG8gcmVxdWVzdCA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtp
dC5vcmcvZ2V0VXNlck1lZGlhLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVx
dWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNDYXB0dXJpbmcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGlzQ2FwdHVyaW5nKTsKIAogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CiAKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUub3JnL3Rlc3QuaHRt
bCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9u
ZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQyID0gW3dlYlZpZXcgX3dlYlBy
b2Nlc3NJZGVudGlmaWVyXTsKQEAgLTYwNDQsNyArNjA0NCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IEdldFVzZXJNZWRpYUNhcHR1cmVTdGEKIAogICAgIGlzQ2FwdHVyaW5nID0gZmFsc2U7CiAgICAg
W3dlYlZpZXcgZ29CYWNrXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzQ2FwdHVy
aW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0NhcHR1cmluZyk7CiAgICAgaXND
YXB0dXJpbmcgPSBmYWxzZTsKIH0KIApAQCAtNjA5MCw3ICs2MDkwLDcgQEAgVEVTVChQcm9jZXNz
U3dhcCwgUGFnZU92ZXJsYXlMYXllclBlcnNpcwogICAgIGF1dG8gcmVxdWVzdCA9IFtOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3Lndl
YmtpdC5vcmcvcGFnZS1vdmVybGF5Il1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBbd2ViVmll
dyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CkBAIC02MTA0LDcgKzYxMDQsNyBAQCBU
RVNUKFByb2Nlc3NTd2FwLCBQYWdlT3ZlcmxheUxheWVyUGVyc2lzCiAgICAgcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8v
d3d3LmFwcGxlLmNvbS9wYWdlLW92ZXJsYXkiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFt3
ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKQEAgLTYxMzgsMTkgKzYxMzgs
MTkgQEAgVEVTVChQcm9jZXNzU3dhcCwgUXVpY2tMb29rUmVxdWVzdHNQYXNzdwogICAgIGF1dG8q
IHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNl
OwogCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInBhc3N3b3JkLXByb3RlY3RlZCIgd2l0aEV4
dGVuc2lvbjpAInBhZ2VzIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
XTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZGlkU3RhcnRRdWlja0xvb2tMb2FkKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkaWRTdGFydFF1aWNrTG9va0xvYWQpOwogICAgIGRpZFN0YXJ0UXVpY2tMb29r
TG9hZCA9IGZhbHNlOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZXF1ZXN0ZWRR
dWlja0xvb2tQYXNzd29yZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVxdWVzdGVk
UXVpY2tMb29rUGFzc3dvcmQpOwogICAgIHJlcXVlc3RlZFF1aWNrTG9va1Bhc3N3b3JkID0gZmFs
c2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEZpbmlzaFF1aWNrTG9va0xv
YWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEZpbmlzaFF1aWNrTG9va0xvYWQp
OwogICAgIGRpZEZpbmlzaFF1aWNrTG9va0xvYWQgPSBmYWxzZTsKIH0KIApAQCAtNjE5NSw3ICs2
MTk1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUGFzc01pbmltdW1EZXZpY2VXaWR0aAogICAgIGF1
dG8qIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZh
bHNlOwogCiAgICAgYm9vbCBmaW5pc2hlZFJ1bm5pbmdTY3JpcHQgPSBmYWxzZTsKQEAgLTYyMDQs
NyArNjIwNCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFBhc3NNaW5pbXVtRGV2aWNlV2lkdGgKICAg
ICAgICAgRVhQRUNUX0VRKDEwMjQsIFt3aWR0aCBpbnRWYWx1ZV0pOwogICAgICAgICBmaW5pc2hl
ZFJ1bm5pbmdTY3JpcHQgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZmluaXNoZWRSdW5uaW5nU2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChmaW5pc2hlZFJ1bm5pbmdTY3JpcHQpOwogfQogCiAjZW5kaWYKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvdmlzaW9uYWxVUkxOb3RDaGFuZ2UubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm92aXNp
b25hbFVSTE5vdENoYW5nZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm92aXNpb25hbFVSTE5vdENoYW5nZS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNDcsMTIgKzQ3LDEyIEBAIFRFU1QoV0tXZWJWaWV3LCBQcm92aXNpb25hbFVS
TE5vdENoYW5nZSkKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlv
bkRlbGVnYXRlLmdldCgpXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJkYXRhOnRleHQvaHRtbCxz
dGFydCJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAgaXNEb25lID0gZmFsc2U7CiAKICAg
ICBOU1VSTCAqaW52YWxpZFVSTCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly9hQC9i
Il07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDppbnZhbGlkVVJMXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAgaXNEb25lID0gZmFsc2U7
CiAKICAgICBFWFBFQ1RfU1RSRVEoW3dlYlZpZXcgVVJMXS5hYnNvbHV0ZVN0cmluZy5VVEY4U3Ry
aW5nLCAiZGF0YTp0ZXh0L2h0bWwsc3RhcnQiKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUHJveHkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm94eS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm94eS5tbQkod29ya2luZyBjb3B5
KQpAQCAtODAsNyArODAsNyBAQCBURVNUKFdlYktpdCwgSFRUUFNQcm94eSkKICAgICBbd2ViVmll
dyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJo
dHRwczovL2V4YW1wbGUuY29tLyJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWNlaXZlZEFsZXJ0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZEFsZXJ0
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9RdWlja0xvb2subW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9RdWlja0xvb2subW0JKHJldmlzaW9u
IDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUXVpY2tM
b29rLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNDQsNyArMjQ0LDcgQEAgc3RhdGljIFJldGFpblB0
cjxXS1dlYlZpZXc+IHJ1blRlc3QoUXVpYwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOwogCiAgICAgaXNEb25lID0gZmFsc2U7Ci0gICAgVXRpbDo6cnVuKCZpc0RvbmUpOworICAg
IHJ1blVudGlsKGlzRG9uZSk7CiAKICAgICByZXR1cm4gd2ViVmlldzsKIH0KQEAgLTM0NSw3ICsz
NDUsNyBAQCBURVNUKFF1aWNrTG9vaywgRG93bmxvYWRSZXNwb25zZUJlZm9yZUxvCiAgICAgRVhQ
RUNUX0ZBTFNFKFtkZWxlZ2F0ZSBkaWRTdGFydFF1aWNrTG9va0xvYWRdKTsKICAgICBFWFBFQ1Rf
VFJVRShbZGVsZWdhdGUgZGlkRmFpbE5hdmlnYXRpb25dKTsKIAotICAgIFV0aWw6OnJ1bigmZG93
bmxvYWRJc0RvbmUpOworICAgIHJ1blVudGlsKGRvd25sb2FkSXNEb25lKTsKICAgICBbZGVsZWdh
dGUgdmVyaWZ5RG93bmxvYWRdOwogfQogCkBAIC00MDgsNyArNDA4LDcgQEAgVEVTVChRdWlja0xv
b2ssIFJlbG9hZEFuZFNhbWVEb2N1bWVudE5hdgogCiAgICAgaXNEb25lID0gZmFsc2U7CiAgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LmxvY2F0aW9uLnJlbG9hZCgpIiBj
b21wbGV0aW9uSGFuZGxlcjpuaWxdOwotICAgIFV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBydW5V
bnRpbChpc0RvbmUpOwogICAgIEVYUEVDVF9GQUxTRShbZGVsZWdhdGUgZGlkRmFpbE5hdmlnYXRp
b25dKTsKICAgICBFWFBFQ1RfVFJVRShbZGVsZWdhdGUgZGlkRmluaXNoTmF2aWdhdGlvbl0pOwog
ICAgIEVYUEVDVF9UUlVFKFtkZWxlZ2F0ZSBkaWRGaW5pc2hRdWlja0xvb2tMb2FkXSk7CkBAIC00
MjAsNyArNDIwLDcgQEAgVEVTVChRdWlja0xvb2ssIFJlbG9hZEFuZFNhbWVEb2N1bWVudE5hdgog
ICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCIjdGVzdCIsIHZhbHVlKTsKICAgICAgICAgaXNEb25l
ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgcnVuVW50aWwo
aXNEb25lKTsKIH0KIAogQGludGVyZmFjZSBRdWlja0xvb2tGcmFtZUxvYWREZWxlZ2F0ZSA6IE5T
T2JqZWN0IDxXZWJGcmFtZUxvYWREZWxlZ2F0ZT4KQEAgLTQ1Miw3ICs0NTIsNyBAQCBURVNUKFF1
aWNrTG9vaywgTGVnYWN5UXVpY2tMb29rQ29udGVudCkKICAgICBXZWJGcmFtZSAqbWFpbkZyYW1l
ID0gW3dlYlZpZXcgbWFpbkZyYW1lXTsKIAogICAgIFttYWluRnJhbWUgbG9hZFJlcXVlc3Q6W05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpwYWdlc0RvY3VtZW50VVJMXV07Ci0gICAgVXRpbDo6
cnVuKCZpc0RvbmUpOworICAgIHJ1blVudGlsKGlzRG9uZSk7CiAgICAgV2ViVGhyZWFkTG9jaygp
OwogCiAgICAgTlNVSW50ZWdlciBleHBlY3RlZEZpbGVTaXplOwpAQCAtNDcyLDcgKzQ3Miw3IEBA
IFRFU1QoUXVpY2tMb29rLCBMZWdhY3lRdWlja0xvb2tDb250ZW50KQogCiAgICAgaXNEb25lID0g
ZmFsc2U7CiAgICAgW21haW5GcmFtZSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6YmxhbmsiXV1dOwotICAgIFV0aWw6
OnJ1bigmaXNEb25lKTsKKyAgICBydW5VbnRpbChpc0RvbmUpOwogICAgIFdlYlRocmVhZExvY2so
KTsKIAogICAgIEVYUEVDVF9OVUxMKG1haW5GcmFtZS5kYXRhU291cmNlLl9xdWlja0xvb2tDb250
ZW50KTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVtb3Rl
T2JqZWN0UmVnaXN0cnkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9SZW1vdGVPYmplY3RSZWdpc3RyeS5tbQkocmV2aXNpb24gMjQ1NTE2KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZW1vdGVPYmplY3RSZWdp
c3RyeS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCAgICAgICAgIGlkIDxSZW1v
dGVPYmplY3RQcm90b2NvbD4gb2JqZWN0CiAgICAgICAgICAgICBFWFBFQ1RfV0tfU1RSRVEocmVz
dWx0LCBAIkhlbGxvLCBXb3JsZCEiKTsKICAgICAgICAgICAgIGlzRG9uZSA9IHRydWU7CiAgICAg
ICAgIH1dOwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAg
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICAgICAgaXNEb25lID0g
ZmFsc2U7CiAgICAgICAgIFtvYmplY3Qgc2F5SGVsbG86QCJIZWxsbyBBZ2FpbiEiIGNvbXBsZXRp
b25IYW5kbGVyOl4oTlNTdHJpbmcgKnJlc3VsdCkgewpAQCAtNjUsMTQgKzY1LDE0IEBAICAgICAg
ICAgaWQgPFJlbW90ZU9iamVjdFByb3RvY29sPiBvYmplY3QKICAgICAgICAgICAgIEVYUEVDVF9X
S19TVFJFUShyZXN1bHQsIEAiWW91ciBzdHJpbmcgd2FzICdIZWxsbyBBZ2FpbiEnIik7CiAgICAg
ICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgICAgICB9XTsKLSAgICAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChp
c0RvbmUpOwogCiAgICAgICAgIGlzRG9uZSA9IGZhbHNlOwogICAgICAgICBbb2JqZWN0IHNlbGVj
dGlvbkFuZENsaWNrSW5mb3JtYXRpb25Gb3JDbGlja0F0UG9pbnQ6W05TVmFsdWUgdmFsdWVXaXRo
UG9pbnQ6TlNNYWtlUG9pbnQoMTIsIDM0KV0gY29tcGxldGlvbkhhbmRsZXI6XihOU0RpY3Rpb25h
cnkgKnJlc3VsdCkgewogICAgICAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdCBpc0VxdWFsOkB7
IEAiVVJMIjogW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd3d3LndlYmtpdC5vcmcvIl0g
fV0pOwogICAgICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICAgICAgfV07Ci0gICAgICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoaXNEb25lKTsKIAogICAgICAgICBpc0RvbmUgPSBmYWxzZTsKICAgICAgICAgW29i
amVjdCB0YWtlUmFuZ2U6TlNNYWtlUmFuZ2UoMzQ1LCAxMjMpIGNvbXBsZXRpb25IYW5kbGVyOl4o
TlNVSW50ZWdlciBsb2NhdGlvbiwgTlNVSW50ZWdlciBsZW5ndGgpIHsKQEAgLTgwLDcgKzgwLDcg
QEAgICAgICAgICBpZCA8UmVtb3RlT2JqZWN0UHJvdG9jb2w+IG9iamVjdAogICAgICAgICAgICAg
RVhQRUNUX0VRKDEyM1UsIGxlbmd0aCk7CiAgICAgICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAg
ICAgICB9XTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAg
ICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAgICAgIGlzRG9uZSA9
IGZhbHNlOwogICAgICAgICBbb2JqZWN0IHRha2VTaXplOkNHU2l6ZU1ha2UoMTIzLjQ1LCA2Nzgu
OTEpIGNvbXBsZXRpb25IYW5kbGVyOl4oQ0dGbG9hdCB3aWR0aCwgQ0dGbG9hdCBoZWlnaHQpIHsK
QEAgLTg4LDcgKzg4LDcgQEAgICAgICAgICBpZCA8UmVtb3RlT2JqZWN0UHJvdG9jb2w+IG9iamVj
dAogICAgICAgICAgICAgRVhQRUNUX0VRKDY3OC45MSwgaGVpZ2h0KTsKICAgICAgICAgICAgIGlz
RG9uZSA9IHRydWU7CiAgICAgICAgIH1dOwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmlzRG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAK
ICAgICAgICAgaXNEb25lID0gZmFsc2U7CiAKQEAgLTEwMyw2ICsxMDMsNiBAQCAgICAgICAgIGlk
IDxSZW1vdGVPYmplY3RQcm90b2NvbD4gb2JqZWN0CiAgICAgICAgICAgICB9XTsKICAgICAgICAg
fQogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICAgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKICAgICB9CiB9CkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmVkSW1hZ2VXaXRoT3B0aW9ucy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jl
bmRlcmVkSW1hZ2VXaXRoT3B0aW9ucy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZW5kZXJlZEltYWdlV2l0aE9wdGlvbnMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgICAgIGF1dG8gcmVtb3RlT2JqZWN0ID0g
cmV0YWluUHRyKFtbd2ViVgogICAgICAgICB0ZXN0RmluaXNoZWQgPSB0cnVlOwogICAgIH1dOwog
Ci0gICAgVXRpbDo6cnVuKCZ0ZXN0RmluaXNoZWQpOworICAgIHJ1blVudGlsKHRlc3RGaW5pc2hl
ZCk7CiB9CiAKIFRFU1QoV2ViS2l0LCBOb2RlSGFuZGxlUmVuZGVyZWRJbWFnZUV4Y2x1ZGluZ092
ZXJmbG93KQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZW5k
ZXJpbmdQcm9ncmVzcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1JlbmRlcmluZ1Byb2dyZXNzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmluZ1Byb2dyZXNzLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC02OSw1ICs2OSw1IEBAICAgICBbW3dlYlZpZXcgX3JlbW90ZU9i
amVjdFJlZ2lzdHJ5XSByZWcKIAogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGJvZHkg
c3R5bGU9J2JhY2tncm91bmQtY29sb3I6IHJlZDsnPjwvYm9keT4iIGJhc2VVUkw6bmlsXTsKIAot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkT2JzZXJ2ZUZpcnN0TWVhbmluZ2Z1bFBh
aW50KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRPYnNlcnZlRmlyc3RNZWFuaW5n
ZnVsUGFpbnQpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9SZXBhcmVudFdlYlZpZXdUaW1lb3V0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVwYXJlbnRXZWJWaWV3VGltZW91dC5tbQkocmV2aXNp
b24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXBh
cmVudFdlYlZpZXdUaW1lb3V0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIFRF
U1QoV2ViS2l0LCBSZXBhcmVudFdlYlZpZXdUaW1lb3V0KQogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgICAgICBkb25lID0gZmFsc2U7
CiAgICAgfTsKIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9S
ZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tCShyZXZpc2lv
biAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcXVl
c3RUZXh0SW5wdXRDb250ZXh0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIC0g
KE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAqPiAqKXN5bmMKICAgICAgICAgcmVzdWx0ID0g
Y29udGV4dHM7CiAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChmaW5pc2hlZCk7CiAgICAgcmV0dXJuIHJlc3VsdC5hdXRvcmVsZWFzZSgpOwogfQogCkBAIC02
Myw3ICs2Myw3IEBAIC0gKEJPT0wpc3luY2hyb25vdXNseUZvY3VzVGV4dElucHV0Q29udGUKICAg
ICAgICAgc3VjY2VzcyA9IGlubmVyU3VjY2VzczsKICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwog
ICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkKTsKICAgICByZXR1cm4gc3VjY2VzczsKIH0K
IApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1aXJlc1Vz
ZXJBY3Rpb25Gb3JQbGF5YmFjay5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1JlcXVpcmVzVXNlckFjdGlvbkZvclBsYXliYWNrLm1tCShyZXZp
c2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jl
cXVpcmVzVXNlckFjdGlvbkZvclBsYXliYWNrLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04Myw3ICs4
Myw3IEBAIHB1YmxpYzoKICAgICAgICAgW3dlYlZpZXcgbG9hZEZpbGVVUkw6ZmlsZVVSTCBhbGxv
d2luZ1JlYWRBY2Nlc3NUb1VSTDpmaWxlVVJMXTsKICAgICAgICAgW3dlYlZpZXcgX3Rlc3Rfd2Fp
dEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICAgICAgcmVjZWl2ZWRTY3JpcHRNZXNz
YWdlID0gZmFsc2U7CiAgICAgfQogCkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoKICAgICAgICAg
W3dlYlZpZXcgbG9hZEZpbGVVUkw6ZmlsZVVSTCBhbGxvd2luZ1JlYWRBY2Nlc3NUb1VSTDpmaWxl
VVJMXTsKICAgICAgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25d
OwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNz
YWdlKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNz
YWdlKTsKICAgICAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAgICAgfQogCkBA
IC0xMDMsNyArMTAzLDcgQEAgcHVibGljOgogICAgICAgICBbd2ViVmlldyBsb2FkRmlsZVVSTDpm
aWxlVVJMIGFsbG93aW5nUmVhZEFjY2Vzc1RvVVJMOmZpbGVVUkxdOwogICAgICAgICBbd2ViVmll
dyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CiAKLSAgICAgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgICAgICByZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3MubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQkod29ya2luZyBjb3B5KQpA
QCAtNzYsNyArNzYsNyBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIEdyYW5kZmF0aGVy
CiAgICAgW2RhdGFTdG9yZSBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6WUVTXTsK
ICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6YmxhbmsiXV1dOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZncmFuZGZhdGhlcmVkRmxhZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZ3JhbmRmYXRoZXJlZEZsYWcpOwogCiAgICAgLy8gU3BpbiB0aGUgcnVubG9vcCB1bnRp
bCB0aGUgcmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzIGZpbGUgaGFzIHdyaXR0ZW4gdG8gZGlzay4K
ICAgICAvLyBJZiB0aGUgdGVzdCBlbnRlcnMgYSBzcGluIGxvb3AgaGVyZSwgaXQgaGFzIGZhaWxl
ZC4KQEAgLTkxLDcgKzkxLDcgQEAgVEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBHcmFuZGZh
dGhlcgogICAgICAgICBkb25lRmxhZyA9IHRydWU7CiAgICAgfV07CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmVGbGFnKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lRmxhZyk7CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoMTApOwogCiAg
ICAgLy8gVGhlIHdlYnNpdGUgZGF0YSBzdG9yZSByZW1vdmUgc2hvdWxkIGhhdmUgY29tcGxldGVk
LCBidXQgc2luY2Ugd2UgcmVtb3ZlZCBhbGwgb2YgdGhlIGRhdGEgdHlwZXMgdGhhdCBhcmUgbW9u
aXRvcmVkIGJ5IHJlc291cmNlIGxvYWQgc3RhdGlzdGljcywKQEAgLTEwNiw4ICsxMDYsOCBAQCBU
RVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIEdyYW5kZmF0aGVyCiAKICAgICAvLyBTaW5jZSB3
ZSBkaWQgbm90IHJlbW92ZSBldmVyeSBkYXRhIHR5cGUgY292ZXJlZCBieSByZXNvdXJjZSBsb2Fk
IHN0YXRpc3RpY3MsIHdlIGRvIGV4cGVjdCB0aGF0IGdyYW5kZmF0aGVyaW5nIHRvb2sgcGxhY2Ug
YWdhaW4uCiAgICAgLy8gSWYgdGhlIHRlc3QgaGFuZ3Mgd2FpdGluZyBvbiBlaXRoZXIgb2YgdGhl
c2UgY29uZGl0aW9ucywgaXQgaGFzIGZhaWxlZC4KLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmdyYW5kZmF0aGVyZWRGbGFnKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmVGbGFnKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChncmFuZGZhdGhlcmVkRmxhZyk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZUZsYWcpOwogCiAgICAgLy8gU3BpbiB0
aGUgcnVubG9vcCB1bnRpbCB0aGUgcmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzIGZpbGUgaGFzIHdy
aXR0ZW4gdG8gZGlzay4KICAgICAvLyBJZiB0aGUgdGVzdCBlbnRlcnMgYSBzcGluIGxvb3AgaGVy
ZSwgaXQgaGFzIGZhaWxlZC4KQEAgLTE0Miw3ICsxNDIsNyBAQCBURVNUKFJlc291cmNlTG9hZFN0
YXRpc3RpY3MsIFNob3VsZE5vdEdyCiAgICAgW2RhdGFTdG9yZSBfc2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQ6WUVTXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6YmxhbmsiXV1d
OwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjYWxsYmFja0ZsYWcpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGNhbGxiYWNrRmxhZyk7CiB9CiAKIFRFU1QoUmVzb3VyY2VM
b2FkU3RhdGlzdGljcywgQ2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hlZCkKQEAgLTE3NCw3ICsxNzQs
NyBAQCBURVNUKFJlc291cmNlTG9hZFN0YXRpc3RpY3MsIENoaWxkUHJvY2VzCiAgICAgW2RhdGFT
dG9yZSBfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6WUVTXTsKICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAiYWJvdXQ6YmxhbmsiXV1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lRmxhZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZUZsYWcpOwogCiAg
ICAgRVhQRUNUX1RSVUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3Rz
QXRQYXRoOnRhcmdldFVSTC5wYXRoXSk7CiAKQEAgLTIwMiw1ICsyMDIsNSBAQCBURVNUKFJlc291
cmNlTG9hZFN0YXRpc3RpY3MsIElQQ0FmdGVyU3RvCiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJub3RpZnktcmVzb3VyY2VMb2FkT2JzZXJ2ZXIiIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CiAKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZpZ2F0aW9uKTsKIH0KSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzcG9uc2l2ZW5lc3NUaW1lci5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc3Bv
bnNpdmVuZXNzVGltZXIubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzcG9uc2l2ZW5lc3NUaW1lci5tbQkod29ya2luZyBjb3B5
KQpAQCAtNjYsNyArNjYsNyBAQCBURVNUKFdlYktpdCwgUmVzcG9uc2l2ZW5lc3NUaW1lclNob3Vs
ZE5vCiAgICAgW3dlYlZpZXcxIHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07
CiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07
CiAgICAgW3dlYlZpZXcxIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFV0aWw6OnJ1bigmZGlk
RmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAKICAgICBFWFBFQ1Rf
RkFMU0UoZGlkQmVjb21lVW5yZXNwb25zaXZlKTsKIApAQCAtNzUsNyArNzUsNyBAQCBURVNUKFdl
YktpdCwgUmVzcG9uc2l2ZW5lc3NUaW1lclNob3VsZE5vCiAKICAgICBkaWRGaW5pc2hMb2FkID0g
ZmFsc2U7CiAgICAgW3dlYlZpZXcyIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFV0aWw6OnJ1
bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAKICAgICBF
WFBFQ1RfRkFMU0UoZGlkQmVjb21lVW5yZXNwb25zaXZlKTsKIApJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVh
cmx5Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseS5tbQkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNwb25zaXZlbmVz
c1RpbWVyRG9lc250RmlyZUVhcmx5Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBA
IFRFU1QoV2ViS2l0LCBSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmkKICAgICBbd2ViVmlldyBz
ZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCiAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5k
bGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwotICAgIFV0aWw6OnJ1bigmZGlk
RmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAKICAgICBXS0NvbnRl
eHRQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoY29udGV4dC5nZXQoKSwgVXRpbDo6dG9XSygi
QnJpZWZseVBhdXNlIikuZ2V0KCksIDApOwogCkBAIC05Myw3ICs5Myw3IEBAIFRFU1QoV2ViS2l0
LCBSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmkKICAgICAvLyAoYnV0IG5vdCBzbyBsb25nIHRo
YXQgdGhlIHJlc3BvbnNpdmVuZXNzIHRpbWVyIGZpcmVzKS4KICAgICBbd2ViVmlldyB0eXBlQ2hh
cmFjdGVyOicgJ107CiAKLSAgICBVdGlsOjpydW4oJmRpZEJyaWVmbHlQYXVzZSk7CisgICAgcnVu
VW50aWwoZGlkQnJpZWZseVBhdXNlKTsKIAogICAgIEVYUEVDVF9GQUxTRShkaWRCZWNvbWVVbnJl
c3BvbnNpdmUpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9SZXN0b3JlU2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24ubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXN0b3JlU2Vzc2lvblN0YXRl
V2l0aG91dE5hdmlnYXRpb24ubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzdG9yZVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0
aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIHN0YXRpYyBXS1JldGFpblB0
cjxXS0RhdGFSZWY+IGNyZWF0ZVNlc3MKICAgICBhdXRvIHZpZXcgPSBhZG9wdE5TKFtXS1dlYlZp
ZXcgbmV3XSk7CiAgICAgW3ZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgp
XTsKICAgICBbdmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07Ci0g
ICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2Fk
KTsKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAKICAgICBOU0RhdGEgKmRhdGEgPSBbdmll
dyBfc2Vzc2lvblN0YXRlRGF0YV07CkBAIC04OSw3ICs4OSw3IEBAIFRFU1QoV2ViS2l0LCBSZXN0
b3JlU2Vzc2lvblN0YXRlV2l0aG91dE4KICAgICBhdXRvIHNlc3Npb25TdGF0ZSA9IGFkb3B0V0so
V0tTZXNzaW9uU3RhdGVDcmVhdGVGcm9tRGF0YShkYXRhLmdldCgpKSk7CiAgICAgV0tQYWdlUmVz
dG9yZUZyb21TZXNzaW9uU3RhdGVXaXRob3V0TmF2aWdhdGlvbihbd2ViVmlldyBfcGFnZUZvclRl
c3RpbmddLCBzZXNzaW9uU3RhdGUuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZkaWRDaGFuZ2VC
YWNrRm9yd2FyZExpc3QpOworICAgIHJ1blVudGlsKGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdCk7
CiAKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gY29tbWl0dGVkVVJMID0gYWRvcHRXSyhXS1Bh
Z2VDb3B5Q29tbWl0dGVkVVJMKFt3ZWJWaWV3IF9wYWdlRm9yVGVzdGluZ10pKTsKICAgICBFWFBF
Q1RfTlVMTChjb21taXR0ZWRVUkwuZ2V0KCkpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9SdW5PcGVuUGFuZWwubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SdW5PcGVuUGFuZWwubW0JKHJldmlzaW9uIDI0
NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUnVuT3BlblBh
bmVsLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02OSw3ICs2OSw3IEBAIFRFU1QoV2ViS2l0LCBSdW5P
cGVuUGFuZWxOb25MYXRpbjEpCiAgICAgTlNJbnRlZ2VyIHdpbmRvd051bWJlciA9IFt3ZWJWaWV3
IHdpbmRvd10ud2luZG93TnVtYmVyOwogICAgIFt3ZWJWaWV3IG1vdXNlRG93bjpbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNr
UG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5kb3dOdW1i
ZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwog
ICAgIFt3ZWJWaWV3IG1vdXNlVXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0
YW1wOjAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjow
IGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07Ci0gICAgVXRpbDo6cnVuKCZmaWxlU2VsZWN0ZWQp
OworICAgIHJ1blVudGlsKGZpbGVTZWxlY3RlZCk7CiAgICAgCiAgICAgX19ibG9jayBib29sIHRl
c3RGaW5pc2hlZCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpWzBdLmZpbGVzWzBdLm5hbWUiIGNv
bXBsZXRpb25IYW5kbGVyOl4oaWQgX051bGxhYmxlIHJlc3VsdCwgTlNFcnJvciAqIF9OdWxsYWJs
ZSBlcnJvcikgewpAQCAtNzcsNyArNzcsNyBAQCBURVNUKFdlYktpdCwgUnVuT3BlblBhbmVsTm9u
TGF0aW4xKQogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoZXhwZWN0ZWRGaWxlTmFtZSwgcmVzdWx0
KTsKICAgICAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKICAgICB9XTsKLSAgICBVdGlsOjpydW4o
JnRlc3RGaW5pc2hlZCk7CisgICAgcnVuVW50aWwodGVzdEZpbmlzaGVkKTsKIH0KICAgICAKIH0g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvU2FmZUJyb3dzaW5nLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2FmZUJyb3dzaW5nLm1tCShyZXZpc2lvbiAyNDU1
MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NhZmVCcm93c2lu
Zy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTc5LDcgKzE3OSw3IEBAIFRFU1QoU2FmZUJyb3dzaW5n
LCBQcmVmZXJlbmNlKQogICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzcGluUnVuTG9vcCgp
OwogICAgIFt3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLnByZWZlcmVuY2VzLl9zYWZlQnJvd3NpbmdF
bmFibGVkID0gTk87CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpyZXNvdXJjZVVSTChAInNpbXBsZTIiKV1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLnByZWZlcmVuY2VzLl9zYWZl
QnJvd3NpbmdFbmFibGVkKTsKICAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgX3NhZmVCcm93c2lu
Z1dhcm5pbmddKTsKIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCBURVNUKFNhZmVCcm93c2luZywgVmlz
aXRVbnNhZmVXZWJzaXRlKQogICAgIEVYUEVDVF9FUSh3YXJuaW5nLnN1YnZpZXdzLmNvdW50LCAy
dWxsKTsKICAgICBFWFBFQ1RfRkFMU0UoY29tbWl0dGVkTmF2aWdhdGlvbik7CiAgICAgdmlzaXRV
bnNhZmVTaXRlKHdhcm5pbmcpOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmY29tbWl0
dGVkTmF2aWdhdGlvbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoY29tbWl0dGVkTmF2
aWdhdGlvbik7CiB9CiAKIFRFU1QoU2FmZUJyb3dzaW5nLCBOYXZpZ2F0aW9uQ2xlYXJzV2Fybmlu
ZykKQEAgLTI4NiwxMiArMjg2LDEyIEBAIFRFU1QoU2FmZUJyb3dzaW5nLCBTaG93V2FybmluZ1NQ
SSkKIAogICAgIHNob3dXYXJuaW5nKCk7CiAgICAgY2hlY2tUaXRsZUFuZENsaWNrKFt3ZWJWaWV3
IF9zYWZlQnJvd3NpbmdXYXJuaW5nXS5zdWJ2aWV3cy5maXJzdE9iamVjdC5zdWJ2aWV3c1szXSwg
IkdvIEJhY2siKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmNvbXBsZXRpb25IYW5k
bGVyQ2FsbGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChjb21wbGV0aW9uSGFuZGxl
ckNhbGxlZCk7CiAgICAgRVhQRUNUX0ZBTFNFKHNob3VsZENvbnRpbnVlVmFsdWUpOwogCiAgICAg
c2hvd1dhcm5pbmcoKTsKICAgICBbW3dlYlZpZXcgX3NhZmVCcm93c2luZ1dhcm5pbmddIHBlcmZv
cm1TZWxlY3RvcjpOU1NlbGVjdG9yRnJvbVN0cmluZyhAImNsaWNrZWRPbkxpbms6Iikgd2l0aE9i
amVjdDpbV0tXZWJWaWV3IF92aXNpdFVuc2FmZVdlYnNpdGVTZW50aW5lbF1dOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmY29tcGxldGlvbkhhbmRsZXJDYWxsZWQpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkKTsKICAgICBFWFBFQ1Rf
VFJVRShzaG91bGRDb250aW51ZVZhbHVlKTsKIH0KIApAQCAtNDE4LDE4ICs0MTgsMTggQEAgVEVT
VChTYWZlQnJvd3NpbmcsIFdLV2ViVmlld0dvQmFjaykKICAgICBbd2ViVmlldyBjb25maWd1cmF0
aW9uXS5wcmVmZXJlbmNlcy5fc2FmZUJyb3dzaW5nRW5hYmxlZCA9IFlFUzsKICAgICBbd2ViVmll
dyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6cmVzb3VyY2VVUkwoQCJzaW1w
bGUiKV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmbmF2aWdhdGlvbkZpbmlzaGVk
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChuYXZpZ2F0aW9uRmluaXNoZWQpOwogCiAg
ICAgbmF2aWdhdGlvbkZpbmlzaGVkID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpyZXNvdXJjZVVSTChAInNpbXBsZTIiKV1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmbmF2aWdhdGlvbkZpbmlzaGVkKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChuYXZpZ2F0aW9uRmluaXNoZWQpOwogCiAgICAgbmF2aWdh
dGlvbkZpbmlzaGVkID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpyZXNvdXJjZVVSTChAInNpbXBsZTMiKV1dOwogICAgIHdoaWxl
ICghW3dlYlZpZXcgX3NhZmVCcm93c2luZ1dhcm5pbmddKQogICAgICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpzcGluUnVuTG9vcCgpOwogICAgIFt3ZWJWaWV3IGdvQmFja107Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZuYXZpZ2F0aW9uRmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKG5hdmlnYXRpb25GaW5pc2hlZCk7CiAgICAgRVhQRUNUX1RSVUUoW1t3ZWJW
aWV3IFVSTF0gaXNFcXVhbDpyZXNvdXJjZVVSTChAInNpbXBsZTIiKV0pOwogfQogCkBAIC00NDMs
NyArNDQzLDcgQEAgVEVTVChTYWZlQnJvd3NpbmcsIFdLV2ViVmlld0dvQmFja0lGcmFtZQogICAg
IFt3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLnByZWZlcmVuY2VzLl9zYWZlQnJvd3NpbmdFbmFibGVk
ID0gWUVTOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQo
KV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpyZXNvdXJjZVVSTChAInNpbXBsZTIiKV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmbmF2aWdhdGlvbkZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChuYXZp
Z2F0aW9uRmluaXNoZWQpOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpyZXNvdXJjZVVSTChAInNpbXBsZS1pZnJhbWUiKV1dOwogICAgIHdo
aWxlICghW3dlYlZpZXcgX3NhZmVCcm93c2luZ1dhcm5pbmddKQpAQCAtNDUzLDcgKzQ1Myw3IEBA
IFRFU1QoU2FmZUJyb3dzaW5nLCBXS1dlYlZpZXdHb0JhY2tJRnJhbWUKICNlbmRpZgogICAgIG5h
dmlnYXRpb25GaW5pc2hlZCA9IGZhbHNlOwogICAgIGdvQmFjayhbd2ViVmlldyBfc2FmZUJyb3dz
aW5nV2FybmluZ10sIGZhbHNlKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm5hdmln
YXRpb25GaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwobmF2aWdhdGlvbkZp
bmlzaGVkKTsKICAgICBFWFBFQ1RfVFJVRShbW3dlYlZpZXcgVVJMXSBpc0VxdWFsOnJlc291cmNl
VVJMKEAic2ltcGxlMiIpXSk7CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU2NoZW1lUmVnaXN0cnkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TY2hlbWVSZWdpc3RyeS5tbQkocmV2aXNpb24gMjQ1
NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TY2hlbWVSZWdp
c3RyeS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTcxLDcgKzE3MSw3IEBAIFRFU1QoV2ViS2l0LCBX
S0NvbnRleHRSZWdpc3RlclVSTFNjaGVtZUEKICAgICAgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcgeyBjb250ZXh0LmdldCgpIH07CiAgICAgICAgIHdlYlZpZXcucGxhdGZvcm1WaWV3KCkuYnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlci5sb2FkRGVsZWdhdGUgPSBbW1dLQ29udGV4dFJlZ2lzdGVy
VVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdExvYWREZWxlZ2F0ZSBhbGxvY10g
aW5pdF07CiAgICAgICAgIFt3ZWJWaWV3LnBsYXRmb3JtVmlldygpLmJyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIgbG9hZEhUTUxTdHJpbmc6QCI8IURPQ1RZUEUgaHRtbD48Ym9keT48c2NyaXB0IHNy
Yz0nZWNobzovL0EvQV8xJz48L3NjcmlwdD4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJlY2hvOi8vQSJdXTsKLSAgICAgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICAg
ICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgICAgIGRpZEZpbmlzaExvYWQgPSBmYWxz
ZTsKIAogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJlY2hvOi8vQS9BXzEiLCBbbGFzdEVjaG9l
ZFVSTCBhYnNvbHV0ZVN0cmluZ10pOwpAQCAtMTk0LDcgKzE5NCw3IEBAIFRFU1QoV2ViS2l0LCBX
S0NvbnRleHRSZWdpc3RlclVSTFNjaGVtZUEKICAgICAgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZp
ZXcgeyBjb250ZXh0LmdldCgpIH07CiAgICAgICAgIHdlYlZpZXcucGxhdGZvcm1WaWV3KCkuYnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlci5sb2FkRGVsZWdhdGUgPSBbW1dLQ29udGV4dFJlZ2lzdGVy
VVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdExvYWREZWxlZ2F0ZSBhbGxvY10g
aW5pdF07CiAgICAgICAgIFt3ZWJWaWV3LnBsYXRmb3JtVmlldygpLmJyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIgbG9hZEhUTUxTdHJpbmc6QCI8IURPQ1RZUEUgaHRtbD48Ym9keT48c2NyaXB0IHNy
Yz0nZWNobzovL0EvQV8xJz48L3NjcmlwdD4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJlY2hvOi8vQiJdXTsKLSAgICAgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICAg
ICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgICAgIGRpZEZpbmlzaExvYWQgPSBmYWxz
ZTsKIAogICAgICAgICBFWFBFQ1RfTlVMTChsYXN0RWNob2VkVVJMKTsgLy8gU2NyaXB0IGJsb2Nr
ZWQKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQko
d29ya2luZyBjb3B5KQpAQCAtNDgwLDcgKzQ4MCw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIEJh
c2ljKQogICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJlbW92ZURh
dGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZp
ZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgewogICAg
ICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBm
YWxzZTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAg
LTQ5OSw3ICs0OTksNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBCYXNpYykKICAgICBOU1VSTFJl
cXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxX
aXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAg
ICAgd2ViVmlldyA9IG51bGxwdHI7CkBAIC01MTEsNyArNTExLDcgQEAgVEVTVChTZXJ2aWNlV29y
a2VycywgQmFzaWMpCiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAKQEAgLTU4MCw3ICs1ODAsNyBAQCBURVNUKFNl
cnZpY2VXb3JrZXJzLCBVc2VyQWdlbnRPdmVycmlkZSkKICAgICBbW1dLV2Vic2l0ZURhdGFTdG9y
ZSBkZWZhdWx0RGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3Jl
IGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0g
Y29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAt
NjAzLDcgKzYwMyw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFVzZXJBZ2VudE92ZXJyaWRlKQog
ICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0g
ZmFsc2U7CiAKICAgICAvLyBSZXN0b3JlIGZyb20gZGlzay4KQEAgLTYzMyw3ICs2MzMsNyBAQCBU
RVNUKFNlcnZpY2VXb3JrZXJzLCBVc2VyQWdlbnRPdmVycmlkZSkKICAgICByZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9z
dC9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIH0KIApAQCAtNjQ5LDcgKzY0OSw3IEBA
IFRFU1QoU2VydmljZVdvcmtlcnMsIFJlc3RvcmVGcm9tRGlzaykKICAgICBbW1dLV2Vic2l0ZURh
dGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0
YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50
UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAg
fV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBSZXRhaW5QdHI8
V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC02NjgsNyArNjY4LDcgQEAgVEVTVChT
ZXJ2aWNlV29ya2VycywgUmVzdG9yZUZyb21EaXNrKQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVz
dCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJz
dzovL2hvc3QvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3Rd
OwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKIAogICAgIHdlYlZpZXcgPSBudWxscHRyOwogICAgIGNvbmZp
Z3VyYXRpb24gPSBudWxscHRyOwpAQCAtNjkyLDcgKzY5Miw3IEBAIFRFU1QoU2VydmljZVdvcmtl
cnMsIFJlc3RvcmVGcm9tRGlzaykKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9tYWluLmh0bWwiXV07CiAg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKIH0KIApAQCAtNzA2LDcgKzcwNiw3IEBAIFRFU1QoU2VydmljZVdvcmtl
cnMsIENhY2hlU3RvcmFnZVJlc3RvcmUKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07CiAK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFtXS1dlYnNpdGVEYXRh
U3RvcmUgX2RlbGV0ZURlZmF1bHREYXRhU3RvcmVGb3JUZXN0aW5nXTsKQEAgLTcyOSw3ICs3Mjks
NyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBDYWNoZVN0b3JhZ2VSZXN0b3JlCiAgICAgYXV0byAq
cmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJl
cXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICB3ZWJW
aWV3ID0gbnVsbHB0cjsKQEAgLTc0OCw3ICs3NDgsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBD
YWNoZVN0b3JhZ2VSZXN0b3JlCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOwogICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiB9CiAKQEAgLTc2NCw3ICs3NjQsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJz
LCBGZXRjaEFmdGVyUmVzdG9yZUZyCiAgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERh
dGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRl
RGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25I
YW5kbGVyOl4oKSB7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9u
ZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOwpAQCAtNzg0LDcgKzc4NCw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIEZl
dGNoQWZ0ZXJSZXN0b3JlRnIKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4u
aHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZG9uZSk7CiAKICAgICB3ZWJWaWV3ID0gbnVsbHB0cjsKICAgICBjb25maWd1cmF0aW9uID0gbnVs
bHB0cjsKQEAgLTgwOSw3ICs4MDksNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBGZXRjaEFmdGVy
UmVzdG9yZUZyCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFs
c2U7CiB9CiAKQEAgLTgyNCw3ICs4MjQsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBJbnRlcmNl
cHRGaXJzdExvYWRBCiAgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0g
cmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVz
XSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4o
KSB7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOwpAQCAtODQ0LDcgKzg0NCw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIEludGVyY2VwdEZp
cnN0TG9hZEEKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsK
ICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAK
ICAgICB3ZWJWaWV3ID0gbnVsbHB0cjsKICAgICBjb25maWd1cmF0aW9uID0gbnVsbHB0cjsKQEAg
LTg2OSw3ICs4NjksNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBJbnRlcmNlcHRGaXJzdExvYWRB
CiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAK
QEAgLTg4MSw3ICs4ODEsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBXYWl0Rm9yUG9saWN5RGVs
ZWdhCiAgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0
YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmll
ZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAg
ICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZh
bHNlOwogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAt
OTAyLDcgKzkwMiw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFdhaXRGb3JQb2xpY3lEZWxlZ2EK
ICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAgICB3ZWJW
aWV3ID0gbnVsbHB0cjsKICAgICBjb25maWd1cmF0aW9uID0gbnVsbHB0cjsKQEAgLTkyOCw3ICs5
MjgsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBXYWl0Rm9yUG9saWN5RGVsZWdhCiAgICAgcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICB3ZWJWaWV3
ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKQEAgLTk0
NCw3ICs5NDQsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBXYWl0Rm9yUG9saWN5RGVsZWdhCiAg
ICAgLy8gVmVyaWZ5IHNlcnZpY2Ugd29ya2VyIGxvYWQgZ29lcyB3ZWxsIHdoZW4gcG9saWN5IGRl
bGVnYXRlIGlzIG9rLgogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
Jm5hdmlnYXRpb25Db21wbGV0ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwobmF2aWdh
dGlvbkNvbXBsZXRlKTsKIAogICAgIEVYUEVDVF9GQUxTRShuYXZpZ2F0aW9uRmFpbGVkKTsKIApA
QCAtOTYwLDcgKzk2MCw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFdhaXRGb3JQb2xpY3lEZWxl
Z2EKICAgICAvLyBWZXJpZnkgc2VydmljZSB3b3JrZXIgbG9hZCBmYWlscyB3ZWxsIHdoZW4gcG9s
aWN5IGRlbGVnYXRlIGlzIG5vdCBvay4KICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9tYWluLmh0bWwiXV07
CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZuYXZpZ2F0aW9uQ29tcGxldGUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKG5hdmlnYXRpb25Db21wbGV0ZSk7CiAKICAgICBFWFBFQ1RfVFJVRShuYXZpZ2F0aW9uRmFp
bGVkKTsKIH0KQEAgLTEwMTYsNyArMTAxNiw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFNXUHJv
Y2Vzc0Nvbm5lY3Rpb24KICAgICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gcmVt
b3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBt
b2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7
CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCiAgICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIGZldGNo
RGF0YVJlY29yZHNPZlR5cGVzOltOU1NldCBzZXRXaXRoT2JqZWN0OldLV2Vic2l0ZURhdGFUeXBl
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnNdIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNBcnJheTxX
S1dlYnNpdGVEYXRhUmVjb3JkICo+ICp3ZWJzaXRlRGF0YVJlY29yZHMpIHsKQEAgLTEwMjQsNyAr
MTAyNCw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFNXUHJvY2Vzc0Nvbm5lY3Rpb24KIAogICAg
ICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBm
YWxzZTsKIAogICAgIFJldGFpblB0cjxTV01lc3NhZ2VIYW5kbGVyPiBtZXNzYWdlSGFuZGxlciA9
IGFkb3B0TlMoW1tTV01lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CkBAIC0xMDQ3LDE0ICsx
MDQ3LDE0IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFNXUHJvY2Vzc0Nvbm5lY3Rpb24KICAgICBO
U1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L3JlZ3VsYXJQYWdlV2l0aG91dENvbm5lY3Rpb24u
aHRtbCJdXTsKIAogICAgIFtyZWd1bGFyUGFnZVdlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICAvLyBUZXN0IHRoYXQg
YSBzdyBzY2hlbWUgcGFnZSBjYW4gcmVnaXN0ZXIgYSBzZXJ2aWNlIHdvcmtlci4KICAgICByZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InN3Oi8vaG9zdC9tYWluLmh0bWwiXV07CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICB3ZWJWaWV3ID0g
bnVsbHB0cjsKIApAQCAtMTA2MiwxMiArMTA2MiwxMiBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBT
V1Byb2Nlc3NDb25uZWN0aW9uCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvcmVndWxhclBhZ2VXaXRoQ29u
bmVjdGlvbi5odG1sIl1dOwogCiAgICAgW3JlZ3VsYXJQYWdlV2ViVmlldyBsb2FkUmVxdWVzdDpy
ZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICByZWd1bGFy
UGFnZVdlYlZpZXcgPSBudWxscHRyOwogCiAgICAgW25ld1JlZ3VsYXJQYWdlV2ViVmlldyBsb2Fk
UmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAg
ICBuZXdSZWd1bGFyUGFnZVdlYlZpZXcgPSBudWxscHRyOwogCkBAIC0xMDc4LDEzICsxMDc4LDEz
IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFNXUHJvY2Vzc0Nvbm5lY3Rpb24KICAgICAgICAgZG9u
ZSA9IHRydWU7CiAgICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsK
IAogICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBl
czpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6
W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgZG9u
ZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogc3RhdGljIGNvbnN0IGNo
YXIqIG1haW5CeXRlc1dpdGhTY29wZSA9IFIiU1dSRVNPVVJDRSgKQEAgLTExMjUsMTQgKzExMjUs
MTQgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgU2VydmljZVdvcmtlclByb2NlcwogICAgIFtbY29u
ZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRl
RGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0
YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAg
ICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBbW2NvbmZp
Z3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6W05TU2V0
IHNldFdpdGhPYmplY3Q6V0tXZWJzaXRlRGF0YVR5cGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
c10gY29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQgKj4gKndl
YnNpdGVEYXRhUmVjb3JkcykgewogCiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgUmV0YWluUHRyPFNXTWVzc2Fn
ZUhhbmRsZXI+IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1NXTWVzc2FnZUhhbmRsZXIgYWxs
b2NdIGluaXRdKTsKQEAgLTExNTQsNyArMTE1NCw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFNl
cnZpY2VXb3JrZXJQcm9jZXMKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW5X
aXRoU2NvcGUuaHRtbCJdXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIHdlYlZpZXcgPSBudWxscHRy
OwogCkBAIC0xMTcxLDcgKzExNzEsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBTZXJ2aWNlV29y
a2VyUHJvY2VzCiAgICAgRVhQRUNUX0VRKDF1LCB3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24u
cHJvY2Vzc1Bvb2wuX3dlYlByb2Nlc3NDb3VudElnbm9yaW5nUHJld2FybWVkKTsKICAgICByZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InN3Oi8vaG9zdC9yZWd1bGFyUGFnZVdpdGhDb25uZWN0aW9uLmh0bWwiXV07CiAgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFs
c2U7CiAKICAgICAvLyBNYWtlIHN1cmUgdGhhdCBsb2FkaW5nIHRoZSBzaW1wbGUgcGFnZSBkaWQg
bm90IHN0YXJ0IHRoZSBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzLgpAQCAtMTE4MSw3ICsxMTgxLDcg
QEAgVEVTVChTZXJ2aWNlV29ya2VycywgU2VydmljZVdvcmtlclByb2NlcwogICAgIEVYUEVDVF9F
USgydSwgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sLl93ZWJQcm9jZXNz
Q291bnRJZ25vcmluZ1ByZXdhcm1lZCk7CiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1d
OwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogCiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgbG9hZGluZyB0aGlzIHBh
Z2UgZGlkIHN0YXJ0IHRoZSBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzLgpAQCAtMTE5MCw3ICsxMTkw
LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgU2VydmljZVdvcmtlclByb2NlcwogICAgIFtbY29u
ZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRl
RGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0
YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAg
ICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAKQEAgLTEyMDYs
MTQgKzEyMDYsMTQgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgSGFzU2VydmljZVdvcmtlclJlZwog
ICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpb
V0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05T
RGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9
IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAg
ICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gZmV0Y2hEYXRhUmVjb3Jkc09mVHlw
ZXM6W05TU2V0IHNldFdpdGhPYmplY3Q6V0tXZWJzaXRlRGF0YVR5cGVTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uc10gY29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNv
cmQgKj4gKndlYnNpdGVEYXRhUmVjb3JkcykgewogCiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAg
IH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgUmV0YWluUHRy
PFNXTWVzc2FnZUhhbmRsZXI+IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1NXTWVzc2FnZUhh
bmRsZXIgYWxsb2NdIGluaXRdKTsKQEAgLTEyMzUsNyArMTIzNSw3IEBAIFRFU1QoU2VydmljZVdv
cmtlcnMsIEhhc1NlcnZpY2VXb3JrZXJSZWcKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9o
b3N0L21haW5XaXRoU2NvcGUuaHRtbCJdXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJl
cXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIHdlYlZpZXcg
PSBudWxscHRyOwogCkBAIC0xMjUzLDcgKzEyNTMsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBI
YXNTZXJ2aWNlV29ya2VyUmVnCiAgICAgd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlv
bjpuZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvcmVndWxhclBh
Z2VXaXRob3V0Q29ubmVjdGlvbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJl
cXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgLy8gTGV0
J3MgdXNlIHRoZSB3ZWIgc2l0ZSBkYXRhIHN0b3JlIHRoYXQgaGFzIHNlcnZpY2Ugd29ya2VyIGFu
ZCBsb2FkIGEgcGFnZS4KQEAgLTEyNjMsNyArMTI2Myw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMs
IEhhc1NlcnZpY2VXb3JrZXJSZWcKICAgICBFWFBFQ1RfRVEoMnUsIHdlYlZpZXcuZ2V0KCkuY29u
ZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fd2ViUHJvY2Vzc0NvdW50SWdub3JpbmdQcmV3YXJtZWQp
OwogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxX
aXRoU3RyaW5nOkAic3c6Ly9ob3N0L3JlZ3VsYXJQYWdlV2l0aENvbm5lY3Rpb24uaHRtbCJdXTsK
ICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGxvYWRpbmcgdGhlIHNpbXBs
ZSBwYWdlIGRpZCBub3Qgc3RhcnQgdGhlIHNlcnZpY2Ugd29ya2VyIHByb2Nlc3MuCkBAIC0xMjcy
LDcgKzEyNzIsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBIYXNTZXJ2aWNlV29ya2VyUmVnCiAg
ICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltX
S1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNE
YXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgewogICAgICAgICBkb25lID0g
dHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIH0KIApA
QCAtMTM0MSwxMyArMTM0MSwxMyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBDYWNoZVN0b3JhZ2VJ
blByaXZhCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb24uZ2V0KCldKTsKICAgICBhdXRvICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC93cml0ZUNhY2hlLmh0
bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9yZWFkQ2Fj
aGUuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIH0KIApAQCAtMTM5OCw3ICsxMzk4LDcgQEAgVEVT
VChTZXJ2aWNlV29ya2VycywgU2VydmljZVdvcmtlckFuZENhYwogICAgIE5TVVJMUmVxdWVzdCAq
cmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgd2hpbGUg
KCFbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX2hhc1JlZ2lzdGVyZWRTZXJ2aWNl
V29ya2VyXSkKICAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoMC4xKTsK
QEAgLTE0MDgsMTQgKzE0MDgsMTQgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgU2VydmljZVdvcmtl
ckFuZENhYwogCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvcmVndWxhclBhZ2VHcmFiYmluZ0NhY2hlU3Rv
cmFnZURpcmVjdG9yeS5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3Rd
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIEVYUEVDVF9UUlVFKHJl
dHJpZXZlZFN0cmluZy5jb250YWlucygiL0NhY2hlcy9UZXN0V2ViS2l0QVBJL1dlYktpdC9DYWNo
ZVN0b3JhZ2UiKSk7CiAKICAgICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gcmVt
b3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBt
b2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7
CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogfQogCkBAIC0xNDQ4LDcgKzE0NDgsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJz
LCBTZXJ2aWNlV29ya2VyQW5kQ2FjCiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0
L21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICB3aGlsZSAoIVt3ZWJzaXRlRGF0YVN0
b3JlIF9oYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcl0pCiAgICAgICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnNwaW5SdW5Mb29wKDAuMSk7CkBAIC0xNDU3LDE0ICsxNDU3LDE0IEBAIFRFU1QoU2Vy
dmljZVdvcmtlcnMsIFNlcnZpY2VXb3JrZXJBbmRDYWMKICAgICByZXF1ZXN0ID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9yZWd1
bGFyUGFnZUdyYWJiaW5nQ2FjaGVTdG9yYWdlRGlyZWN0b3J5Lmh0bWwiXV07CiAKICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBm
YWxzZTsKICAgICBFWFBFQ1RfVFJVRShyZXRyaWV2ZWRTdHJpbmcuY29udGFpbnMoIlwicGF0aFwi
OiBcIi92YXIvdG1wXCIiKSk7CiAKICAgICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9y
ZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5
cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVy
Ol4oKSB7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogfQogCkBAIC0xNTAzLDcgKzE1MDMsNyBAQCBURVNUKFNlcnZpY2VX
b3JrZXJzLCBOb25EZWZhdWx0U2Vzc2lvbklECiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8v
aG9zdC9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFt3ZWJWaWV3IF9jbG9z
ZV07CkBAIC0xNTE4LDcgKzE1MTgsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBOb25EZWZhdWx0
U2Vzc2lvbklECiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAKQEAgLTE1NDIsNyArMTU0Miw3IEBAIFRFU1QoU2Vy
dmljZVdvcmtlcnMsIFByb2Nlc3NQZXJTaXRlKQogICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRl
ZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxs
V2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21w
bGV0aW9uSGFuZGxlcjpeKCkgewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXdD
b25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTE1NzUsNyArMTU3NSw3IEBAIFRFU1QoU2VydmljZVdv
cmtlcnMsIFByb2Nlc3NQZXJTaXRlKQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdDEgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3cxOi8vaG9z
dC9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcxIGxvYWRSZXF1ZXN0OnJlcXVlc3QxXTsKIAot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0VRKDFVLCBw
cm9jZXNzUG9vbC5fc2VydmljZVdvcmtlclByb2Nlc3NDb3VudCk7CkBAIC0xNTgzLDcgKzE1ODMs
NyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBQcm9jZXNzUGVyU2l0ZSkKICAgICBSZXRhaW5QdHI8
V0tXZWJWaWV3PiB3ZWJWaWV3MiA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uLmdldCgpXSk7CiAgICAgW3dlYlZpZXcyIGxvYWRSZXF1ZXN0OnJlcXVlc3QxXTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0VRKDFVLCBwcm9j
ZXNzUG9vbC5fc2VydmljZVdvcmtlclByb2Nlc3NDb3VudCk7CkBAIC0xNTkyLDcgKzE1OTIsNyBA
QCBURVNUKFNlcnZpY2VXb3JrZXJzLCBQcm9jZXNzUGVyU2l0ZSkKICAgICBOU1VSTFJlcXVlc3Qg
KnJlcXVlc3QyID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInN3MjovL2hvc3QvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3MyBsb2FkUmVxdWVz
dDpyZXF1ZXN0Ml07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAg
IEVYUEVDVF9FUSgxVSwgcHJvY2Vzc1Bvb2wuX3NlcnZpY2VXb3JrZXJQcm9jZXNzQ291bnQpOwpA
QCAtMTYwMSw3ICsxNjAxLDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgUHJvY2Vzc1BlclNpdGUp
CiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0MyA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzE6Ly9ob3N0Mi9tYWluLmh0bWwiXV07CiAgICAg
W3dlYlZpZXc0IGxvYWRSZXF1ZXN0OnJlcXVlc3QzXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0VRKDJVLCBwcm9jZXNzUG9vbC5fc2VydmljZVdv
cmtlclByb2Nlc3NDb3VudCk7CkBAIC0xNjMzLDcgKzE2MzMsNyBAQCBURVNUKFNlcnZpY2VXb3Jr
ZXJzLCBUaHJvdHRsZUNyYXNoKQogICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRh
U3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURh
dGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFu
ZGxlcjpeKCkgewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5T
KFtbU1dNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwpAQCAtMTY3MCw3ICsxNjcwLDcgQEAg
VEVTVChTZXJ2aWNlV29ya2VycywgVGhyb3R0bGVDcmFzaCkKICAgICBbd2ViVmlldzEgbG9hZFJl
cXVlc3Q6cmVxdWVzdDFdOwogCiAgICAgZGlkRmluaXNoTmF2aWdhdGlvbiA9IGZhbHNlOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRmluaXNoTmF2aWdhdGlvbik7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZGlkRmluaXNoTmF2aWdhdGlvbik7CiAKICAgICBhdXRvIHdl
YlZpZXcyQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTY4Nyw3ICsxNjg3LDcgQEAgVEVT
VChTZXJ2aWNlV29ya2VycywgVGhyb3R0bGVDcmFzaCkKICAgICBbd2ViVmlldzIgbG9hZFJlcXVl
c3Q6cmVxdWVzdDFdOwogCiAgICAgZGlkRmluaXNoTmF2aWdhdGlvbiA9IGZhbHNlOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRmluaXNoTmF2aWdhdGlvbik7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZGlkRmluaXNoTmF2aWdhdGlvbik7CiB9CiAKIFRFU1QoU2Vydmlj
ZVdvcmtlcnMsIExvYWREYXRhKQpAQCAtMTcwMSw3ICsxNzAxLDcgQEAgVEVTVChTZXJ2aWNlV29y
a2VycywgTG9hZERhdGEpCiAgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9y
ZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5
cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVy
Ol4oKSB7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOwpAQCAtMTcyNywxNCArMTcyNywxNCBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBMb2Fk
RGF0YSkKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgLy8gTm93IHRyeSBhIGRhdGEgbG9hZC4KICAgICBOU0RhdGEg
KmRhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6bWFpbkJ5dGVzIGxlbmd0aDpzdHJsZW4obWFp
bkJ5dGVzKV07CiAgICAgW3dlYlZpZXcgbG9hZERhdGE6ZGF0YSBNSU1FVHlwZTpAInRleHQvaHRt
bCIgY2hhcmFjdGVyRW5jb2RpbmdOYW1lOkAiVVRGLTgiIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiB9CiAKQEAgLTE3NzcsNyArMTc3Nyw3IEBAIFRFU1QoU2VydmljZVdvcmtl
cnMsIFJlc3RvcmVGcm9tRGlza05vbkQKIAogICAgICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9o
b3N0L21haW4uaHRtbCJdXV07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgICAgIGRv
bmUgPSBmYWxzZTsKIAogICAgICAgICBbd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nl
c3NQb29sIF90ZXJtaW5hdGVTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzXTsKQEAgLTE4MDQsNyArMTgw
NCw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFJlc3RvcmVGcm9tRGlza05vbkQKIAogICAgICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXV07CiAKLSAgICAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgICAgIGRvbmUgPSBmYWxzZTsKICAgICB9CiB9CkBAIC0xODE3LDcg
KzE4MTcsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBTdXNwZW5kTmV0d29ya1Byb2NlCiAgICAg
W1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6
W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltO
U0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAgICAgIGRvbmUg
PSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAg
ICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9w
dE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtMTg0Myw3ICsx
ODQzLDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgU3VzcGVuZE5ldHdvcmtQcm9jZQogICAgIE5T
VVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7
CiAKICAgICBhdXRvIHN0b3JlID0gW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV07CkBA
IC0xODYxLDcgKzE4NjEsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBTdXNwZW5kTmV0d29ya1By
b2NlCiAgICAgWyB3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wgX3NlbmRO
ZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZV07CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9U
UlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpzd0RC
UGF0aC5wYXRoXSk7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Nob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0ubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0ubW0JKHdvcmtpbmcgY29weSkK
QEAgLTU5LDE1ICs1OSwxNSBAQCBURVNUKFdlYktpdCwgU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlz
dEl0CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsK
IAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsK
LSAgICBVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBydW5VbnRpbChmaW5pc2hlZCk7CiAgICAg
CiAgICAgZmluaXNoZWQgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJzaW1wbGUtaWZyYW1lIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwotICAgIFV0aWw6OnJ1bigmZmluaXNoZWQpOwor
ICAgIHJ1blVudGlsKGZpbmlzaGVkKTsKIAogICAgIGZpbmlzaGVkID0gZmFsc2U7CiAgICAgW3dl
YlZpZXcgZ29CYWNrXTsKLSAgICBVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBydW5VbnRpbChm
aW5pc2hlZCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2hvdWxkT3BlbkV4dGVybmFsVVJMc0lu
TmV3V2luZG93QWN0aW9ucy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnMu
bW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luTmV3V2luZG93QWN0aW9ucy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtODIsMTQgKzgyLDE0IEBAIFRFU1QoV2ViS2l0LCBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzSW5XaW4KICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmNvbnRyb2xsZXIuZ2V0KCld
OwogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBvbmNsaWNrPVwid2luZG93
Lm9wZW4oJ2h0dHBzOi8vd2Via2l0Lm9yZy9kZXN0aW5hdGlvbicpXCI+IiBiYXNlVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL3dlYmtpdC5vcmciXV07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGZpbmlzaGVkTmF2aWdhdGlvbik7CiAgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFs
c2U7CiAKICAgICBOU1BvaW50IGNsaWNrUG9pbnQgPSBOU01ha2VQb2ludCgxMDAsIDEwMCk7CiAK
ICAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZURvd246W05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1Bv
aW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5k
b3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJl
OjFdXTsKICAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVwOltOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNr
UG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdp
bmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1
cmU6MV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmY3JlYXRlZFdlYlZpZXcpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGNyZWF0ZWRXZWJWaWV3KTsKICAgICBjcmVhdGVk
V2ViVmlldyA9IGZhbHNlOwogCiAgICAgLy8gVXNlci1pbml0aWF0ZWQgd2luZG93Lm9wZW4gdG8g
dGhlIHNhbWUgaG9zdCBzaG91bGQgYWxsb3cgZXh0ZXJuYWwgc2NoZW1lcyBidXQgbm90IEFwcCBM
aW5rcy4KQEAgLTk4LDcgKzk4LDcgQEAgVEVTVChXZWJLaXQsIFNob3VsZE9wZW5FeHRlcm5hbFVS
THNJbldpbgogCiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogICAgIFtuZXdXZWJWaWV3IHNl
dE5hdmlnYXRpb25EZWxlZ2F0ZTpjb250cm9sbGVyLmdldCgpXTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRlY2lkZWRQb2xpY3kpOwogICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKIAogICAgIC8vIFVz
ZXItaW5pdGlhdGVkIHdpbmRvdy5vcGVuIHRvIHRoZSBzYW1lIGhvc3Qgc2hvdWxkIGFsbG93IGV4
dGVybmFsIHNjaGVtZXMgYnV0IG5vdCBBcHAgTGlua3MuCkBAIC0xMDYsMTIgKzEwNiwxMiBAQCBU
RVNUKFdlYktpdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luV2luCiAgICAgQVNTRVJUX0ZBTFNF
KFthY3Rpb24gX3Nob3VsZE9wZW5BcHBMaW5rc10pOwogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6QCI8Ym9keSBvbmNsaWNrPVwid2luZG93Lm9wZW4oJ2h0dHA6Ly9hcHBsZS5jb20vZGVz
dGluYXRpb24nKVwiPiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly93ZWJr
aXQub3JnIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0
aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZE5hdmlnYXRpb24pOwog
ICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogCiAgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6
Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGlt
ZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBl
dmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CiAgICAgW1t3ZWJWaWV3IGhp
dFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNF
dmVudFR5cGVMZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0
aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmls
IGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmNyZWF0ZWRXZWJWaWV3KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChjcmVhdGVkV2ViVmlldyk7CiAgICAgY3JlYXRlZFdlYlZpZXcgPSBmYWxzZTsKIAogICAg
IC8vIFVzZXItaW5pdGlhdGVkIHdpbmRvdy5vcGVuIHRvIGRpZmZlcmVudCBob3N0IHNob3VsZCBh
bGxvdyBleHRlcm5hbCBzY2hlbWVzIGFuZCBBcHAgTGlua3MuCkBAIC0xMjAsNyArMTIwLDcgQEAg
VEVTVChXZWJLaXQsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNJbldpbgogCiAgICAgZGVjaWRlZFBv
bGljeSA9IGZhbHNlOwogICAgIFtuZXdXZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpjb250
cm9sbGVyLmdldCgpXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRlY2lkZWRQb2xp
Y3kpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRlY2lkZWRQb2xpY3kpOwogICAgIGRl
Y2lkZWRQb2xpY3kgPSBmYWxzZTsKIAogICAgIC8vIFVzZXItaW5pdGlhdGVkIHdpbmRvdy5vcGVu
IHRvIGRpZmZlcmVudCBob3N0IHNob3VsZCBhbGxvdyBleHRlcm5hbCBzY2hlbWVzIGFuZCBBcHAg
TGlua3MuCkBAIC0xNDMsNyArMTQzLDcgQEAgVEVTVChXZWJLaXQsIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNJblRhcgogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6Y29udHJvbGxlci5nZXQoKV07
CiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxhIHN0eWxlPVwiZGlzcGxheTogYmxv
Y2s7IGhlaWdodDogMTAwJVwiIGhyZWY9XCJodHRwczovL3dlYmtpdC5vcmcvZGVzdGluYXRpb24u
aHRtbFwiIHRhcmdldD1cIl9ibGFua1wiPiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
Imh0dHA6Ly93ZWJraXQub3JnIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmlu
aXNoZWROYXZpZ2F0aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZE5h
dmlnYXRpb24pOwogICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogCiAgICAgTlNQb2lu
dCBjbGlja1BvaW50ID0gTlNNYWtlUG9pbnQoMTAwLCAxMDApOwpAQCAtMTUxLDE0ICsxNTEsMTQg
QEAgVEVTVChXZWJLaXQsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNJblRhcgogICAgIGRlY2lkZWRQ
b2xpY3kgPSBmYWxzZTsKICAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZURv
d246W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBs
b2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1i
ZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tD
b3VudDoxIHByZXNzdXJlOjFdXTsKICAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBt
b3VzZVVwOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVw
IGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051
bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjEgcHJlc3N1cmU6MV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVj
aWRlZFBvbGljeSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGVjaWRlZFBvbGljeSk7
CiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogCiAgICAgLy8gVXNlci1pbml0aWF0ZWQgdGFy
Z2V0ZWQgbmF2aWdhdGlvbiB0byB0aGUgc2FtZSBob3N0IHNob3VsZCBhbGxvdyBleHRlcm5hbCBz
Y2hlbWVzIGJ1dCBub3QgQXBwIExpbmtzLgogICAgIEFTU0VSVF9UUlVFKFthY3Rpb24gX3Nob3Vs
ZE9wZW5FeHRlcm5hbFNjaGVtZXNdKTsKICAgICBBU1NFUlRfRkFMU0UoW2FjdGlvbiBfc2hvdWxk
T3BlbkFwcExpbmtzXSk7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmNyZWF0ZWRX
ZWJWaWV3KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChjcmVhdGVkV2ViVmlldyk7CiAg
ICAgY3JlYXRlZFdlYlZpZXcgPSBmYWxzZTsKIAogICAgIC8vIFVzZXItaW5pdGlhdGVkIHRhcmdl
dGVkIG5hdmlnYXRpb24gdG8gdGhlIHNhbWUgaG9zdCBzaG91bGQgYWxsb3cgZXh0ZXJuYWwgc2No
ZW1lcyBidXQgbm90IEFwcCBMaW5rcy4KQEAgLTE2Nyw3ICsxNjcsNyBAQCBURVNUKFdlYktpdCwg
U2hvdWxkT3BlbkV4dGVybmFsVVJMc0luVGFyCiAKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7
CiAgICAgW25ld1dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmNvbnRyb2xsZXIuZ2V0KCld
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZGVjaWRlZFBvbGljeSk7CiAgICAgZGVjaWRlZFBvbGljeSA9
IGZhbHNlOwogCiAgICAgLy8gVXNlci1pbml0aWF0ZWQgdGFyZ2V0ZWQgbmF2aWdhdGlvbiB0byB0
aGUgc2FtZSBob3N0IHNob3VsZCBhbGxvdyBleHRlcm5hbCBzY2hlbWVzIGJ1dCBub3QgQXBwIExp
bmtzLgpAQCAtMTc1LDIwICsxNzUsMjAgQEAgVEVTVChXZWJLaXQsIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNJblRhcgogICAgIEFTU0VSVF9GQUxTRShbYWN0aW9uIF9zaG91bGRPcGVuQXBwTGlua3Nd
KTsKIAogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGEgc3R5bGU9XCJkaXNwbGF5OiBi
bG9jazsgaGVpZ2h0OiAxMDAlXCIgaHJlZj1cImh0dHA6Ly9hcHBsZS5jb20vZGVzdGluYXRpb24u
aHRtbFwiIHRhcmdldD1cIl9ibGFua1wiPiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
Imh0dHA6Ly93ZWJraXQub3JnIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmlu
aXNoZWROYXZpZ2F0aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZE5h
dmlnYXRpb24pOwogICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogCiAgICAgZGVjaWRl
ZFBvbGljeSA9IGZhbHNlOwogICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNl
RG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3du
IGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051
bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjEgcHJlc3N1cmU6MV1dOwogICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRd
IG1vdXNlVXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNl
VXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93
TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNs
aWNrQ291bnQ6MSBwcmVzc3VyZToxXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
ZWNpZGVkUG9saWN5KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkZWNpZGVkUG9saWN5
KTsKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7CiAKICAgICAvLyBVc2VyLWluaXRpYXRlZCB0
YXJnZXRlZCBuYXZpZ2F0aW9uIHRvIGRpZmZlcmVudCBob3N0IHNob3VsZCBhbGxvdyBleHRlcm5h
bCBzY2hlbWVzIGFuZCBBcHAgTGlua3MuCiAgICAgQVNTRVJUX1RSVUUoW2FjdGlvbiBfc2hvdWxk
T3BlbkV4dGVybmFsU2NoZW1lc10pOwogICAgIEFTU0VSVF9UUlVFKFthY3Rpb24gX3Nob3VsZE9w
ZW5BcHBMaW5rc10pOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjcmVhdGVkV2Vi
Vmlldyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoY3JlYXRlZFdlYlZpZXcpOwogICAg
IGNyZWF0ZWRXZWJWaWV3ID0gZmFsc2U7CiAKICAgICAvLyBVc2VyLWluaXRpYXRlZCB0YXJnZXRl
ZCBuYXZpZ2F0aW9uIHRvIGRpZmZlcmVudCBob3N0IHNob3VsZCBhbGxvdyBleHRlcm5hbCBzY2hl
bWVzIGFuZCBBcHAgTGlua3MuCkBAIC0xOTcsNyArMTk3LDcgQEAgVEVTVChXZWJLaXQsIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNJblRhcgogCiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogICAg
IFtuZXdXZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpjb250cm9sbGVyLmdldCgpXTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRlY2lkZWRQb2xpY3kpOwogICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxz
ZTsKIAogICAgIC8vIFVzZXItaW5pdGlhdGVkIHRhcmdldGVkIG5hdmlnYXRpb24gdG8gZGlmZmVy
ZW50IGhvc3Qgc2hvdWxkIGFsbG93IGV4dGVybmFsIHNjaGVtZXMgYW5kIEFwcCBMaW5rcy4KQEAg
LTIyMCwxMyArMjIwLDEzIEBAIFRFU1QoV2ViS2l0LCBSZXN0b3JlU2hvdWxkT3BlbkV4dGVybmFs
VVIKICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKICAgICBOU1VSTFJlcXVlc3QgKnJl
cXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJzaG91bGQtb3Blbi1leHRlcm5hbC1zY2hlbWVzIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07
CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGZpbmlzaGVkTmF2aWdhdGlvbik7CiAgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7
CiAKICAgICAvLyBCZWZvcmUgY3Jhc2gKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7CiAgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdGVUb1RlbFVSTEluTmVzdGVkWmVy
b1RpbWVyKCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07IC8vIE5vbi11c2VyIGluaXRpYXRlZCBu
YXZpZ2F0aW9uIGJlY2F1c2UgaXQgaXMgcGVyZm9ybWVkIGluIGEgbmVzdGVkIHRpbWVyIGNhbGxi
YWNrLgotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGVjaWRlZFBvbGljeSk7CiAgICAgZGVjaWRlZFBvbGlj
eSA9IGZhbHNlOwogCiAgICAgQVNTRVJUX1RSVUUoW2FjdGlvbiBfc2hvdWxkT3BlbkV4dGVybmFs
U2NoZW1lc10pOwpAQCAtMjM3LDEzICsyMzcsMTMgQEAgVEVTVChXZWJLaXQsIFJlc3RvcmVTaG91
bGRPcGVuRXh0ZXJuYWxVUgogICAgIFt3ZWJWaWV3IHJlbG9hZF07CiAKICAgICBmaW5pc2hlZE5h
dmlnYXRpb24gPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVk
TmF2aWdhdGlvbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZpZ2F0
aW9uKTsKICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKIAogICAgIC8vIEFmdGVyIGNy
YXNoCiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2
YVNjcmlwdDpAIm5hdmlnYXRlVG9UZWxVUkxJbk5lc3RlZFplcm9UaW1lcigpIiBjb21wbGV0aW9u
SGFuZGxlcjpuaWxdOyAvLyBOb24tdXNlciBpbml0aWF0ZWQgbmF2aWdhdGlvbiBiZWNhdXNlIGl0
IGlzIHBlcmZvcm1lZCBpbiBhIG5lc3RlZCB0aW1lciBjYWxsYmFjay4KLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRlY2lkZWRQb2xpY3kpOwogICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKIAogICAgIEFT
U0VSVF9UUlVFKFthY3Rpb24gX3Nob3VsZE9wZW5FeHRlcm5hbFNjaGVtZXNdKTsKQEAgLTMyMCw3
ICszMjAsNyBAQCBURVNUKFdlYktpdCwgSUZyYW1lV2l0aFNhbWVPcmlnaW5Bc01haW5GCiAgICAg
W1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZl
bnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBt
b2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3ZWJWaWV3LmdldCgpLndp
bmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDox
IHByZXNzdXJlOjFdXTsKICAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZVVw
OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwIGxvY2F0
aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpb
d2ViVmlldy5nZXQoKS53aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJl
cjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZCk7
CiAgICAgCiAgICAgQVNTRVJUX1RSVUUob3BlbkFwcExpbmtzKTsKICAgICBBU1NFUlRfVFJVRShl
eHRlcm5hbFNjaGVtZXMpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9TaHJpbmtUb0ZpdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Nocmlua1RvRml0Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nocmlua1RvRml0Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIFRFU1QoV2ViS2l0LCBTaHJpbmtUb0ZpdCkKICAgICAg
ICAgc2hyaW5rVG9GaXREb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmc2hyaW5rVG9GaXREb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChzaHJpbmtUb0ZpdERvbmUpOwogCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAibG90cy1vZi10ZXh0IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVx
dWVzdF07CkBAIC01OSw3ICs1OSw3IEBAIFRFU1QoV2ViS2l0LCBTaHJpbmtUb0ZpdCkKICAgICAg
ICAgc2hyaW5rVG9GaXRBZnRlck5hdmlnYXRpb25Eb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmc2hyaW5rVG9GaXRBZnRlck5hdmlnYXRpb25Eb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChzaHJpbmtUb0ZpdEFmdGVyTmF2aWdhdGlv
bkRvbmUpOwogCiAgICAgW3dlYlZpZXcgX3NldExheW91dE1vZGU6X1dLTGF5b3V0TW9kZVZpZXdT
aXplXTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmNs
aWVudFdpZHRoIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3Ip
IHsKQEAgLTY3LDcgKzY3LDcgQEAgVEVTVChXZWJLaXQsIFNocmlua1RvRml0KQogICAgICAgICBz
aHJpbmtUb0ZpdERpc2FibGVkRG9uZSA9IHRydWU7CiAgICAgfV07CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnNocmlua1RvRml0RGlzYWJsZWREb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChzaHJpbmtUb0ZpdERpc2FibGVkRG9uZSk7CiB9CiAKICNlbmRpZgpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TbmFwc2hvdFN0b3JlLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU25h
cHNob3RTdG9yZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9TbmFwc2hvdFN0b3JlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3
ICs3Niw3IEBAIC0gKHZvaWQpc3luY2hyb25vdXNseUZvcmNlUmVwYWludAogewogICAgIGRpZEZv
cmNlUmVwYWludCA9IGZhbHNlOwogICAgIFdLUGFnZUZvcmNlUmVwYWludChbc2VsZiBfcGFnZUZv
clRlc3RpbmddLCAwLCBmb3JjZVJlcGFpbnRDYWxsYmFjayk7Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkaWRGb3JjZVJlcGFpbnQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRpZEZvcmNlUmVwYWludCk7CiB9CiAKIC0gKHZvaWQpc3luY2hyb25vdXNseUxvYWRUZXN0UGFn
ZUFuZEZvcmNlUmVwYWludDooTlNTdHJpbmcgKil0ZXN0UGFnZU5hbWUKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3RvcFN1c3BlbmRSZXN1bWVBbGxNZWRpYS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1N0
b3BTdXNwZW5kUmVzdW1lQWxsTWVkaWEubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3RvcFN1c3BlbmRSZXN1bWVBbGxNZWRpYS5t
bQkod29ya2luZyBjb3B5KQpAQCAtNDYsMTIgKzQ2LDEyIEBAIFRFU1QoV0tXZWJWaWV3LCBTdG9w
QWxsTWVkaWFQbGF5YmFjaykKICAgICBfX2Jsb2NrIGJvb2wgZGlkQmVnaW5QbGF5aW5nID0gZmFs
c2U7CiAgICAgW3dlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBsYXlpbmci
IGFjdGlvbjpeeyBkaWRCZWdpblBsYXlpbmcgPSB0cnVlOyB9XTsKICAgICBbd2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpLnBsYXkoKSIg
Y29tcGxldGlvbkhhbmRsZXI6bmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRp
ZEJlZ2luUGxheWluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkQmVnaW5QbGF5
aW5nKTsKIAogICAgIF9fYmxvY2sgYm9vbCBkaWRQYXVzZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3
IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJwYXVzZSIgYWN0aW9uOl57IGRpZFBhdXNl
ID0gdHJ1ZTsgfV07CiAgICAgW3dlYlZpZXcgX3N0b3BBbGxNZWRpYVBsYXliYWNrXTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZFBhdXNlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkaWRQYXVzZSk7CiB9CiAKIFRFU1QoV0tXZWJWaWV3LCBTdXNwZW5kUmVzdW1lQWxs
TWVkaWFQbGF5YmFjaykKQEAgLTY2LDEyICs2NiwxMiBAQCBURVNUKFdLV2ViVmlldywgU3VzcGVu
ZFJlc3VtZUFsbE1lZGlhUGxhCiAgICAgX19ibG9jayBib29sIGRpZEJlZ2luUGxheWluZyA9IGZh
bHNlOwogICAgIFt3ZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJwbGF5aW5n
IiBhY3Rpb246XnsgZGlkQmVnaW5QbGF5aW5nID0gdHJ1ZTsgfV07CiAgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKS5wbGF5KCki
IGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
aWRCZWdpblBsYXlpbmcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEJlZ2luUGxh
eWluZyk7CiAKICAgICBfX2Jsb2NrIGJvb2wgZGlkUGF1c2UgPSBmYWxzZTsKICAgICBbd2ViVmll
dyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAicGF1c2UiIGFjdGlvbjpeeyBkaWRQYXVz
ZSA9IHRydWU7IH1dOwogICAgIFt3ZWJWaWV3IF9zdXNwZW5kQWxsTWVkaWFQbGF5YmFja107Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRQYXVzZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZGlkUGF1c2UpOwogCiAgICAgX19ibG9jayBib29sIGRpZFJlamVjdCA9IGZh
bHNlOwogICAgIFt3ZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJyZWplY3Rl
ZCIgYWN0aW9uOl57IGRpZFJlamVjdCA9IHRydWU7IH1dOwpAQCAtODAsNyArODAsNyBAQCBURVNU
KFdLV2ViVmlldywgU3VzcGVuZFJlc3VtZUFsbE1lZGlhUGxhCiAgICAgZGlkQmVnaW5QbGF5aW5n
ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBs
YXlpbmciIGFjdGlvbjpeeyBkaWRCZWdpblBsYXlpbmcgPSB0cnVlOyB9XTsKICAgICBbd2ViVmll
dyBfcmVzdW1lQWxsTWVkaWFQbGF5YmFja107Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkaWRCZWdpblBsYXlpbmcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEJlZ2lu
UGxheWluZyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3RvcmFnZVF1b3RhLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3RvcmFnZVF1b3Rh
Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1N0b3JhZ2VRdW90YS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTk5LDcgKzE5OSw3IEBA
IFRFU1QoV2ViS2l0LCBRdW90YURlbGVnYXRlKQogICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRl
ZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxs
V2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21w
bGV0aW9uSGFuZGxlcjpeKCkgewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKIApAQCAtMjI1LDcgKzIyNSw3IEBAIFRFU1Qo
V2ViS2l0LCBRdW90YURlbGVnYXRlKQogICAgIAogICAgIHJlY2VpdmVkUXVvdGFEZWxlZ2F0ZUNh
bGxlZCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3MSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicXQxOi8vdGVzdDEuaHRtbCJdXV07
Ci0gICAgVXRpbDo6cnVuKCZyZWNlaXZlZFF1b3RhRGVsZWdhdGVDYWxsZWQpOworICAgIHJ1blVu
dGlsKHJlY2VpdmVkUXVvdGFEZWxlZ2F0ZUNhbGxlZCk7CiAKICAgICBhdXRvIHdlYlZpZXcyID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpIGFkZFRvV2lu
ZG93OllFU10pOwogICAgIGF1dG8gZGVsZWdhdGUyID0gYWRvcHROUyhbW1F1b3RhRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKQEAgLTIzNSwxNCArMjM1LDE0IEBAIFRFU1QoV2ViS2l0LCBRdW90YURl
bGVnYXRlKQogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3MiBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAicXQyOi8vdGVzdDIuaHRtbCJdXV07CiAgICAgW21lc3NhZ2VIYW5kbGVyIHNldEV4cGVjdGVk
TWVzc2FnZTogQCJzdGFydCJdOwotICAgIFV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAg
ICBydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwogCiAgICAgRVhQRUNUX0ZBTFNFKGRlbGVnYXRl
Mi5nZXQoKS5xdW90YURlbGVnYXRlQ2FsbGVkKTsKICAgICBbZGVsZWdhdGUxIGdyYW50UXVvdGFd
OwogCiAgICAgW21lc3NhZ2VIYW5kbGVyIHNldEV4cGVjdGVkTWVzc2FnZTogQCJwYXNzIl07CiAg
ICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVXRpbDo6cnVuKCZyZWNlaXZlZE1lc3Nh
Z2UpOworICAgIHJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7CiAKICAgICB3aGlsZSAoIWRlbGVn
YXRlMi5nZXQoKS5xdW90YURlbGVnYXRlQ2FsbGVkKQogICAgICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpzbGVlcCgwLjEpOwpAQCAtMjUxLDcgKzI1MSw3IEBAIFRFU1QoV2ViS2l0LCBRdW90YURl
bGVnYXRlKQogCiAgICAgW21lc3NhZ2VIYW5kbGVyIHNldEV4cGVjdGVkTWVzc2FnZTogQCJmYWls
Il07CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVXRpbDo6cnVuKCZyZWNlaXZl
ZE1lc3NhZ2UpOworICAgIHJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7CiB9CiAKIFRFU1QoV2Vi
S2l0LCBRdW90YURlbGVnYXRlUmVsb2FkKQpAQCAtMjYwLDcgKzI2MCw3IEBAIFRFU1QoV2ViS2l0
LCBRdW90YURlbGVnYXRlUmVsb2FkKQogICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHRE
YXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0
ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9u
SGFuZGxlcjpeKCkgewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogICAgIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgCkBAIC0yODEsMjMgKzI4MSwyMyBAQCBU
RVNUKFdlYktpdCwgUXVvdGFEZWxlZ2F0ZVJlbG9hZCkKIAogICAgIHJlY2VpdmVkUXVvdGFEZWxl
Z2F0ZUNhbGxlZCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJxdDovL3Rlc3QxLmh0bWwi
XV1dOwotICAgIFV0aWw6OnJ1bigmcmVjZWl2ZWRRdW90YURlbGVnYXRlQ2FsbGVkKTsKKyAgICBy
dW5VbnRpbChyZWNlaXZlZFF1b3RhRGVsZWdhdGVDYWxsZWQpOwogCiAgICAgW2RlbGVnYXRlIGRl
bnlRdW90YV07CiAKICAgICBbbWVzc2FnZUhhbmRsZXIgc2V0RXhwZWN0ZWRNZXNzYWdlOiBAImZh
aWwiXTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBVdGlsOjpydW4oJnJlY2Vp
dmVkTWVzc2FnZSk7CisgICAgcnVuVW50aWwocmVjZWl2ZWRNZXNzYWdlKTsKIAogICAgIHJlY2Vp
dmVkUXVvdGFEZWxlZ2F0ZUNhbGxlZCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IHJlbG9hZF07Ci0g
ICAgVXRpbDo6cnVuKCZyZWNlaXZlZFF1b3RhRGVsZWdhdGVDYWxsZWQpOworICAgIHJ1blVudGls
KHJlY2VpdmVkUXVvdGFEZWxlZ2F0ZUNhbGxlZCk7CiAKICAgICBbZGVsZWdhdGUgZ3JhbnRRdW90
YV07CiAKICAgICBbbWVzc2FnZUhhbmRsZXIgc2V0RXhwZWN0ZWRNZXNzYWdlOiBAInBhc3MiXTsK
ICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBVdGlsOjpydW4oJnJlY2VpdmVkTWVz
c2FnZSk7CisgICAgcnVuVW50aWwocmVjZWl2ZWRNZXNzYWdlKTsKIH0KIAogVEVTVChXZWJLaXQs
IFF1b3RhRGVsZWdhdGVOYXZpZ2F0ZUZyYWdtZW50KQpAQCAtMzA2LDcgKzMwNiw3IEBAIFRFU1Qo
V2ViS2l0LCBRdW90YURlbGVnYXRlTmF2aWdhdGVGcmFnbWUKICAgICBbW1dLV2Vic2l0ZURhdGFT
dG9yZSBkZWZhdWx0RGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0
b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFz
dF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAKQEAgLTMyNywxMyArMzI3LDEz
IEBAIFRFU1QoV2ViS2l0LCBRdW90YURlbGVnYXRlTmF2aWdhdGVGcmFnbWUKIAogICAgIHJlY2Vp
dmVkUXVvdGFEZWxlZ2F0ZUNhbGxlZCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJxdDov
L3Rlc3QxLmh0bWwiXV1dOwotICAgIFV0aWw6OnJ1bigmcmVjZWl2ZWRRdW90YURlbGVnYXRlQ2Fs
bGVkKTsKKyAgICBydW5VbnRpbChyZWNlaXZlZFF1b3RhRGVsZWdhdGVDYWxsZWQpOwogCiAgICAg
W2RlbGVnYXRlIGRlbnlRdW90YV07CiAKICAgICBbbWVzc2FnZUhhbmRsZXIgc2V0RXhwZWN0ZWRN
ZXNzYWdlOiBAImZhaWwiXTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBVdGls
OjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7CisgICAgcnVuVW50aWwocmVjZWl2ZWRNZXNzYWdlKTsK
IAogICAgIHJlY2VpdmVkUXVvdGFEZWxlZ2F0ZUNhbGxlZCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJxdDovL3Rlc3QxLmh0bWwjZnJhZ21lbnQiXV1dOwpAQCAtMzQxLDExICszNDEsMTEg
QEAgVEVTVChXZWJLaXQsIFF1b3RhRGVsZWdhdGVOYXZpZ2F0ZUZyYWdtZQogCiAgICAgW21lc3Nh
Z2VIYW5kbGVyIHNldEV4cGVjdGVkTWVzc2FnZTogQCJzdGFydCJdOwogICAgIHJlY2VpdmVkTWVz
c2FnZSA9IGZhbHNlOwotICAgIFV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICBydW5V
bnRpbChyZWNlaXZlZE1lc3NhZ2UpOwogCiAgICAgW21lc3NhZ2VIYW5kbGVyIHNldEV4cGVjdGVk
TWVzc2FnZTogQCJmYWlsIl07CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVXRp
bDo6cnVuKCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIHJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7
CiAKICAgICBFWFBFQ1RfRkFMU0UocmVjZWl2ZWRRdW90YURlbGVnYXRlQ2FsbGVkKTsKIH0KSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3RvcmVCbG9iVGhlbkRl
bGV0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1N0b3JlQmxvYlRoZW5EZWxldGUubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3RvcmVCbG9iVGhlbkRlbGV0ZS5tbQkod29y
a2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNyBAQCBURVNUKEluZGV4ZWREQiwgU3RvcmVCbG9iVGhl
bkRlbGV0ZSkKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJTdG9yZUJs
b2JUb0JlRGVsZXRlZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3Rd
OwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlYWR5VG9Db250aW51ZSk7CiAgICAgRVhQRUNUX1dL
X1NUUkVRKEAiU3VjY2VzcyIsIChOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7
CiAKICAgICBOU1N0cmluZyAqaGFzaCA9IFdlYkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06OmNvbXB1
dGVIYXNoRm9yRmlsZU5hbWUoIlN0b3JlQmxvYlRvQmVEZWxldGVkIik7CkBAIC0xMjQsNSArMTI0
LDUgQEAgVEVTVChJbmRleGVkREIsIFN0b3JlQmxvYlRoZW5EZWxldGUpCiAKICAgICAgICAgcmVh
ZHlUb0NvbnRpbnVlID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlYWR5VG9Db250aW51ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVhZHlU
b0NvbnRpbnVlKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvVUlEZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1VJRGVsZWdhdGUubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5
KQpAQCAtNzIsNyArNzIsNyBAQCBURVNUKFdlYktpdCwgV0tXZWJWaWV3SXNQbGF5aW5nQXVkaW8p
CiAgICAgW3dlYlZpZXcgYWRkT2JzZXJ2ZXI6b2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAIl9p
c1BsYXlpbmdBdWRpbyIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IHwgTlNL
ZXlWYWx1ZU9ic2VydmluZ09wdGlvbk9sZCBjb250ZXh0Om5pbF07CiAgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiZmlsZS13aXRoLXZpZGVvIl07CiAgICAgW3dl
YlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAicGxheVZpZGVvKCkiIGNvbXBsZXRpb25IYW5kbGVy
Om5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogQGludGVyZmFjZSBOb1VJRGVsZWdhdGUgOiBO
U09iamVjdCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+CkBAIC05Niw3ICs5Niw3IEBAIFRFU1QoV2Vi
S2l0LCBXaW5kb3dPcGVuV2l0aG91dFVJRGVsZWdhdGUKICAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW05vVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmln
YXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJp
bmc6QCI8c2NyaXB0PndpbmRvdy5vcGVuKCdzaW1wbGUyLmh0bWwnKTt3aW5kb3cubG9jYXRpb249
J3NpbXBsZS5odG1sJzwvc2NyaXB0PiIgYmFzZVVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAic2ltcGxlMiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKIEBp
bnRlcmZhY2UgR2VvbG9jYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2
YXRlPiB7CkBAIC0xNjIsMTMgKzE2MiwxMyBAQCBURVNUKFdlYktpdCwgR2VvbG9jYXRpb25QZXJt
aXNzaW9uKQogICAgIGF1dG8gZGVsZWdhdGUxID0gYWRvcHROUyhbW0dlb2xvY2F0aW9uRGVsZWdh
dGUgYWxsb2NdIGluaXRXaXRoQWxsb3dHZW9sb2NhdGlvbjpmYWxzZV0pOwogICAgIFt3ZWJWaWV3
IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUxLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0
cmluZzpodG1sIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1wbGUu
Y29tLyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8g
ZGVsZWdhdGUyID0gYWRvcHROUyhbW0dlb2xvY2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRo
QWxsb3dHZW9sb2NhdGlvbjp0cnVlXSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxl
Z2F0ZTIuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBzOi8vZXhhbXBsZS5vcmcvIl1dOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZG9uZSk7CiB9CiAKIEBpbnRlcmZhY2UgSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlSXNTZWxlY3RF
bGVtZW50RGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4KQEAgLTE5Myw3
ICsxOTMsNyBAQCBURVNUKFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlSXNTCiAgICAg
YXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGVJc1NlbGVj
dEVsZW1lbnREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdh
dGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJdXV07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTI0NCw3ICsyNDQs
NyBAQCBURVNUKFdlYktpdCwgU2hvd1dlYlZpZXcpCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwg
NjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBbd2ViVmlldyBz
ZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDov
Ly9maXJzdCJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICAKICAgICBBU1NFUlRfRVEod2ViVmll
d0Zyb21EZWxlZ2F0ZUNhbGxiYWNrLCBjcmVhdGVkV2ViVmlldyk7CiB9CkBAIC0yNzQsNyArMjc0
LDcgQEAgVEVTVChXZWJLaXQsIFBvaW50ZXJMb2NrKQogICAgICAgICBAIjwvc2NyaXB0PiIKICAg
ICBdOwogICAgIFt3ZWJWaWV3IHNlbmRDbGlja3NBdFBvaW50Ok5TTWFrZVBvaW50KDIwMCwgMjAw
KSBudW1iZXJPZkNsaWNrczoxXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiBzdGF0aWMgYm9vbCBy
ZXNpemFibGVTZXQ7CkBAIC0zMTUsNyArMzE1LDcgQEAgVEVTVChXZWJLaXQsIFJ1bk1vZGFsKQog
ICAgIE5TU3RyaW5nICpodG1sID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQCVAJUAi
LCBAIjxzY3JpcHQ+IGZ1bmN0aW9uIG9wZW5Nb2RhbCgpIHsgd2luZG93LnNob3dNb2RhbERpYWxv
ZygnIiwgdXJsLCBAIicpOyB9IDwvc2NyaXB0PiA8aW5wdXQgdHlwZT0nYnV0dG9uJyB2YWx1ZT0n
Q2xpY2sgdG8gb3BlbiBtb2RhbCcgb25jbGljaz0nb3Blbk1vZGFsKCk7Jz4iXTsKICAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6aHRtbF07CiAgICAgW3dlYlZpZXcgc2Vu
ZENsaWNrc0F0UG9pbnQ6TlNNYWtlUG9pbnQoMjAsIDYwMCAtIDIwKSBudW1iZXJPZkNsaWNrczox
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiBzdGF0aWMgYm9vbCByZWNlaXZlZFdpbmRvd0ZyYW1l
OwpAQCAtMzU0LDggKzM1NCw4IEBAIFRFU1QoV2ViS2l0LCBXaW5kb3dGcmFtZSkKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZp
ZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6QCI8c2NyaXB0Pm1vdmVCeSgxMCwyMCk7YWxlcnQob3V0ZXJXaWR0aCk7PC9zY3JpcHQ+
IiBiYXNlVVJMOm5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFdp
bmRvd0ZyYW1lKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkV2luZG93RnJhbWUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiBzdGF0aWMgYm9vbCBoZWFkZXJIZWlnaHRDYWxs
ZWQ7CkBAIC00MTQsMTcgKzQxNCwxNyBAQCBURVNUKFdlYktpdCwgUHJpbnRGcmFtZSkKICAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1ByaW50RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAg
ICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBs
b2FkSFRNTFN0cmluZzpAIjxoZWFkPjx0aXRsZT50ZXN0X3RpdGxlPC90aXRsZT48L2hlYWQ+PGJv
ZHkgb25sb2FkPSdwcmludCgpJz5oZWxsbyB3b3JsZCE8L2JvZHk+IiBiYXNlVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAiaHR0cDovL2V4YW1wbGUuY29tLyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwog
CiAgICAgTlNQcmludE9wZXJhdGlvbiAqb3BlcmF0aW9uID0gW3dlYlZpZXcgX3ByaW50T3BlcmF0
aW9uV2l0aFByaW50SW5mbzpbTlNQcmludEluZm8gc2hhcmVkUHJpbnRJbmZvXV07CiAgICAgRVhQ
RUNUX1RSVUUob3BlcmF0aW9uLmNhblNwYXduU2VwYXJhdGVUaHJlYWQpOwogICAgIEVYUEVDVF9T
VFJFUShvcGVyYXRpb24uam9iVGl0bGUuVVRGOFN0cmluZywgInRlc3RfdGl0bGUiKTsKIAogICAg
IFtvcGVyYXRpb24gcnVuT3BlcmF0aW9uTW9kYWxGb3JXaW5kb3c6W3dlYlZpZXcgaG9zdFdpbmRv
d10gZGVsZWdhdGU6bmlsIGRpZFJ1blNlbGVjdG9yOm5pbCBjb250ZXh0SW5mbzpuaWxdOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaGVhZGVySGVpZ2h0Q2FsbGVkKTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZvb3RlckhlaWdodENhbGxlZCk7Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkcmF3SGVhZGVyQ2FsbGVkKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRyYXdGb290ZXJDYWxsZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGhlYWRlckhlaWdodENhbGxlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZm9vdGVy
SGVpZ2h0Q2FsbGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkcmF3SGVhZGVyQ2Fs
bGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkcmF3Rm9vdGVyQ2FsbGVkKTsKIH0K
IAogQGludGVyZmFjZSBOb3RpZmljYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdh
dGVQcml2YXRlPiB7CkBAIC00NzAsMTEgKzQ3MCwxMSBAQCBURVNUKFdlYktpdCwgTm90aWZpY2F0
aW9uUGVybWlzc2lvbikKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpbW1tOb3RpZmljYXRpb25E
ZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhBbGxvd05vdGlmaWNhdGlvbnM6WUVTXSBhdXRvcmVsZWFz
ZV1dOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFzZVVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLm9yZyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOltbW05vdGlmaWNhdGlv
bkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEFsbG93Tm90aWZpY2F0aW9uczpOT10gYXV0b3JlbGVh
c2VdXTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20iXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0K
IAogQGludGVyZmFjZSBQbHVnSW5EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2
YXRlPgpAQCAtNTAwLDcgKzUwMCw3IEBAIFRFU1QoV2ViS2l0LCBVbmF2YWlsYWJsZVBsdWdJbikK
ICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8b2JqZWN0IHR5cGU9J2FwcGxpY2F0aW9u
L3gtc2hvY2t3YXZlLWZsYXNoJy8+Il07CiAgICAgW3dlYlZpZXcgc2VuZENsaWNrc0F0UG9pbnQ6
TlNNYWtlUG9pbnQoMjEwLCA2MDAgLSA4MCkgbnVtYmVyT2ZDbGlja3M6MV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKIH0KIAogYm9vbCBmaXJzdFRvb2xiYXJEb25lOwpAQCAtNTM1LDcgKzUzNSw3IEBAIFRF
U1QoV2ViS2l0LCBUb29sYmFyVmlzaWJsZSkKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rvb2xiYXJEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdh
dGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0
cmluZzpAIjxzY3JpcHQ+YWxlcnQoJ3Zpc2libGU6JyArIHdpbmRvdy50b29sYmFyLnZpc2libGUp
O2FsZXJ0KCd2aXNpYmxlOicgKyB3aW5kb3cudG9vbGJhci52aXNpYmxlKTwvc2NyaXB0PiJdOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiB9CiAKIEBpbnRlcmZhY2UgTW91c2VNb3ZlT3ZlckVsZW1lbnREZWxl
Z2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGVQcml2YXRlPgpAQCAtNTYyLDcgKzU2Miw3IEBA
IFRFU1QoV2ViS2l0LCBNb3VzZU1vdmVPdmVyRWxlbWVudCkKICAgICBbd2ViVmlldyBzZXRVSURl
bGVnYXRlOltbW01vdXNlTW92ZU92ZXJFbGVtZW50RGVsZWdhdGUgYWxsb2NdIGluaXRdIGF1dG9y
ZWxlYXNlXV07CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGEg
aHJlZj0naHR0cDovL2V4YW1wbGUuY29tL3BhdGgnIHRpdGxlPSdsaW5rIHRpdGxlJz5saW5rIGxh
YmVsPC9hPiJdOwogICAgIFt3ZWJWaWV3IG1vdXNlTW92ZVRvUG9pbnQ6TlNNYWtlUG9pbnQoMjAs
IDYwMCAtIDIwKSB3aXRoRmxhZ3M6TlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogfQogCiBzdGF0aWMgYm9vbCByZWFkeUZvckNsaWNrOwpAQCAtNTk2LDExICs1OTYs
MTEgQEAgVEVTVChXZWJLaXQsIENsaWNrQXV0b0ZpbGxCdXR0b24pCiAgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tBdXRvRmlsbERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZp
ZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVK
YXZhU2NyaXB0OkAiIiBjb21wbGV0aW9uSGFuZGxlcjogbmlsXTsgLy8gRW5zdXJlIHRoZSBXZWJQ
cm9jZXNzIGFuZCBpbmplY3RlZCBidW5kbGUgYXJlIHJ1bm5pbmcuCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZyZWFkeUZvckNsaWNrKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChyZWFkeUZvckNsaWNrKTsKICAgICBOU1BvaW50IGJ1dHRvbkxvY2F0aW9uID0gTlNNYWtlUG9p
bnQoMTMwLCA1NzUpOwogICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6YnV0dG9uTG9jYXRp
b24gc2ltdWxhdGVQcmVzc3VyZTpOT107CiAgICAgW3dlYlZpZXcgbW91c2VVcEF0UG9pbnQ6YnV0
dG9uTG9jYXRpb25dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKIHN0YXRpYyBib29sIHJlYWR5dG9S
ZXNpZ247CkBAIC02MzYsOSArNjM2LDkgQEAgc3RhdGljIHZvaWQgdGVzdERpZFJlc2lnbklucHV0
RWxlbWVudFN0cgogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbRGlkUmVzaWduSW5wdXRF
bGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAg
ICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCIiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07IC8vIE1ha2Ugc3Vy
ZSBXZWJQcm9jZXNzIGFuZCBpbmplY3RlZCBidW5kbGUgYXJlIHJ1bm5pbmcuCi0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeXRvUmVzaWduKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChyZWFkeXRvUmVzaWduKTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6
c2NyaXB0IGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogVEVT
VChXZWJLaXQsIERpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZVdo
ZW5UeXBlRGlkQ2hhbmdlKQpAQCAtNjc4LDcgKzY3OCw3IEBAIFRFU1QoV2ViS2l0LCBBdXRvRmls
bEF2YWlsYWJsZSkKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0F1dG9GaWxsQXZhaWxh
YmxlRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRl
bGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCIiIGNvbXBs
ZXRpb25IYW5kbGVyOiBuaWxdOyAvLyBFbnN1cmUgdGhlIFdlYlByb2Nlc3MgYW5kIGluamVjdGVk
IGJ1bmRsZSBhcmUgcnVubmluZy4KLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiBAaW50ZXJmYWNlIElu
amVjdGVkQnVuZGxlTm9kZUhhbmRsZUlzVGV4dEZpZWxkRGVsZWdhdGUgOiBOU09iamVjdCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4KQEAgLTcwMyw3ICs3MDMsNyBAQCBURVNUKFdlYktpdCwgSW5qZWN0
ZWRCdW5kbGVOb2RlSGFuZGxlSXNUCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tJbmpl
Y3RlZEJ1bmRsZU5vZGVIYW5kbGVJc1RleHRGaWVsZERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAg
ICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAImFib3V0OmJsYW5rIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiBAaW50ZXJmYWNl
IFBpbm5lZFN0YXRlT2JzZXJ2ZXIgOiBOU09iamVjdApAQCAtNzI5LDcgKzcyOSw3IEBAIFRFU1Qo
V2ViS2l0LCBQaW5uZWRTdGF0ZSkKICAgICBhdXRvIG9ic2VydmVyID0gYWRvcHROUyhbW1Bpbm5l
ZFN0YXRlT2JzZXJ2ZXIgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBhZGRPYnNlcnZlcjpv
YnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAiX3Bpbm5lZFN0YXRlIiBvcHRpb25zOk5TS2V5VmFs
dWVPYnNlcnZpbmdPcHRpb25OZXcgfCBOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uT2xkIGNvbnRl
eHQ6bmlsXTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxib2R5IG9ubG9hZD0nc2Ny
b2xsKDEwMCwgMTAwKScgc3R5bGU9J2hlaWdodDoxMDAwMHZoOycvPiIgYmFzZVVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXV07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
IH0KIAogQGludGVyZmFjZSBEaWRTY3JvbGxEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdh
dGVQcml2YXRlPgpAQCAtNzUwLDcgKzc1MCw3IEBAIFRFU1QoV2ViS2l0LCBEaWRTY3JvbGwpCiAg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tEaWRTY3JvbGxEZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3
ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgb25sb2FkPSdzY3JvbGwoMTAwLCAxMDApJyBz
dHlsZT0naGVpZ2h0OjEwMDAwdmg7Jy8+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
aHR0cDovL2V4YW1wbGUuY29tLyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiBzdGF0aWMgTlNF
dmVudCAqdGFiRXZlbnQoTlNXaW5kb3cgKndpbmRvdywgTlNFdmVudFR5cGUgdHlwZSwgTlNFdmVu
dE1vZGlmaWVyRmxhZ3MgZmxhZ3MpCkBAIC03OTMsNyArNzkzLDcgQEAgVEVTVChXZWJLaXQsIEZv
Y3VzKQogICAgIE5TU3RyaW5nICpodG1sID0gQCI8c2NyaXB0PmZ1bmN0aW9uIGxvYWRlZCgpIHsg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luJykuZm9jdXMoKTsgYWxlcnQoJ3JlYWR5Jyk7IH08
L3NjcmlwdD4iCiAgICAgIjxib2R5IG9ubG9hZD0nbG9hZGVkKCknPjxpbnB1dCB0eXBlPSd0ZXh0
JyBpZD0naW4nPjwvYm9keT4iOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmh0bWwgYmFz
ZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBBU1NFUlRfRVEodGFrZW5EaXJlY3Rpb24sIF9XS0ZvY3VzRGlyZWN0
aW9uQmFja3dhcmQpOwogfQogCkBAIC04MzQsNyArODM0LDcgQEAgVEVTVChXZWJLaXQsIFNhdmVE
YXRhVG9GaWxlKQogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5n
ZXQoKV07CiAgICAgTlNVUkwgKnBkZlVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJ0ZXN0IiB3aXRoRXh0ZW5zaW9uOkAicGRmIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6cGRmVVJMXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogI2Vu
ZGlmIC8vIE1PVVNFX0VWRU5UX0NBVVNFU19ET1dOTE9BRApAQCAtODgwLDcgKzg4MCw3IEBAIFRF
U1QoV2ViS2l0LCBEaWROb3RIYW5kbGVXaGVlbEV2ZW50KQogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbV2hlZWxEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldFVJ
RGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAi
PGJvZHkgb25sb2FkPSdhbGVydChcInJlYWR5XCIpJyBvbndoZWVsPScoKT0+e30nIHN0eWxlPSdv
dmVyZmxvdzpoaWRkZW47IGhlaWdodDoxMDAwMHZoOyc+PC9ib2R5PiIgYmFzZVVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXV07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
IH0KIAogI2VuZGlmIC8vIFJFTElBQkxFX0RJRF9OT1RfSEFORExFX1dIRUVMX0VWRU5UCkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJDb250ZW50Q29udHJv
bGxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1VzZXJDb250ZW50Q29udHJvbGxlci5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyQ29udGVudENvbnRyb2xsZXIubW0J
KHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJv
bGxlciwgU2NyaXB0TWVzcwogCiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0hlbGxv
JykiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxz
ZTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShAIkhlbGxvIiwgKE5TU3RyaW5nICopW3NjcmlwdE1l
c3NhZ2VzWzBdIGJvZHldKTsKQEAgLTExMSwxMyArMTExLDEzIEBAIFRFU1QoV0tVc2VyQ29udGVu
dENvbnRyb2xsZXIsIFNjcmlwdE1lc3MKICAgICBpc0RvbmVXaXRoTmF2aWdhdGlvbiA9IGZhbHNl
OwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNz
YWdlID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJIZWxsbyIsIChOU1N0cmluZyAq
KVtzY3JpcHRNZXNzYWdlc1swXSBib2R5XSk7CiAKICAgICBpZiAoIWlzRG9uZVdpdGhOYXZpZ2F0
aW9uKQotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZVdpdGhOYXZpZ2F0
aW9uKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lV2l0aE5hdmlnYXRp
b24pOwogCiAgICAgX19ibG9jayBib29sIGlzRG9uZUV2YWx1YXRpbmdTY3JpcHQgPSBmYWxzZTsK
ICAgICBfX2Jsb2NrIE5TU3RyaW5nICpyZXN1bHRWYWx1ZSA9IEAiIjsKQEAgLTEzNCw3ICsxMzQs
NyBAQCBURVNUKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBTY3JpcHRNZXNzCiAgICAgICAgICAg
ICBpc0RvbmVFdmFsdWF0aW5nU2NyaXB0ID0gdHJ1ZTsKICAgICAgICAgfV07CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZUV2YWx1YXRpbmdTY3JpcHQpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZUV2YWx1YXRpbmdTY3JpcHQpOwogCiAgICAgRVhQRUNU
X1dLX1NUUkVRKEAiUEFTUyIsIHJlc3VsdFZhbHVlKTsKIH0KQEAgLTE2Miw3ICsxNjIsNyBAQCBU
RVNUKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBTY3JpcHRNZXNzCiAgICAgICAgICAiICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmhhbmRsZXJUb1Bvc3QucG9zdE1lc3NhZ2UoJ0ZB
SUwnKTsiCiAgICAgICAgICAifSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKIAotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkU2Ny
aXB0TWVzc2FnZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAiUEFTUyIsIChOU1N0
cmluZyAqKVtzY3JpcHRNZXNzYWdlc1swXSBib2R5XSk7CkBAIC0xNzcsNyArMTc3LDcgQEAgVEVT
VChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgU2NyaXB0TWVzcwogICAgICAgICAgIiAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5oYW5kbGVyVG9Qb3N0LnBvc3RNZXNzYWdlKCdQQVNT
Jyk7IgogICAgICAgICAgIn0iIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICByZWNlaXZlZFNjcmlw
dE1lc3NhZ2UgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShAIlBBU1MiLCAoTlNTdHJp
bmcgKilbc2NyaXB0TWVzc2FnZXNbMF0gYm9keV0pOwpAQCAtMjEwLDcgKzIxMCw3IEBAIFRFU1Qo
V0tVc2VyQ29udGVudENvbnRyb2xsZXIsIFNjcmlwdE1lc3MKICAgICAgICAgICIgICAgd2luZG93
LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuaGFuZGxlclRvUG9zdC5wb3N0TWVzc2FnZSgnUEFTUycp
OyIKICAgICAgICAgICJ9IiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJQQVNTIiwgKE5TU3RyaW5n
ICopW3NjcmlwdE1lc3NhZ2VzWzBdIGJvZHldKTsKQEAgLTI1MCw3ICsyNTAsNyBAQCBURVNUKFdL
VXNlckNvbnRlbnRDb250cm9sbGVyLCBTY3JpcHRNZXNzCiAgICAgICIgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMuaGFuZGxlclRvUG9zdC5wb3N0TWVzc2FnZSgnUEFTUycpOyIKICAg
ICAgIn0iIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBm
YWxzZTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShAIlBBU1MiLCAoTlNTdHJpbmcgKilbc2NyaXB0
TWVzc2FnZXNbMF0gYm9keV0pOwpAQCAtMjcxLDcgKzI3MSw3IEBAIFRFU1QoV0tVc2VyQ29udGVu
dENvbnRyb2xsZXIsIFNjcmlwdE1lc3MKIAogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlw
dDpAIndpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdl
KCdGaXJzdCBNZXNzYWdlJykiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKIAogICAgIEVYUEVDVF9XS19T
VFJFUShAIkZpcnN0IE1lc3NhZ2UiLCAoTlNTdHJpbmcgKilbc2NyaXB0TWVzc2FnZXNbMF0gYm9k
eV0pOwogICAgIApAQCAtMjgyLDcgKzI4Miw3IEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xs
ZXIsIFNjcmlwdE1lc3MKIAogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRv
dy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdTZWNvbmQg
TWVzc2FnZScpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJT
ZWNvbmQgTWVzc2FnZSIsIChOU1N0cmluZyAqKVtzY3JpcHRNZXNzYWdlc1sxXSBib2R5XSk7CiB9
CkBAIC0zMDUsNyArMzA1LDcgQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgU2NyaXB0
TWVzcwogICAgIC8vIFRlc3QgdGhhdCBoYW5kbGVyVG9SZXBsYWNlIHdhcyBzdWNjZXNmdWxseSBh
ZGRlZC4KICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy5oYW5kbGVyVG9SZXBsYWNlLnBvc3RNZXNzYWdlKCdQQVNTMScpOyIgY29t
cGxldGlvbkhhbmRsZXI6bmlsXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogCiAg
ICAgRVhQRUNUX1dLX1NUUkVRKEAiUEFTUzEiLCAoTlNTdHJpbmcgKilbc2NyaXB0TWVzc2FnZXNb
MF0gYm9keV0pOwpAQCAtMzE2LDcgKzMxNiw3IEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xs
ZXIsIFNjcmlwdE1lc3MKICAgICAvLyBUZXN0IHRoYXQgaGFuZGxlclRvUmVwbGFjZSBzdGlsbCB3
b3Jrcy4KICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy5oYW5kbGVyVG9SZXBsYWNlLnBvc3RNZXNzYWdlKCdQQVNTMicpOyIgY29t
cGxldGlvbkhhbmRsZXI6bmlsXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogCiAg
ICAgRVhQRUNUX1dLX1NUUkVRKEAiUEFTUzIiLCAoTlNTdHJpbmcgKilbc2NyaXB0TWVzc2FnZXNb
MV0gYm9keV0pOwpAQCAtMzM5LDcgKzMzOSw3IEBAIHN0YXRpYyB2b2lkIGV4cGVjdFNjcmlwdEV2
YWx1YXRlc1RvQ29sb3IKICAgICAgICAgZGlkQ2hlY2tCYWNrZ3JvdW5kQ29sb3IgPSB0cnVlOwog
ICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDaGVja0JhY2tncm91
bmRDb2xvcik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkQ2hlY2tCYWNrZ3JvdW5k
Q29sb3IpOwogICAgIGRpZENoZWNrQmFja2dyb3VuZENvbG9yID0gZmFsc2U7CiB9CiAKQEAgLTU5
Miw3ICs1OTIsNyBAQCBURVNUKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBVc2VyU2NyaXB0CiBz
dGF0aWMgdm9pZCB3YWl0Rm9yTWVzc2FnZXMoc2l6ZV90IGV4cGVjdGVkQ291bnQpCiB7CiAgICAg
d2hpbGUgKHNjcmlwdE1lc3NhZ2VzLnNpemUoKSA8IGV4cGVjdGVkQ291bnQpIHsKLSAgICAgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgICAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgICAg
ICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICB9CiB9CkBAIC02MjIsNyArNjIy
LDcgQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgSW5qZWN0VXNlcgogCiAgICAgaXNE
b25lV2l0aE5hdmlnYXRpb24gPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZVdpdGhOYXZpZ2F0aW9u
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmVXaXRoTmF2aWdhdGlvbik7CiAK
ICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICBbW2NvbmZpZ3VyYXRpb24g
dXNlckNvbnRlbnRDb250cm9sbGVyXSBfYWRkVXNlclNjcmlwdEltbWVkaWF0ZWx5OnN0YXJ0QWxs
RnJhbWVzLmdldCgpXTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvVXNlckNvbnRlbnRXb3JsZC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1VzZXJDb250ZW50V29ybGQubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlckNvbnRlbnRXb3Js
ZC5tbQkod29ya2luZyBjb3B5KQpAQCAtNzIsNyArNzIsNyBAQCBURVNUKFVzZXJDb250ZW50V29y
bGQsIE5vcm1hbFdvcmxkVXNlclNjCiAgICAgfV07CiAKICAgICBpc0RvbmUgPSBmYWxzZTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoaXNEb25lKTsKIH0KIAogVEVTVChVc2VyQ29udGVudFdvcmxkLCBJc29sYXRlZFdv
cmxkKQpAQCAtMTA3LDcgKzEwNyw3IEBAIFRFU1QoVXNlckNvbnRlbnRXb3JsZCwgSXNvbGF0ZWRX
b3JsZFVzZXIKICAgICB9XTsKIAogICAgIGlzRG9uZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0Rv
bmUpOwogfQogCiBzdGF0aWMgYm9vbCBkaWRPYnNlcnZlTm9ybWFsV29ybGQ7CkBAIC0xNDksNiAr
MTQ5LDYgQEAgICAgIFtbd2ViVmlldyBfcmVtb3RlT2JqZWN0UmVnaXN0cnldIHJlZwogCiAgICAg
W3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjog
cmVkOyc+PC9ib2R5PiIgYmFzZVVSTDpuaWxdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkaWRPYnNlcnZlTm9ybWFsV29ybGQpOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZGlkT2JzZXJ2ZVdvcmxkV2l0aE5hbWUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRpZE9ic2VydmVOb3JtYWxXb3JsZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlk
T2JzZXJ2ZVdvcmxkV2l0aE5hbWUpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Vc2VySW5pdGlhdGVkQWN0aW9uSW5OYXZpZ2F0aW9uQWN0aW9uLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlcklu
aXRpYXRlZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VySW5pdGlhdGVkQWN0aW9u
SW5OYXZpZ2F0aW9uQWN0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05MCw3ICs5MCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGxvYWRUZXN0KE5TU3RyaW5nICp0ZXN0KQogICAgIHsKICAgICAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpVUkxXaXRo
RnJhZ21lbnQodGVzdCldXTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5p
c2hlZE5hdmlnYXRpb24pOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hl
ZE5hdmlnYXRpb24pOwogICAgICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKICAgICB9
CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCBURVNUX0YoVXNlckluaXRpYXRlZEFjdGlvblRlc3QsIE1h
aWx0b0luCiAKICAgICBjbGljaygpOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZm
aW5pc2hlZFBvbGljeSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWRQb2xp
Y3kpOwogfQogCiBURVNUX0YoVXNlckluaXRpYXRlZEFjdGlvblRlc3QsIE1haWx0b0luTG9vcEFm
dGVyVGltZXIpCkBAIC0xODIsNyArMTgyLDcgQEAgVEVTVF9GKFVzZXJJbml0aWF0ZWRBY3Rpb25U
ZXN0LCBNYWlsdG9JbgogCiAgICAgY2xpY2soKTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZmluaXNoZWRQb2xpY3kpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlz
aGVkUG9saWN5KTsKIH0KIAogVEVTVF9GKFVzZXJJbml0aWF0ZWRBY3Rpb25UZXN0LCBNYWlsdG9J
bkxvb3BBZnRlclBvc3RNZXNzYWdlKQpAQCAtMjIzLDcgKzIyMyw3IEBAIFRFU1RfRihVc2VySW5p
dGlhdGVkQWN0aW9uVGVzdCwgTWFpbHRvSW4KIAogICAgIGNsaWNrKCk7CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUG9saWN5KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChmaW5pc2hlZFBvbGljeSk7CiB9CiAKIFRFU1RfRihVc2VySW5pdGlhdGVkQWN0aW9u
VGVzdCwgTWFpbHRvSW5Mb29wQWZ0ZXJMb25nVGltZXIpCkBAIC0yNTIsNyArMjUyLDcgQEAgVEVT
VF9GKFVzZXJJbml0aWF0ZWRBY3Rpb25UZXN0LCBNYWlsdG9JbgogCiAgICAgY2xpY2soKTsKIAot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRQb2xpY3kpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkUG9saWN5KTsKIH0KIAogI2VuZGlmCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNl
ck1lZGlhRGlzYWJsZWQubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlhRGlzYWJsZWQubW0JKHdvcmtpbmcgY29weSkK
QEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHdhc1Byb21wdGVkID0gZmFsc2U7
CiAgICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgICAgICBbbV93ZWJW
aWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiZGlzYWJsZUdldFVzZXJNZWRpYSJdOwotICAgICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgICAg
IEVYUEVDVF9TVFJFUShbKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldIFVURjhT
dHJpbmddLCBtZXNzYWdlKTsKICAgICB9CiAKQEAgLTEzOCw2ICsxMzgsNiBAQCBURVNUX0YoTWVk
aWFDYXB0dXJlRGlzYWJsZWRUZXN0LCBVbnNlY3VyCiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdl
ID0gZmFsc2U7CiAgICAgW21fd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxodG1sPjxib2R5Pjxz
Y3JpcHQ+d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3Nh
Z2UoTmF2aWdhdG9yLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgnbWVkaWFEZXZpY2VzJykgPyAn
aGFzJyA6ICdub25lJyk7PC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4iIGJhc2VVUkw6IFtbTlNVUkwg
YWxsb2NdIGluaXRXaXRoU3RyaW5nOkAiaHR0cDovL3Rlc3Qub3JnIl1dOwogCi0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgRVhQRUNUX1NUUkVR
KFsoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0gVVRGOFN0cmluZ10sICJub25l
Iik7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJN
ZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5t
bQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0JKHdvcmtpbmcgY29weSkKQEAg
LTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHdhc1Byb21wdGVkID0gZmFsc2U7CiAg
ICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgICAgICBbbV93ZWJWaWV3
IGxvYWRUZXN0UGFnZU5hbWVkOkAiZGlzYWJsZUdldFVzZXJNZWRpYSJdOwotICAgICAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgICAgIEVY
UEVDVF9TVFJFUShbKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldIFVURjhTdHJp
bmddLCBtZXNzYWdlKTsKICAgICB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQko
cmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBA
QCAtICh2b2lkKWV4cGVjdENvbnRyb2xzTWFuYWdlcjooQk9PTClleHBlCiAgICAgICAgIGRvbmVX
YWl0aW5nID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZVdhaXRpbmcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVXYWl0aW5nKTsK
IH0KIAogLSAodm9pZCl3YWl0Rm9yTWVkaWFDb250cm9sc1RvU2hvdwpAQCAtOTUsMTUgKzk1LDE1
IEBAIC0gKHZvaWQpd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmcKICAgICAgICAgfV07
CiAgICAgfQogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwYWdlSGFzTG9hZGVkKTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmF1dG9wbGF5aW5nSXNGaW5pc2hlZCk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocGFnZUhhc0xvYWRlZCk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoYXV0b3BsYXlpbmdJc0ZpbmlzaGVkKTsKIH0KIAogLSAoTlNTdHJpbmcg
Kiljb250cm9sbGVkRWxlbWVudElECiB7CiAgICAgX2lzRG9uZVF1ZXJ5aW5nQ29udHJvbGxlZEVs
ZW1lbnRJRCA9IGZhbHNlOwogICAgIFtzZWxmIF9yZXF1ZXN0Q29udHJvbGxlZEVsZW1lbnRJRF07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZfaXNEb25lUXVlcnlpbmdDb250cm9sbGVk
RWxlbWVudElEKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChfaXNEb25lUXVlcnlpbmdD
b250cm9sbGVkRWxlbWVudElEKTsKICAgICByZXR1cm4gX2NvbnRyb2xsZWRFbGVtZW50SUQ7CiB9
CiAKQEAgLTIyMyw3ICsyMjMsNyBAQCBURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0Nv
bnRyb2xzCiAgICAgICAgIGZpcnN0VmlkZW9QYXVzZWQgPSB0cnVlOwogICAgIH1dOwogCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZzZWNvbmRWaWRlb1BhdXNlZCk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoc2Vjb25kVmlkZW9QYXVzZWQpOwogfQogLy8gRklYTUU6IFJlLWVu
YWJsZSB0aGlzIHRlc3Qgb25jZSA8d2Via2l0Lm9yZy9iLzE3NTkwOT4gaXMgcmVzb2x2ZWQuCiBU
RVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBESVNBQkxFRF9WaWRlb0NvbnRyb2xzTWFuYWdlck11
bHRpcGxlVmlkZW9zU3dpdGNoQ29udHJvbGxlZFZpZGVvV2hlblNjcm9sbGluZykKQEAgLTM0NSw3
ICszNDUsNyBAQCBURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBESVNBQkxFRF9WaWRlCiAKICAg
ICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50Ok5TTWFrZVBvaW50KDIwMCwgMjAwKSBzaW11bGF0
ZVByZXNzdXJlOllFU107CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnNlY29uZEF1
ZGlvUGxheWluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoc2Vjb25kQXVkaW9QbGF5
aW5nKTsKICAgICB3aGlsZSAoW1tOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdIHJ1bk1vZGU6TlNE
ZWZhdWx0UnVuTG9vcE1vZGUgYmVmb3JlRGF0ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XV0pIHsKICAg
ICAgICAgaWYgKFt3ZWJWaWV3IF9oYXNBY3RpdmVWaWRlb0ZvckNvbnRyb2xzTWFuYWdlcl0gJiYg
W1t3ZWJWaWV3IGNvbnRyb2xsZWRFbGVtZW50SURdIGlzRXF1YWxUb1N0cmluZzpAInNlY29uZCJd
KQogICAgICAgICAgICAgYnJlYWs7CkBAIC0zNjksNyArMzY5LDcgQEAgVEVTVChWaWRlb0NvbnRy
b2xzTWFuYWdlciwgVmlkZW9Db250cm9scwogICAgICAgICBmaW5pc2hlZFRlc3QgPSB0cnVlOwog
ICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFRlc3QpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkVGVzdCk7CiB9CiAKIFRFU1QoVmlk
ZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyRG9lc05vdFNob3dNZWRpYUNv
bnRyb2xzRm9yT2Zmc2NyZWVuVmlkZW8pCkBAIC00MTEsNyArNDExLDcgQEAgVEVTVChWaWRlb0Nv
bnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9scwogICAgIE5TVVJMICp1cmxPZlZpZGVvID0gW1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInZpZGVvLXdpdGgtYXVkaW8iIHdp
dGhFeHRlbnNpb246QCJtcDQiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAgICAgW3dlYlZpZXcgbG9hZEZpbGVVUkw6dXJsT2ZWaWRlbyBhbGxvd2luZ1JlYWRBY2Nl
c3NUb1VSTDpbdXJsT2ZWaWRlbyBVUkxCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdXTsKICAg
ICAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTG9hZCk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWRMb2FkKTsKICAgICAKICAgICAvLyBXZSBleHBl
Y3QgdGhlIG1lZGlhIGNvbnRyb2xsZXIgdG8gYmUgcHJlc2VudCBiZWNhdXNlIHRoaXMgaXMgYSBt
ZWRpYSBkb2N1bWVudC4KICAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaGFzQWN0aXZlVmlkZW9G
b3JDb250cm9sc01hbmFnZXJdKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQkocmV2aXNpb24g
MjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFj
aG1lbnRUZXN0cy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjU0LDcgKzI1NCw3IEBAIC0gKF9XS0F0
dGFjaG1lbnQgKilzeW5jaHJvbm91c2x5SW5zZXJ0QXQKICAgICBSZXRhaW5QdHI8X1dLQXR0YWNo
bWVudD4gYXR0YWNobWVudCA9IFtzZWxmIF9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVXcmFwcGVy
OmZpbGVXcmFwcGVyIGNvbnRlbnRUeXBlOmNvbnRlbnRUeXBlIGNvbXBsZXRpb246XihCT09MKSB7
CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgcmV0
dXJuIGF0dGFjaG1lbnQuYXV0b3JlbGVhc2UoKTsKIH0KIApAQCAtMjY3LDcgKzI2Nyw3IEBAIC0g
KF9XS0F0dGFjaG1lbnQgKilzeW5jaHJvbm91c2x5SW5zZXJ0QXQKICAgICBSZXRhaW5QdHI8X1dL
QXR0YWNobWVudD4gYXR0YWNobWVudCA9IFtzZWxmIF9pbnNlcnRBdHRhY2htZW50V2l0aEZpbGVX
cmFwcGVyOmZpbGVXcmFwcGVyLmdldCgpIGNvbnRlbnRUeXBlOmNvbnRlbnRUeXBlIGNvbXBsZXRp
b246XihCT09MKSB7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9u
ZSk7CiAgICAgcmV0dXJuIGF0dGFjaG1lbnQuYXV0b3JlbGVhc2UoKTsKIH0KIApAQCAtMjc5LDcg
KzI3OSw3IEBAIC0gKENHUG9pbnQpYXR0YWNobWVudEVsZW1lbnRNaWRQb2ludAogICAgICAgICBt
aWRQb2ludCA9IENHUG9pbnRNYWtlKHJlc3VsdC5maXJzdE9iamVjdC5mbG9hdFZhbHVlLCByZXN1
bHQubGFzdE9iamVjdC5mbG9hdFZhbHVlKTsKICAgICAgICAgZG9uZUV2YWx1YXRpbmdTY3JpcHQg
PSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUV2YWx1
YXRpbmdTY3JpcHQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVFdmFsdWF0aW5n
U2NyaXB0KTsKICAgICByZXR1cm4gbWlkUG9pbnQ7CiB9CiAKQEAgLTI5MSw3ICsyOTEsNyBAQCAt
IChDR1NpemUpYXR0YWNobWVudEVsZW1lbnRTaXplCiAgICAgICAgIHNpemUgPSBDR1NpemVNYWtl
KHNpemVSZXN1bHQuZmlyc3RPYmplY3QuZmxvYXRWYWx1ZSwgc2l6ZVJlc3VsdC5sYXN0T2JqZWN0
LmZsb2F0VmFsdWUpOwogICAgICAgICBkb25lRXZhbHVhdGluZ1NjcmlwdCA9IHRydWU7CiAgICAg
fV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lRXZhbHVhdGluZ1NjcmlwdCk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZUV2YWx1YXRpbmdTY3JpcHQpOwogICAg
IHJldHVybiBzaXplOwogfQogCkBAIC0zMDMsNyArMzAzLDcgQEAgLSAoQ0dTaXplKWltYWdlRWxl
bWVudFNpemUKICAgICAgICAgc2l6ZSA9IENHU2l6ZU1ha2Uoc2l6ZVJlc3VsdC5maXJzdE9iamVj
dC5mbG9hdFZhbHVlLCBzaXplUmVzdWx0Lmxhc3RPYmplY3QuZmxvYXRWYWx1ZSk7CiAgICAgICAg
IGRvbmVFdmFsdWF0aW5nU2NyaXB0ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmVFdmFsdWF0aW5nU2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lRXZhbHVhdGluZ1NjcmlwdCk7CiAgICAgcmV0dXJuIHNpemU7CiB9CiAKQEAg
LTM1NSw3ICszNTUsNyBAQCAtICh2b2lkKXN5bmNocm9ub3VzbHlTZXRGaWxlV3JhcHBlcjooTlNG
CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIAogICAg
IGlmIChlcnJvcikKICAgICAgICAgKmVycm9yID0gcmVzdWx0RXJyb3IuYXV0b3JlbGVhc2UoKTsK
QEAgLTM3NCw3ICszNzQsNyBAQCAtICh2b2lkKXN5bmNocm9ub3VzbHlTZXREYXRhOihOU0RhdGEg
KilkCiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIAog
ICAgIGlmIChlcnJvcikKICAgICAgICAgKmVycm9yID0gcmVzdWx0RXJyb3IuYXV0b3JlbGVhc2Uo
KTsKQEAgLTQ3Nyw3ICs0NzcsNyBAQCAtICh2b2lkKWV4cGVjdFR5cGU6KE5TU3RyaW5nICopdHlw
ZSB3aXRoCiAgICAgICAgICAgICBOU0xvZyhAIkVuY291bnRlcmVkIGVycm9yIHdoZW4gbG9hZGlu
ZyBkYXRhOiAlQCIsIGVycm9yKTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKIH0KIAogQGVuZApAQCAtMTI0NCw3ICsxMjQ0LDcgQEAgVEVTVChXS0F0dGFj
aG1lbnRUZXN0cywgSW52YWxpZGF0ZUF0dGFjaAogCiAgICAgT2JzZXJ2ZUF0dGFjaG1lbnRVcGRh
dGVzRm9yU2NvcGUgb2JzZXJ2ZXIod2ViVmlldy5nZXQoKSk7CiAgICAgW3dlYlZpZXcgX2tpbGxX
ZWJDb250ZW50UHJvY2Vzc107Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZ3ZWJQcm9j
ZXNzVGVybWluYXRlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwod2ViUHJvY2Vzc1Rl
cm1pbmF0ZWQpOwogCiAgICAgb2JzZXJ2ZXIuZXhwZWN0QXR0YWNobWVudFVwZGF0ZXMoQFsgcGRm
QXR0YWNobWVudC5nZXQoKSBdLCBAWyBdKTsKICAgICBFWFBFQ1RfRkFMU0UoW3BkZkF0dGFjaG1l
bnQgaXNDb25uZWN0ZWRdKTsKQEAgLTEzNjYsNyArMTM2Niw3IEBAIFRFU1QoV0tBdHRhY2htZW50
VGVzdHMsIEFkZEF0dGFjaG1lbnRUb0MKICAgICBhdXRvIGF0dGFjaG1lbnQgPSByZXRhaW5QdHIo
W3dlYlZpZXcgX2F0dGFjaG1lbnRGb3JJZGVudGlmaWVyOmF0dGFjaG1lbnRJZGVudGlmaWVyXSk7
CiAgICAgRVhQRUNUX1dLX1NUUkVRKGF0dGFjaG1lbnRJZGVudGlmaWVyLCBbYXR0YWNobWVudCB1
bmlxdWVJZGVudGlmaWVyXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKGF0dGFjaG1lbnRJZGVudGlm
aWVyLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVl
cnlTZWxlY3RvcignaW1nJykuYXR0YWNobWVudElkZW50aWZpZXIiXSk7Ci0gICAgVXRpbDo6cnVu
KCZkb25lV2FpdGluZ0ZvckF0dGFjaG1lbnRJbnNlcnRpb24pOworICAgIHJ1blVudGlsKGRvbmVX
YWl0aW5nRm9yQXR0YWNobWVudEluc2VydGlvbik7CiAgICAgb2JzZXJ2ZXIuZXhwZWN0QXR0YWNo
bWVudFVwZGF0ZXMoQFsgXSwgQFsgYXR0YWNobWVudC5nZXQoKSBdKTsKIAogICAgIGF1dG8gZmly
c3RJbWFnZSA9IGFkb3B0TlMoW1tOU0ZpbGVXcmFwcGVyIGFsbG9jXSBpbml0V2l0aFVSTDp0ZXN0
SW1hZ2VGaWxlVVJMKCkgb3B0aW9uczowIGVycm9yOm5pbF0pOwpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVu
dEV4dGVuc2lvblN0b3JlLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIFRFU1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVz
dCwgQ29tcGkKIAogICAgICAgICBkb25lQ29tcGlsaW5nID0gdHJ1ZTsKICAgICB9XTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVDb21waWxpbmcpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmVDb21waWxpbmcpOwogfQogCiBzdGF0aWMgTlNTdHJpbmcgKmludmFs
aWRGaWx0ZXIgPSBAIlsiOwpAQCAtNzUsNyArNzUsNyBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxp
c3RTdG9yZVRlc3QsIEludmFsCiAKICAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CiAgICAg
fV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lQ29tcGlsaW5nKTsKIH0KIAogVEVTVF9GKFdLQ29u
dGVudFJ1bGVMaXN0U3RvcmVUZXN0LCBMb29rdXApCkBAIC04OCw3ICs4OCw3IEBAIFRFU1RfRihX
S0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVzdCwgTG9va3UKIAogICAgICAgICBkb25lQ29tcGlsaW5n
ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVDb21w
aWxpbmcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVDb21waWxpbmcpOwogCiAg
ICAgX19ibG9jayBib29sIGRvbmVMb29raW5nVXAgPSBmYWxzZTsKICAgICBbW1dLQ29udGVudFJ1
bGVMaXN0U3RvcmUgZGVmYXVsdFN0b3JlXSBsb29rVXBDb250ZW50UnVsZUxpc3RGb3JJZGVudGlm
aWVyOkAiVGVzdFJ1bGVMaXN0IiBjb21wbGV0aW9uSGFuZGxlcjpeKFdLQ29udGVudFJ1bGVMaXN0
ICpmaWx0ZXIsIE5TRXJyb3IgKmVycm9yKSB7CkBAIC05OSw3ICs5OSw3IEBAIFRFU1RfRihXS0Nv
bnRlbnRSdWxlTGlzdFN0b3JlVGVzdCwgTG9va3UKIAogICAgICAgICBkb25lTG9va2luZ1VwID0g
dHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVMb29raW5n
VXApOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVMb29raW5nVXApOwogfQogCiBU
RVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIEVuY29kZWRJZGVudGlmaWVyKQpAQCAt
MTIwLDcgKzEyMCw3IEBAIFRFU1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVzdCwgRW5jb2QK
ICAgICAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgICAgICB9XTsKICAgICB9XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogfQogCiBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIE5vbkV4aXN0
aW5nSWRlbnRpZmllckxvb2t1cCkKQEAgLTEzNiw3ICsxMzYsNyBAQCBURVNUX0YoV0tDb250ZW50
UnVsZUxpc3RTdG9yZVRlc3QsIE5vbkV4CiAgICAgICAgIAogICAgICAgICBkb25lTG9va2luZ1Vw
ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVMb29r
aW5nVXApOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVMb29raW5nVXApOwogfQog
CiBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIFZlcnNpb25NaXNtYXRjaCkKQEAg
LTE1MCw3ICsxNTAsNyBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIFZlcnNp
CiAgICAgICAgIAogICAgICAgICBkb25lQ29tcGlsaW5nID0gdHJ1ZTsKICAgICB9XTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVDb21waWxpbmcpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmVDb21waWxpbmcpOwogCiAgICAgW1tXS0NvbnRlbnRSdWxlTGlzdFN0
b3JlIGRlZmF1bHRTdG9yZV0gX2ludmFsaWRhdGVDb250ZW50UnVsZUxpc3RWZXJzaW9uRm9ySWRl
bnRpZmllcjpAIlRlc3RSdWxlTGlzdCJdOwogICAgIApAQCAtMTY2LDE0ICsxNjYsMTQgQEAgVEVT
VF9GKFdLQ29udGVudFJ1bGVMaXN0U3RvcmVUZXN0LCBWZXJzaQogICAgICAgICAKICAgICAgICAg
ZG9uZUxvb2tpbmdVcCA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lTG9va2luZ1VwKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lTG9v
a2luZ1VwKTsKIAogICAgIF9fYmxvY2sgYm9vbCBkb25lR2V0dGluZ1NvdXJjZSA9IGZhbHNlOwog
ICAgIFtbV0tDb250ZW50UnVsZUxpc3RTdG9yZSBkZWZhdWx0U3RvcmVdIF9nZXRDb250ZW50UnVs
ZUxpc3RTb3VyY2VGb3JJZGVudGlmaWVyOkAiVGVzdFJ1bGVMaXN0IiBjb21wbGV0aW9uSGFuZGxl
cjpeKE5TU3RyaW5nKiBzb3VyY2UpIHsKICAgICAgICAgRVhQRUNUX05VTEwoc291cmNlKTsKICAg
ICAgICAgZG9uZUdldHRpbmdTb3VyY2UgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZUdldHRpbmdTb3VyY2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRvbmVHZXR0aW5nU291cmNlKTsKIH0KIAogVEVTVF9GKFdLQ29udGVudFJ1bGVMaXN0
U3RvcmVUZXN0LCBSZW1vdmFsKQpAQCAtMTg2LDcgKzE4Niw3IEBAIFRFU1RfRihXS0NvbnRlbnRS
dWxlTGlzdFN0b3JlVGVzdCwgUmVtb3YKIAogICAgICAgICBkb25lQ29tcGlsaW5nID0gdHJ1ZTsK
ICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVDb21waWxpbmcpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVDb21waWxpbmcpOwogCiAgICAgX19ibG9j
ayBib29sIGRvbmVSZW1vdmluZyA9IGZhbHNlOwogICAgIFtbV0tDb250ZW50UnVsZUxpc3RTdG9y
ZSBkZWZhdWx0U3RvcmVdIHJlbW92ZUNvbnRlbnRSdWxlTGlzdEZvcklkZW50aWZpZXI6QCJUZXN0
UnVsZUxpc3QiIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqZXJyb3IpIHsKQEAgLTE5NCw3
ICsxOTQsNyBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIFJlbW92CiAKICAg
ICAgICAgZG9uZVJlbW92aW5nID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmVSZW1vdmluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9u
ZVJlbW92aW5nKTsKIH0KIAogVEVTVF9GKFdLQ29udGVudFJ1bGVMaXN0U3RvcmVUZXN0LCBOb25F
eGlzdGluZ0lkZW50aWZpZXJSZW1vdmUpCkBAIC0yMDgsNyArMjA4LDcgQEAgVEVTVF9GKFdLQ29u
dGVudFJ1bGVMaXN0U3RvcmVUZXN0LCBOb25FeAogCiAgICAgICAgIGRvbmVSZW1vdmluZyA9IHRy
dWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lUmVtb3Zpbmcp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVSZW1vdmluZyk7CiB9CiAKIFRFU1Rf
RihXS0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVzdCwgTm9uRGVmYXVsdFN0b3JlKQpAQCAtMjI0LDcg
KzIyNCw3IEBAIFRFU1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVzdCwgTm9uRGUKICAgICAg
ICAgRVhQRUNUX0VRKGlkZW50aWZpZXJzLmNvdW50LCAwdSk7CiAgICAgICAgIGRvbmVHZXR0aW5n
QXZhaWxhYmxlSWRlbnRpZmllcnMgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZUdldHRpbmdBdmFpbGFibGVJZGVudGlmaWVycyk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZUdldHRpbmdBdmFpbGFibGVJZGVudGlmaWVycyk7CiAgICAg
CiAgICAgX19ibG9jayBib29sIGRvbmVDb21waWxpbmcgPSBmYWxzZTsKICAgICBbc3RvcmUgY29t
cGlsZUNvbnRlbnRSdWxlTGlzdEZvcklkZW50aWZpZXI6aWRlbnRpZmllciBlbmNvZGVkQ29udGVu
dFJ1bGVMaXN0OmJhc2ljRmlsdGVyIGNvbXBsZXRpb25IYW5kbGVyOl4oV0tDb250ZW50UnVsZUxp
c3QgKmZpbHRlciwgTlNFcnJvciAqZXJyb3IpIHsKQEAgLTIzMiw3ICsyMzIsNyBAQCBURVNUX0Yo
V0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIE5vbkRlCiAgICAgICAgIEVYUEVDVF9OVUxMKGVy
cm9yKTsKICAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lQ29tcGlsaW5nKTsKIAogICAgIGRvbmVHZXR0aW5nQXZhaWxhYmxlSWRlbnRp
ZmllcnMgPSBmYWxzZTsKICAgICBbc3RvcmUgZ2V0QXZhaWxhYmxlQ29udGVudFJ1bGVMaXN0SWRl
bnRpZmllcnM6XihOU0FycmF5PE5TU3RyaW5nICo+ICppZGVudGlmaWVycykgewpAQCAtMjQxLDcg
KzI0MSw3IEBAIFRFU1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVzdCwgTm9uRGUKICAgICAg
ICAgRVhQRUNUX1NUUkVRKGlkZW50aWZpZXJzWzBdLlVURjhTdHJpbmcsICJUZXN0UnVsZUxpc3Qi
KTsKICAgICAgICAgZG9uZUdldHRpbmdBdmFpbGFibGVJZGVudGlmaWVycyA9IHRydWU7CiAgICAg
fV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lR2V0dGluZ0F2YWlsYWJsZUlk
ZW50aWZpZXJzKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lR2V0dGluZ0F2YWls
YWJsZUlkZW50aWZpZXJzKTsKIAogICAgIE5TRGF0YSAqZGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhD
b250ZW50c09mVVJMOlt0ZW1wRGlyIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpmaWxlTmFt
ZV1dOwogICAgIEVYUEVDVF9OT1RfTlVMTChkYXRhKTsKQEAgLTI1MywxNCArMjUzLDE0IEBAIFRF
U1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVzdCwgTm9uRGUKICAgICAgICAgRVhQRUNUX1NU
UkVRKGJhc2ljRmlsdGVyLlVURjhTdHJpbmcsIHNvdXJjZS5VVEY4U3RyaW5nKTsKICAgICAgICAg
ZG9uZUNoZWNraW5nU291cmNlID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmVDaGVja2luZ1NvdXJjZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZUNoZWNraW5nU291cmNlKTsKICAgICAKICAgICBfX2Jsb2NrIGJvb2wgZG9uZVJlbW92
aW5nID0gZmFsc2U7CiAgICAgW3N0b3JlIHJlbW92ZUNvbnRlbnRSdWxlTGlzdEZvcklkZW50aWZp
ZXI6aWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKmVycm9yKSB7CiAgICAg
ICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKICAgICAgICAgZG9uZVJlbW92aW5nID0gdHJ1ZTsKICAg
ICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVSZW1vdmluZyk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZVJlbW92aW5nKTsKIAogICAgIE5TRGF0YSAqZGF0
YUFmdGVyUmVtb3ZpbmcgPSBbTlNEYXRhIGRhdGFXaXRoQ29udGVudHNPZlVSTDpbdGVtcERpciBV
UkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6ZmlsZU5hbWVdXTsKICAgICBFWFBFQ1RfTlVMTChk
YXRhQWZ0ZXJSZW1vdmluZyk7CkBAIC0yODQsNyArMjg0LDcgQEAgVEVTVF9GKFdLQ29udGVudFJ1
bGVMaXN0U3RvcmVUZXN0LCBNdWx0aQogICAgICAgICAgICAgfV07CiAgICAgICAgIH1dOwogICAg
IH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKIFRFU1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0b3Jl
VGVzdCwgTm9uQVNDSUlTb3VyY2UpCkBAIC0zMTEsNyArMzExLDcgQEAgVEVTVF9GKFdLQ29udGVu
dFJ1bGVMaXN0U3RvcmVUZXN0LCBOb25BUwogICAgICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAg
ICAgIH1dOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKIHN0YXRpYyBzaXplX3QgYWxl
cnRDb3VudCB7IDAgfTsKQEAgLTM1NCw3ICszNTQsNyBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxp
c3RTdG9yZVRlc3QsIEFkZFJlCiAgICAgICAgIHJ1bGVMaXN0ID0gY29tcGlsZWRSdWxlTGlzdDsK
ICAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkb25lQ29tcGlsaW5nKTsKICAgICBFWFBFQ1RfTk9UX05VTEwocnVsZUxpc3QpOwogCiAgICAg
YXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKQEAgLTM2OSwxMyArMzY5LDEzIEBAIFRFU1RfRihXS0NvbnRlbnRSdWxlTGlz
dFN0b3JlVGVzdCwgQWRkUmUKICAgICBhbGVydENvdW50ID0gMDsKICAgICByZWNlaXZlZEFsZXJ0
ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZEFsZXJ0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChyZWNlaXZlZEFsZXJ0KTsKIAogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVu
dENvbnRyb2xsZXJdIHJlbW92ZUNvbnRlbnRSdWxlTGlzdDpydWxlTGlzdC5nZXQoKV07CiAKICAg
ICByZWNlaXZlZEFsZXJ0ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgcmVsb2FkXTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkQWxlcnQpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKHJlY2VpdmVkQWxlcnQpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
QEAgLTM5NSw3ICszOTUsNyBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIFVu
c2FmCiAgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKICAgICAgICAgZG9uZUNvbXBpbGluZyA9
IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGls
aW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lQ29tcGlsaW5nKTsKIAogICAg
IGF1dG8gaGFzQ29tcGxldGVQcm90ZWN0aW9uID0gW10gKGNvbnN0IFJldGFpblB0cjxOU1N0cmlu
Zz4mIHBhdGgpIHsKICAgICAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CkBAIC00MjAsNyArNDIw
LDcgQEAgVEVTVF9GKFdLQ29udGVudFJ1bGVMaXN0U3RvcmVUZXN0LCBVbnNhZgogICAgICAgICBF
WFBFQ1RfTlVMTChlcnJvcik7CiAgICAgICAgIGRvbmVMb29raW5nVXAgPSB0cnVlOwogICAgIH1d
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUxvb2tpbmdVcCk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZUxvb2tpbmdVcCk7CiAgICAgRVhQRUNUX0ZBTFNFKGhh
c0NvbXBsZXRlUHJvdGVjdGlvbihjb3BpZWRGaWxlUGF0aCkpOwogICAgIAogICAgIF9fYmxvY2sg
Ym9vbCBkb25lUmVtb3ZpbmcgPSBmYWxzZTsKQEAgLTQzMSw2ICs0MzEsNiBAQCBURVNUX0YoV0tD
b250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIFVuc2FmCiAgICAgICAgICAgICBkb25lUmVtb3Zpbmcg
PSB0cnVlOwogICAgICAgICB9XTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmVSZW1vdmluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZVJlbW92
aW5nKTsKIH0KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
S0NvbnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50Vmlld0VkaXRpbmdBY3Rp
b25zLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIFRFU1QoV2ViS2l0LCBXS0Nv
bnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMKICAgICAgICAgfV07CiAgICAgfV07CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIsIFtbVUlQYXN0ZWJv
YXJkIGdlbmVyYWxQYXN0ZWJvYXJkXSBzdHJpbmddKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0hUVFBDb29raWVTdG9y
ZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS0hUVFBDb29raWVTdG9yZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNzEsNyArNzEs
NyBAQCBzdGF0aWMgdm9pZCBydW5UZXN0V2l0aFdlYnNpdGVEYXRhU3RvcmUoCiAgICAgICAgIGdv
dEZsYWcgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZn
b3RGbGFnKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChnb3RGbGFnKTsKICAgICBnb3RG
bGFnID0gZmFsc2U7CiAKICAgICAvLyBUcmlnZ2VyaW5nIHJlbW92ZURhdGEgd2hlbiB3ZSBkb24n
dCBoYXZlIHBsdWdpbiBkYXRhIHRvIHJlbW92ZSBzaG91bGQgbm90IHRyaWdnZXIgdGhlIHBsdWdp
biBwcm9jZXNzIHRvIGxhdW5jaC4KQEAgLTkwLDcgKzkwLDcgQEAgc3RhdGljIHZvaWQgcnVuVGVz
dFdpdGhXZWJzaXRlRGF0YVN0b3JlKAogICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKICAgICB9XTsK
IAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZ290RmxhZyk7CiAKICAgICBBU1NFUlRfRVEoY29va2llcy5jb3VudCwg
MHUpOwogICAgIFtjb29raWVzIHJlbGVhc2VdOwpAQCAtMTE5LDE0ICsxMTksMTQgQEAgc3RhdGlj
IHZvaWQgcnVuVGVzdFdpdGhXZWJzaXRlRGF0YVN0b3JlKAogICAgICAgICBnb3RGbGFnID0gdHJ1
ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZ290RmxhZyk7CiAgICAgZ290RmxhZyA9IGZhbHNl
OwogCiAgICAgW2dsb2JhbENvb2tpZVN0b3JlIHNldENvb2tpZTpjb29raWUyLmdldCgpIGNvbXBs
ZXRpb25IYW5kbGVyOltdKCl7CiAgICAgICAgIGdvdEZsYWcgPSB0cnVlOwogICAgIH1dOwogCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZnb3RGbGFnKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChnb3RGbGFnKTsKICAgICBnb3RGbGFnID0gZmFsc2U7CiAKICAgICBbZ2xvYmFs
Q29va2llU3RvcmUgZ2V0QWxsQ29va2llczpbY29va2llc1B0ciA9ICZjb29raWVzXShOU0FycmF5
PE5TSFRUUENvb2tpZSAqPiAqbnNDb29raWVzKSB7CkBAIC0xMzQsNyArMTM0LDcgQEAgc3RhdGlj
IHZvaWQgcnVuVGVzdFdpdGhXZWJzaXRlRGF0YVN0b3JlKAogICAgICAgICBnb3RGbGFnID0gdHJ1
ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZ290RmxhZyk7CiAgICAgZ290RmxhZyA9IGZhbHNl
OwogCiAgICAgQVNTRVJUX0VRKGNvb2tpZXMuY291bnQsIDJ1KTsKQEAgLTE2Miw3ICsxNjIsNyBA
QCBzdGF0aWMgdm9pZCBydW5UZXN0V2l0aFdlYnNpdGVEYXRhU3RvcmUoCiAgICAgICAgIGdvdEZs
YWcgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZnb3RG
bGFnKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChnb3RGbGFnKTsKICAgICBnb3RGbGFn
ID0gZmFsc2U7CiAKICAgICBbZ2xvYmFsQ29va2llU3RvcmUgZ2V0QWxsQ29va2llczpbY29va2ll
c1B0ciA9ICZjb29raWVzXShOU0FycmF5PE5TSFRUUENvb2tpZSAqPiAqbnNDb29raWVzKSB7CkBA
IC0xNzAsNyArMTcwLDcgQEAgc3RhdGljIHZvaWQgcnVuVGVzdFdpdGhXZWJzaXRlRGF0YVN0b3Jl
KAogICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZ290RmxhZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZ290Rmxh
Zyk7CiAgICAgZ290RmxhZyA9IGZhbHNlOwogCiAgICAgQVNTRVJUX0VRKGNvb2tpZXMuY291bnQs
IDF1KTsKQEAgLTIwMiw3ICsyMDIsNyBAQCBURVNUKFdlYktpdCwgV0tIVFRQQ29va2llU3RvcmVQ
cm9jZXNzUHJpCiAgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVt
b3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBt
b2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOltdIHsK
ICAgICAgICAgZ290RmxhZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZnb3RGbGFnKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChnb3RGbGFnKTsK
ICAgICBnb3RGbGFnID0gZmFsc2U7CiAKICAgICBnbG9iYWxDb29raWVTdG9yZSA9IFtbV0tXZWJz
aXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIGh0dHBDb29raWVTdG9yZV07CkBAIC0yMTcs
NyArMjE3LDcgQEAgVEVTVChXZWJLaXQsIFdLSFRUUENvb2tpZVN0b3JlUHJvY2Vzc1ByaQogICAg
IFtnbG9iYWxDb29raWVTdG9yZSBzZXRDb29raWU6Y29va2llLmdldCgpIGNvbXBsZXRpb25IYW5k
bGVyOltdKCkgewogICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGdvdEZsYWcpOwogICAgIGdvdEZsYWcgPSBmYWxzZTsKIAogCkBAIC0yMjUsNyArMjI1LDcgQEAg
VEVTVChXZWJLaXQsIFdLSFRUUENvb2tpZVN0b3JlUHJvY2Vzc1ByaQogICAgICAgICBBU1NFUlRf
RVEoMXUsIGNvb2tpZXMuY291bnQpOwogICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKICAgICB9XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGdvdEZsYWcpOwogICAgIGdvdEZsYWcgPSBmYWxzZTsKIH0KIApAQCAtMjQz
LDcgKzI0Myw3IEBAIFRFU1QoV2ViS2l0LCBXS0hUVFBDb29raWVTdG9yZUh0dHBPbmx5KSAKICAg
ICBbZGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vi
c2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0
aW9uSGFuZGxlcjpbXSB7CiAgICAgICAgIGdvdEZsYWcgPSB0cnVlOwogICAgIH1dOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZ290RmxhZyk7CiAgICAgZ290RmxhZyA9IGZhbHNlOwogCiAgICAgZ2xvYmFsQ29va2ll
U3RvcmUgPSBkYXRhU3RvcmUuaHR0cENvb2tpZVN0b3JlOwpAQCAtMjUzLDcgKzI1Myw3IEBAIFRF
U1QoV2ViS2l0LCBXS0hUVFBDb29raWVTdG9yZUh0dHBPbmx5KSAKICAgICAgICAgKmNvb2tpZXNQ
dHIgPSBbbnNDb29raWVzIHJldGFpbl07CiAgICAgICAgIGdvdEZsYWcgPSB0cnVlOwogICAgIH1d
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZ290RmxhZyk7CiAgICAgZ290RmxhZyA9IGZhbHNlOwogICAgIEFTU0VS
VF9FUShjb29raWVzLmNvdW50LCAwdSk7CiAgICAgW2Nvb2tpZXMgcmVsZWFzZV07CkBAIC0yNzcs
MjEgKzI3NywyMSBAQCBURVNUKFdlYktpdCwgV0tIVFRQQ29va2llU3RvcmVIdHRwT25seSkgCiAg
ICAgW2dsb2JhbENvb2tpZVN0b3JlIHNldENvb2tpZTpodHRwT25seUNvb2tpZS5nZXQoKSBjb21w
bGV0aW9uSGFuZGxlcjpbXSgpIHsKICAgICAgICAgZ290RmxhZyA9IHRydWU7CiAgICAgfV07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZnb3RGbGFnKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChnb3RGbGFnKTsKICAgICBnb3RGbGFnID0gZmFsc2U7CiAKICAgICAvLyBTZXR0
aW5nIGh0dHBPbmx5Q29va2llMiBzaG91bGQgc3VjY2VlZC4KICAgICBbZ2xvYmFsQ29va2llU3Rv
cmUgc2V0Q29va2llOmh0dHBPbmx5Q29va2llMi5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpbXSgp
IHsKICAgICAgICAgZ290RmxhZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZnb3RGbGFnKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChnb3RGbGFn
KTsKICAgICBnb3RGbGFnID0gZmFsc2U7CiAKICAgICBbZ2xvYmFsQ29va2llU3RvcmUgZ2V0QWxs
Q29va2llczpbY29va2llc1B0ciA9ICZjb29raWVzXShOU0FycmF5PE5TSFRUUENvb2tpZSAqPiAq
bnNDb29raWVzKSB7CiAgICAgICAgICpjb29raWVzUHRyID0gW25zQ29va2llcyByZXRhaW5dOwog
ICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmdvdEZsYWcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGdvdEZsYWcpOwog
ICAgIGdvdEZsYWcgPSBmYWxzZTsKICAgICBBU1NFUlRfRVEoY29va2llcy5jb3VudCwgMXUpOwog
ICAgIEVYUEVDVF9UUlVFKFtbW2Nvb2tpZXMgb2JqZWN0QXRJbmRleDowXSB2YWx1ZV0gaXNFcXVh
bDpAImNvb2tpZVZhbHVlMiJdKTsKQEAgLTMwMSwxNCArMzAxLDE0IEBAIFRFU1QoV2ViS2l0LCBX
S0hUVFBDb29raWVTdG9yZUh0dHBPbmx5KSAKICAgICBbZ2xvYmFsQ29va2llU3RvcmUgc2V0Q29v
a2llOm5vdEh0dHBPbmx5Q29va2llLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOltdKCkgewogICAg
ICAgICBnb3RGbGFnID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmdvdEZsYWcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGdvdEZsYWcpOwogICAg
IGdvdEZsYWcgPSBmYWxzZTsKIAogICAgIFtnbG9iYWxDb29raWVTdG9yZSBnZXRBbGxDb29raWVz
Oltjb29raWVzUHRyID0gJmNvb2tpZXNdKE5TQXJyYXk8TlNIVFRQQ29va2llICo+ICpuc0Nvb2tp
ZXMpIHsKICAgICAgICAgKmNvb2tpZXNQdHIgPSBbbnNDb29raWVzIHJldGFpbl07CiAgICAgICAg
IGdvdEZsYWcgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
Z290RmxhZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZ290RmxhZyk7CiAgICAgZ290
RmxhZyA9IGZhbHNlOwogICAgIEFTU0VSVF9FUShjb29raWVzLmNvdW50LCAxdSk7CiAgICAgRVhQ
RUNUX1RSVUUoW1tjb29raWVzIG9iamVjdEF0SW5kZXg6MF0gaXNIVFRQT25seV0pOwpAQCAtMzE4
LDE0ICszMTgsMTQgQEAgVEVTVChXZWJLaXQsIFdLSFRUUENvb2tpZVN0b3JlSHR0cE9ubHkpIAog
ICAgIFtnbG9iYWxDb29raWVTdG9yZSBkZWxldGVDb29raWU6bm90SHR0cE9ubHlDb29raWUuZ2V0
KCkgY29tcGxldGlvbkhhbmRsZXI6W10oKSB7CiAgICAgICAgIGdvdEZsYWcgPSB0cnVlOwogICAg
IH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZ290RmxhZyk7CiAgICAgZ290RmxhZyA9IGZhbHNlOwogCiAgICAg
W2dsb2JhbENvb2tpZVN0b3JlIGdldEFsbENvb2tpZXM6W2Nvb2tpZXNQdHIgPSAmY29va2llc10o
TlNBcnJheTxOU0hUVFBDb29raWUgKj4gKm5zQ29va2llcykgewogICAgICAgICAqY29va2llc1B0
ciA9IFtuc0Nvb2tpZXMgcmV0YWluXTsKICAgICAgICAgZ290RmxhZyA9IHRydWU7CiAgICAgfV07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZnb3RGbGFnKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChnb3RGbGFnKTsKICAgICBnb3RGbGFnID0gZmFsc2U7CiAgICAgQVNTRVJU
X0VRKGNvb2tpZXMuY291bnQsIDF1KTsKICAgICBbY29va2llcyByZWxlYXNlXTsKQEAgLTMzNCwx
NCArMzM0LDE0IEBAIFRFU1QoV2ViS2l0LCBXS0hUVFBDb29raWVTdG9yZUh0dHBPbmx5KSAKICAg
ICBbZ2xvYmFsQ29va2llU3RvcmUgZGVsZXRlQ29va2llOmh0dHBPbmx5Q29va2llLmdldCgpIGNv
bXBsZXRpb25IYW5kbGVyOltdKCkgewogICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKICAgICB9XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGdvdEZsYWcpOwogICAgIGdvdEZsYWcgPSBmYWxzZTsKIAogICAgIFtnbG9i
YWxDb29raWVTdG9yZSBnZXRBbGxDb29raWVzOltjb29raWVzUHRyID0gJmNvb2tpZXNdKE5TQXJy
YXk8TlNIVFRQQ29va2llICo+ICpuc0Nvb2tpZXMpIHsKICAgICAgICAgKmNvb2tpZXNQdHIgPSBb
bnNDb29raWVzIHJldGFpbl07CiAgICAgICAgIGdvdEZsYWcgPSB0cnVlOwogICAgIH1dOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZ290RmxhZyk7CiAgICAgZ290RmxhZyA9IGZhbHNlOwogICAgIEFTU0VSVF9FUShj
b29raWVzLmNvdW50LCAwdSk7CiAgICAgW2Nvb2tpZXMgcmVsZWFzZV07CkBAIC0zNjEsNyArMzYx
LDcgQEAgVEVTVChXZWJLaXQsIFdLSFRUUENvb2tpZVN0b3JlQ3JlYXRpb25UaQogICAgIFtkYXRh
U3RvcmUgcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0
YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5k
bGVyOltdIHsKICAgICAgICAgZ290RmxhZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZnb3RGbGFnKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChn
b3RGbGFnKTsKICAgICBnb3RGbGFnID0gZmFsc2U7CiAKICAgICBnbG9iYWxDb29raWVTdG9yZSA9
IGRhdGFTdG9yZS5odHRwQ29va2llU3RvcmU7CkBAIC0zNzgsNyArMzc4LDcgQEAgVEVTVChXZWJL
aXQsIFdLSFRUUENvb2tpZVN0b3JlQ3JlYXRpb25UaQogICAgIFtnbG9iYWxDb29raWVTdG9yZSBz
ZXRDb29raWU6Y29va2llLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOltdKCkgewogICAgICAgICBn
b3RGbGFnID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdv
dEZsYWcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGdvdEZsYWcpOwogICAgIGdvdEZs
YWcgPSBmYWxzZTsKIAogICAgIFtnbG9iYWxDb29raWVTdG9yZSBnZXRBbGxDb29raWVzOlsmXShO
U0FycmF5PE5TSFRUUENvb2tpZSAqPiAqY29va2llcykgewpAQCAtMzg3LDcgKzM4Nyw3IEBAIFRF
U1QoV2ViS2l0LCBXS0hUVFBDb29raWVTdG9yZUNyZWF0aW9uVGkKICAgICAgICAgRVhQRUNUX1RS
VUUoW2NyZWF0aW9uVGltZS5nZXQoKSBpc0VxdWFsOmNyZWF0ZWRUaW1lXSk7CiAgICAgICAgIGdv
dEZsYWcgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290
RmxhZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZ290RmxhZyk7CiAgICAgZ290Rmxh
ZyA9IGZhbHNlOwogCiAgICAgc2xlZXAoMV9zKTsKQEAgLTM5OCw3ICszOTgsNyBAQCBURVNUKFdl
YktpdCwgV0tIVFRQQ29va2llU3RvcmVDcmVhdGlvblRpCiAgICAgICAgIEVYUEVDVF9UUlVFKFtj
cmVhdGlvblRpbWUuZ2V0KCkgaXNFcXVhbDpjcmVhdGVkVGltZV0pOwogICAgICAgICBnb3RGbGFn
ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGdvdEZsYWcpOwogICAgIGdvdEZsYWcgPSBm
YWxzZTsKIH0KICNlbmRpZiAvLyAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBI
T05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCkKQEAgLTQ1OCw3ICs0NTgsNyBA
QCBURVNUKFdlYktpdCwgQ29va2llT2JzZXJ2ZXJDcmFzaCkKICAgICAgICAgZ290RmxhZyA9IHRy
dWU7CiAgICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGdvdEZsYWcpOwogfQogCiBzdGF0aWMgYm9vbCBm
aW5pc2hlZDsKQEAgLTUwNiw3ICs1MDYsNyBAQCB2b2lkIHJ1bldLSFRUUENvb2tpZVN0b3JlV2l0
aG91dFByb2Nlc3NQCiAgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgIH1dOwog
ICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkKTsKIAogICAgIGZpbmlzaGVkID0gZmFsc2U7
CiAgICAgW2VwaGVtZXJhbFN0b3JlV2l0aENvb2tpZXMuZ2V0KCkuaHR0cENvb2tpZVN0b3JlIHNl
dENvb2tpZTpzZXNzaW9uQ29va2llLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl57CkBAIC01MTUs
NyArNTE1LDcgQEAgdm9pZCBydW5XS0hUVFBDb29raWVTdG9yZVdpdGhvdXRQcm9jZXNzUAogICAg
ICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwogICAgICAgICB9XTsKICAgICB9XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChmaW5pc2hlZCk7CiAgICAgZmluaXNoZWQgPSBmYWxzZTsKIAogICAgIGF1dG8gcHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
biBhbGxvY10gaW5pdF0pOwpAQCAtNTI5LDcgKzUyOSw3IEBAIHZvaWQgcnVuV0tIVFRQQ29va2ll
U3RvcmVXaXRob3V0UHJvY2Vzc1AKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0Nvb2tp
ZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICB3ZWJWaWV3LmdldCgpLlVJRGVsZWdhdGUg
PSBkZWxlZ2F0ZS5nZXQoKTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzphbGVydENvb2tp
ZUhUTUwgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly8xMjcuMC4wLjEiXV07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZmluaXNoZWQpOwogCiAgICAgZmluaXNoZWQgPSBmYWxzZTsKICAgICBb
ZXBoZW1lcmFsU3RvcmVXaXRoQ29va2llcy5nZXQoKS5odHRwQ29va2llU3RvcmUgZGVsZXRlQ29v
a2llOnNlc3Npb25Db29raWUuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XnsKQEAgLTUzOCw3ICs1
MzgsNyBAQCB2b2lkIHJ1bldLSFRUUENvb2tpZVN0b3JlV2l0aG91dFByb2Nlc3NQCiAgICAgICAg
ICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgIH1dOwogICAgIH1dOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGZpbmlzaGVkKTsKICAgICAKICAgICAvLyBEZWZhdWx0RGF0YVN0b3JlCiAgICAgYXV0byBkZWZh
dWx0U3RvcmUgPSBbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdOwpAQCAtNTQ2
LDcgKzU0Niw3IEBAIHZvaWQgcnVuV0tIVFRQQ29va2llU3RvcmVXaXRob3V0UHJvY2Vzc1AKICAg
ICBbZGVmYXVsdFN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxs
V2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21w
bGV0aW9uSGFuZGxlcjpbXSB7CiAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICB9XTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChmaW5pc2hlZCk7CiAKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogICAgIFtkZWZh
dWx0U3RvcmUuaHR0cENvb2tpZVN0b3JlIHNldENvb2tpZTpwZXJzaXN0ZW50Q29va2llLmdldCgp
IGNvbXBsZXRpb25IYW5kbGVyOl57CkBAIC01NTUsNyArNTU1LDcgQEAgdm9pZCBydW5XS0hUVFBD
b29raWVTdG9yZVdpdGhvdXRQcm9jZXNzUAogICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwog
ICAgICAgICB9XTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlz
aGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZCk7CiAKICAgICBmaW5p
c2hlZCA9IGZhbHNlOwogICAgIFtkZWZhdWx0U3RvcmUuaHR0cENvb2tpZVN0b3JlIHNldENvb2tp
ZTpzZXNzaW9uQ29va2llLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl57CkBAIC01NjQsNyArNTY0
LDcgQEAgdm9pZCBydW5XS0hUVFBDb29raWVTdG9yZVdpdGhvdXRQcm9jZXNzUAogICAgICAgICAg
ICAgZmluaXNoZWQgPSB0cnVlOwogICAgICAgICB9XTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChm
aW5pc2hlZCk7CiAKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogICAgIGNvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtNTcyLDcg
KzU3Miw3IEBAIHZvaWQgcnVuV0tIVFRQQ29va2llU3RvcmVXaXRob3V0UHJvY2Vzc1AKICAgICB3
ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsK
ICAgICB3ZWJWaWV3LmdldCgpLlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKICAgICBbd2Vi
VmlldyBsb2FkSFRNTFN0cmluZzphbGVydENvb2tpZUhUTUwgYmFzZVVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAImh0dHA6Ly8xMjcuMC4wLjEiXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZmaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWQpOwog
fQogCiBURVNUKFdlYktpdCwgV0tIVFRQQ29va2llU3RvcmVXaXRob3V0UHJvY2Vzc1Bvb2xXaXRo
b3V0UHJld2FybWluZykKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5tbQkocmV2aXNpb24g
MjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS05hdmln
YXRpb25SZXNwb25zZS5tbQkod29ya2luZyBjb3B5KQpAQCAtODcsNyArODcsNyBAQCBURVNUKFdl
YktpdCwgV0tOYXZpZ2F0aW9uUmVzcG9uc2VKU09OTUlNCiAKICAgICBOU1VSTCAqdGVzdFVSTCA9
IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovLy9qc29uLXJlc3BvbnNlIl07CiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMXV07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0LCBXS05hdmlnYXRpb25SZXNw
b25zZUpTT05NSU1FVHlwZTIpCkBAIC0xMDUsNyArMTA1LDcgQEAgVEVTVChXZWJLaXQsIFdLTmF2
aWdhdGlvblJlc3BvbnNlSlNPTk1JTQogCiAgICAgTlNVUkwgKnRlc3RVUkwgPSBbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInRlc3Q6Ly8vanNvbi1yZXNwb25zZSJdOwogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTF1dOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChpc0RvbmUpOwogfQogCiBURVNUKFdlYktpdCwgV0tOYXZpZ2F0aW9uUmVzcG9uc2VVbmtub3du
TUlNRVR5cGUpCkBAIC0xMjMsNyArMTIzLDcgQEAgVEVTVChXZWJLaXQsIFdLTmF2aWdhdGlvblJl
c3BvbnNlVW5rbm93bgogCiAgICAgTlNVUkwgKnRlc3RVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAInRlc3Q6Ly8vanNvbi1yZXNwb25zZSJdOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTF1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUp
OwogfQogCiBURVNUKFdlYktpdCwgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQREZUeXBlKQpAQCAtMTQz
LDcgKzE0Myw3IEBAIFRFU1QoV2ViS2l0LCBXS05hdmlnYXRpb25SZXNwb25zZVBERlR5cGUKIAog
ICAgIE5TVVJMICp0ZXN0VVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0Oi8vL3BkZi1y
ZXNwb25zZSJdOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6dGVzdFVSTF1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogfQogCiBAaW50ZXJmYWNl
IE5hdmlnYXRpb25SZXNwb25zZVRlc3REZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25E
ZWxlZ2F0ZT4KQEAgLTE2NywxMyArMTY3LDEzIEBAIC0gKFdLTmF2aWdhdGlvblJlc3BvbnNlICop
bmF2aWdhdGlvblJlc3AKIC0gKHZvaWQpd2FpdEZvck5hdmlnYXRpb25SZXNwb25zZUNhbGxiYWNr
CiB7CiAgICAgX2hhc1JlY2VpdmVkUmVzcG9uc2VDYWxsYmFjayA9IGZhbHNlOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmX2hhc1JlY2VpdmVkUmVzcG9uc2VDYWxsYmFjayk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoX2hhc1JlY2VpdmVkUmVzcG9uc2VDYWxsYmFjayk7CiB9
CiAKIC0gKHZvaWQpd2FpdEZvck5hdmlnYXRpb25GaW5pc2hlZENhbGxiYWNrCiB7CiAgICAgX2hh
c1JlY2VpdmVkTmF2aWdhdGlvbkZpbmlzaGVkQ2FsbGJhY2sgPSBmYWxzZTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJl9oYXNSZWNlaXZlZE5hdmlnYXRpb25GaW5pc2hlZENhbGxiYWNr
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChfaGFzUmVjZWl2ZWROYXZpZ2F0aW9uRmlu
aXNoZWRDYWxsYmFjayk7CiB9CiAKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKilu
YXZpZ2F0aW9uQWN0aW9uIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0
aW9uUG9saWN5KSlkZWNpc2lvbkhhbmRsZXIKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTE4LDcgKzExOCw3IEBAIFRFU1QoV0tQREZWaWV3LCBDb3VudFN0cmlu
ZykKIAogICAgIE5TU3RyaW5nICpleHBlY3RlZFN0cmluZyA9IEAiVHdvIjsKICAgICBbd2ViVmll
dyBfY291bnRTdHJpbmdNYXRjaGVzOmV4cGVjdGVkU3RyaW5nIG9wdGlvbnM6MCBtYXhDb3VudDpt
YXhDb3VudF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBFWFBFQ1RfRVEoMVUsIFtmaW5k
RGVsZWdhdGUgbWF0Y2hlc0NvdW50XSk7CiAgICAgRVhQRUNUX0ZBTFNFKFtmaW5kRGVsZWdhdGUg
ZGlkRmFpbF0pOwpAQCAtMTMzLDcgKzEzMyw3IEBAIFRFU1QoV0tQREZWaWV3LCBDb3VudFN0cmlu
Z01pc3NpbmcpCiAKICAgICBOU1N0cmluZyAqZXhwZWN0ZWRTdHJpbmcgPSBAIk9uZSI7CiAgICAg
W3dlYlZpZXcgX2NvdW50U3RyaW5nTWF0Y2hlczpleHBlY3RlZFN0cmluZyBvcHRpb25zOjAgbWF4
Q291bnQ6bWF4Q291bnRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAgRVhQRUNUX0VRKDBV
LCBbZmluZERlbGVnYXRlIG1hdGNoZXNDb3VudF0pOwogICAgIEVYUEVDVF9GQUxTRShbZmluZERl
bGVnYXRlIGRpZEZhaWxdKTsKQEAgLTE0OCw3ICsxNDgsNyBAQCBURVNUKFdLUERGVmlldywgQ291
bnRTdHJpbmdDYXNlSW5zZW5zaXRpCiAKICAgICBOU1N0cmluZyAqZXhwZWN0ZWRTdHJpbmcgPSBA
InQiOwogICAgIFt3ZWJWaWV3IF9jb3VudFN0cmluZ01hdGNoZXM6ZXhwZWN0ZWRTdHJpbmcgb3B0
aW9uczpfV0tGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSBtYXhDb3VudDptYXhDb3VudF07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBFWFBFQ1RfRVEoNVUsIFtmaW5kRGVsZWdhdGUgbWF0
Y2hlc0NvdW50XSk7CiAgICAgRVhQRUNUX0ZBTFNFKFtmaW5kRGVsZWdhdGUgZGlkRmFpbF0pOwpA
QCAtMTYzLDcgKzE2Myw3IEBAIFRFU1QoV0tQREZWaWV3LCBGaW5kU3RyaW5nKQogCiAgICAgTlNT
dHJpbmcgKmV4cGVjdGVkU3RyaW5nID0gQCJvbmUiOwogICAgIFt3ZWJWaWV3IF9maW5kU3RyaW5n
OmV4cGVjdGVkU3RyaW5nIG9wdGlvbnM6MCBtYXhDb3VudDptYXhDb3VudF07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGlzRG9uZSk7CiAKICAgICBFWFBFQ1RfRVEoMVUsIFtmaW5kRGVsZWdhdGUgbWF0Y2hlc0NvdW50
XSk7CiAgICAgRVhQRUNUX0VRKDAsIFtmaW5kRGVsZWdhdGUgbWF0Y2hJbmRleF0pOwpAQCAtMTc5
LDcgKzE3OSw3IEBAIFRFU1QoV0tQREZWaWV3LCBGaW5kU3RyaW5nTWlzc2luZykKIAogICAgIE5T
U3RyaW5nICpleHBlY3RlZFN0cmluZyA9IEAiT25lIjsKICAgICBbd2ViVmlldyBfZmluZFN0cmlu
ZzpleHBlY3RlZFN0cmluZyBvcHRpb25zOjAgbWF4Q291bnQ6bWF4Q291bnRdOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChpc0RvbmUpOwogCiAgICAgRVhQRUNUX1RSVUUoW2ZpbmREZWxlZ2F0ZSBkaWRGYWlsXSk7CiAg
ICAgRVhQRUNUX1dLX1NUUkVRKGV4cGVjdGVkU3RyaW5nLCBbZmluZERlbGVnYXRlIGZpbmRTdHJp
bmddKTsKQEAgLTE5Myw3ICsxOTMsNyBAQCBURVNUKFdLUERGVmlldywgRmluZFN0cmluZ0Nhc2VJ
bnNlbnNpdGl2CiAKICAgICBOU1N0cmluZyAqZXhwZWN0ZWRTdHJpbmcgPSBAInQiOwogICAgIFt3
ZWJWaWV3IF9maW5kU3RyaW5nOmV4cGVjdGVkU3RyaW5nIG9wdGlvbnM6X1dLRmluZE9wdGlvbnND
YXNlSW5zZW5zaXRpdmUgbWF4Q291bnQ6bWF4Q291bnRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwog
CiAgICAgRVhQRUNUX0VRKDVVLCBbZmluZERlbGVnYXRlIG1hdGNoZXNDb3VudF0pOwogICAgIEVY
UEVDVF9FUSgwLCBbZmluZERlbGVnYXRlIG1hdGNoSW5kZXhdKTsKQEAgLTIwMiw3ICsyMDIsNyBA
QCBURVNUKFdLUERGVmlldywgRmluZFN0cmluZ0Nhc2VJbnNlbnNpdGl2CiAKICAgICBpc0RvbmUg
PSBOTzsKICAgICBbd2ViVmlldyBfZmluZFN0cmluZzpleHBlY3RlZFN0cmluZyBvcHRpb25zOl9X
S0ZpbmRPcHRpb25zQ2FzZUluc2Vuc2l0aXZlIG1heENvdW50Om1heENvdW50XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoaXNEb25lKTsKIAogICAgIEVYUEVDVF9FUSg1VSwgW2ZpbmREZWxlZ2F0ZSBtYXRjaGVzQ291
bnRdKTsKICAgICBFWFBFQ1RfRVEoMSwgW2ZpbmREZWxlZ2F0ZSBtYXRjaEluZGV4XSk7CkBAIC0y
MTEsNyArMjExLDcgQEAgVEVTVChXS1BERlZpZXcsIEZpbmRTdHJpbmdDYXNlSW5zZW5zaXRpdgog
CiAgICAgaXNEb25lID0gTk87CiAgICAgW3dlYlZpZXcgX2ZpbmRTdHJpbmc6ZXhwZWN0ZWRTdHJp
bmcgb3B0aW9uczpfV0tGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSB8IF9XS0ZpbmRPcHRpb25z
QmFja3dhcmRzIG1heENvdW50Om1heENvdW50XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAg
IEVYUEVDVF9FUSg1VSwgW2ZpbmREZWxlZ2F0ZSBtYXRjaGVzQ291bnRdKTsKICAgICBFWFBFQ1Rf
RVEoMCwgW2ZpbmREZWxlZ2F0ZSBtYXRjaEluZGV4XSk7CkBAIC0yMjcsNyArMjI3LDcgQEAgVEVT
VChXS1BERlZpZXcsIEZpbmRTdHJpbmdCYWNrd2FyZCkKIAogICAgIE5TU3RyaW5nICpleHBlY3Rl
ZFN0cmluZyA9IEAidCI7CiAgICAgW3dlYlZpZXcgX2ZpbmRTdHJpbmc6ZXhwZWN0ZWRTdHJpbmcg
b3B0aW9uczpfV0tGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSB8IF9XS0ZpbmRPcHRpb25zQmFj
a3dhcmRzIG1heENvdW50Om1heENvdW50XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgIEVY
UEVDVF9FUSg1VSwgW2ZpbmREZWxlZ2F0ZSBtYXRjaGVzQ291bnRdKTsKICAgICBFWFBFQ1RfRVEo
NCwgW2ZpbmREZWxlZ2F0ZSBtYXRjaEluZGV4XSk7CkBAIC0yMzYsNyArMjM2LDcgQEAgVEVTVChX
S1BERlZpZXcsIEZpbmRTdHJpbmdCYWNrd2FyZCkKIAogICAgIGlzRG9uZSA9IE5POwogICAgIFt3
ZWJWaWV3IF9maW5kU3RyaW5nOmV4cGVjdGVkU3RyaW5nIG9wdGlvbnM6X1dLRmluZE9wdGlvbnND
YXNlSW5zZW5zaXRpdmUgfCBfV0tGaW5kT3B0aW9uc0JhY2t3YXJkcyBtYXhDb3VudDptYXhDb3Vu
dF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBFWFBFQ1RfRVEoNVUsIFtmaW5kRGVsZWdh
dGUgbWF0Y2hlc0NvdW50XSk7CiAgICAgRVhQRUNUX0VRKDMsIFtmaW5kRGVsZWdhdGUgbWF0Y2hJ
bmRleF0pOwpAQCAtMjQ1LDcgKzI0NSw3IEBAIFRFU1QoV0tQREZWaWV3LCBGaW5kU3RyaW5nQmFj
a3dhcmQpCiAKICAgICBpc0RvbmUgPSBOTzsKICAgICBbd2ViVmlldyBfZmluZFN0cmluZzpleHBl
Y3RlZFN0cmluZyBvcHRpb25zOl9XS0ZpbmRPcHRpb25zQ2FzZUluc2Vuc2l0aXZlIG1heENvdW50
Om1heENvdW50XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgIEVYUEVDVF9FUSg1VSwgW2Zp
bmREZWxlZ2F0ZSBtYXRjaGVzQ291bnRdKTsKICAgICBFWFBFQ1RfRVEoNCwgW2ZpbmREZWxlZ2F0
ZSBtYXRjaEluZGV4XSk7CkBAIC0yNjEsNyArMjYxLDcgQEAgVEVTVChXS1BERlZpZXcsIEZpbmRT
dHJpbmdQYXN0RW5kKQogCiAgICAgTlNTdHJpbmcgKmV4cGVjdGVkU3RyaW5nID0gQCJ0d28iOwog
ICAgIFt3ZWJWaWV3IF9maW5kU3RyaW5nOmV4cGVjdGVkU3RyaW5nIG9wdGlvbnM6X1dLRmluZE9w
dGlvbnNDYXNlSW5zZW5zaXRpdmUgbWF4Q291bnQ6bWF4Q291bnRdOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0Rv
bmUpOwogCiAgICAgRVhQRUNUX0VRKDJVLCBbZmluZERlbGVnYXRlIG1hdGNoZXNDb3VudF0pOwog
ICAgIEVYUEVDVF9FUSgwLCBbZmluZERlbGVnYXRlIG1hdGNoSW5kZXhdKTsKQEAgLTI3MCw3ICsy
NzAsNyBAQCBURVNUKFdLUERGVmlldywgRmluZFN0cmluZ1Bhc3RFbmQpCiAKICAgICBpc0RvbmUg
PSBOTzsKICAgICBbd2ViVmlldyBfZmluZFN0cmluZzpleHBlY3RlZFN0cmluZyBvcHRpb25zOl9X
S0ZpbmRPcHRpb25zQ2FzZUluc2Vuc2l0aXZlIG1heENvdW50Om1heENvdW50XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoaXNEb25lKTsKIAogICAgIEVYUEVDVF9FUSgyVSwgW2ZpbmREZWxlZ2F0ZSBtYXRjaGVzQ291
bnRdKTsKICAgICBFWFBFQ1RfRVEoMSwgW2ZpbmREZWxlZ2F0ZSBtYXRjaEluZGV4XSk7CkBAIC0y
NzksNyArMjc5LDcgQEAgVEVTVChXS1BERlZpZXcsIEZpbmRTdHJpbmdQYXN0RW5kKQogCiAgICAg
aXNEb25lID0gTk87CiAgICAgW3dlYlZpZXcgX2ZpbmRTdHJpbmc6ZXhwZWN0ZWRTdHJpbmcgb3B0
aW9uczpfV0tGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSBtYXhDb3VudDptYXhDb3VudF07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBFWFBFQ1RfVFJVRShbZmluZERlbGVnYXRlIGRpZEZh
aWxdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoZXhwZWN0ZWRTdHJpbmcsIFtmaW5kRGVsZWdhdGUg
ZmluZFN0cmluZ10pOwpAQCAtMjkzLDcgKzI5Myw3IEBAIFRFU1QoV0tQREZWaWV3LCBGaW5kU3Ry
aW5nQmFja3dhcmRQYXN0U3QKIAogICAgIE5TU3RyaW5nICpleHBlY3RlZFN0cmluZyA9IEAidHdv
IjsKICAgICBbd2ViVmlldyBfZmluZFN0cmluZzpleHBlY3RlZFN0cmluZyBvcHRpb25zOl9XS0Zp
bmRPcHRpb25zQ2FzZUluc2Vuc2l0aXZlIHwgX1dLRmluZE9wdGlvbnNCYWNrd2FyZHMgbWF4Q291
bnQ6bWF4Q291bnRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAgRVhQRUNUX0VRKDJVLCBb
ZmluZERlbGVnYXRlIG1hdGNoZXNDb3VudF0pOwogICAgIEVYUEVDVF9FUSgxLCBbZmluZERlbGVn
YXRlIG1hdGNoSW5kZXhdKTsKQEAgLTMwMiw3ICszMDIsNyBAQCBURVNUKFdLUERGVmlldywgRmlu
ZFN0cmluZ0JhY2t3YXJkUGFzdFN0CiAKICAgICBpc0RvbmUgPSBOTzsKICAgICBbd2ViVmlldyBf
ZmluZFN0cmluZzpleHBlY3RlZFN0cmluZyBvcHRpb25zOl9XS0ZpbmRPcHRpb25zQ2FzZUluc2Vu
c2l0aXZlIHwgX1dLRmluZE9wdGlvbnNCYWNrd2FyZHMgbWF4Q291bnQ6bWF4Q291bnRdOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChpc0RvbmUpOwogCiAgICAgRVhQRUNUX0VRKDJVLCBbZmluZERlbGVnYXRlIG1hdGNo
ZXNDb3VudF0pOwogICAgIEVYUEVDVF9FUSgwLCBbZmluZERlbGVnYXRlIG1hdGNoSW5kZXhdKTsK
QEAgLTMxMSw3ICszMTEsNyBAQCBURVNUKFdLUERGVmlldywgRmluZFN0cmluZ0JhY2t3YXJkUGFz
dFN0CiAKICAgICBpc0RvbmUgPSBOTzsKICAgICBbd2ViVmlldyBfZmluZFN0cmluZzpleHBlY3Rl
ZFN0cmluZyBvcHRpb25zOl9XS0ZpbmRPcHRpb25zQ2FzZUluc2Vuc2l0aXZlIHwgX1dLRmluZE9w
dGlvbnNCYWNrd2FyZHMgbWF4Q291bnQ6bWF4Q291bnRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwog
CiAgICAgRVhQRUNUX1RSVUUoW2ZpbmREZWxlZ2F0ZSBkaWRGYWlsXSk7CiAgICAgRVhQRUNUX1dL
X1NUUkVRKGV4cGVjdGVkU3RyaW5nLCBbZmluZERlbGVnYXRlIGZpbmRTdHJpbmddKTsKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3UmVzaXplQ3Jh
c2gubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XS1BERlZpZXdSZXNpemVDcmFzaC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXdSZXNpemVDcmFzaC5tbQkod29y
a2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNiBAQCBURVNUKFdlYktpdCwgV0tQREZWaWV3UmVzaXpl
Q3Jhc2gpCiAgICAgICAgIGZpbmlzaGVkRGlzcGF0Y2ggPSB0cnVlOwogICAgIH0pOwogCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZERpc3BhdGNoKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZERpc3BhdGNoKTsKIH0KIApJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXdTdGFibGVQcmVzZW50YXRpb25V
cGRhdGVDYWxsYmFjay5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLUERGVmlld1N0YWJsZVByZXNlbnRhdGlvblVwZGF0ZUNhbGxiYWNrLm1t
CShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLUERGVmlld1N0YWJsZVByZXNlbnRhdGlvblVwZGF0ZUNhbGxiYWNrLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIFRFU1QoV2ViS2l0LCBXS1BERlZpZXdTdGFibGVQcmVz
ZW50YXRpb24KICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZmluaXNoZWQpOwogfQogCiAjZW5kaWYKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV0tSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm8ubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1JlcXVlc3RBY3Rp
dmF0ZWRFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mby5tbQko
d29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksNyBAQCBURVNUKFdlYktpdCwgUmVxdWVzdEFjdGl2
YXRlZEVsZW1lbnRJbmZvCiAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICB9XTsKICAgICAK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChmaW5pc2hlZCk7CiB9CiAgICAgCiBURVNUKFdlYktpdCwgUmVxdWVzdEFj
dGl2YXRlZEVsZW1lbnRJbmZvRm9ySW1hZ2UpCkBAIC05Myw3ICs5Myw3IEBAIFRFU1QoV2ViS2l0
LCBSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm8KICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwog
ICAgIH1dOwogICAgIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkKTsKIH0KICAgICAKIFRFU1QoV2Vi
S2l0LCBSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm9Gb3JCbGFuaykKQEAgLTExMiw3ICsxMTIs
NyBAQCBURVNUKFdlYktpdCwgUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvCiAgICAgICAgIGZp
bmlzaGVkID0gdHJ1ZTsKICAgICB9XTsKICAgICAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZCk7CiB9
CiAgICAgCiBURVNUKFdlYktpdCwgUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvV2l0aE5lc3Rl
ZFN5bmNocm9ub3VzVXBkYXRlcykKQEAgLTEyNyw3ICsxMjcsNyBAQCBURVNUKFdlYktpdCwgUmVx
dWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvCiAgICAgICAgIGNoZWNrRWxlbWVudFR5cGVBbmRCb3Vu
ZGluZ1JlY3QoZWxlbWVudEluZm8sIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGluaywgQ0dSZWN0
TWFrZSgwLCAwLCAyMDAsIDIwMCkpOwogICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgfV07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZmluaXNoZWQpOwogCiAgICAgZmluaXNoZWQgPSBmYWxzZTsKICAgICBb
d2ViVmlldyBfcmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEw
MCwgMTAwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqZWxlbWVu
dEluZm8pIHsKQEAgLTEzNiw3ICsxMzYsNyBAQCBURVNUKFdlYktpdCwgUmVxdWVzdEFjdGl2YXRl
ZEVsZW1lbnRJbmZvCiAgICAgICAgIGNoZWNrRWxlbWVudFR5cGVBbmRCb3VuZGluZ1JlY3QoZWxl
bWVudEluZm8sIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGluaywgQ0dSZWN0TWFrZSgwLCAwLCAy
MDAsIDIwMCkpOwogICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZmluaXNoZWQpOwogfQogCiBURVNUKFdlYktpdCwgUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJ
bmZvV2l0aE5lc3RlZFJlcXVlc3RzKQpAQCAtMTU0LDggKzE1NCw4IEBAIFRFU1QoV2ViS2l0LCBS
ZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm8KICAgICAgICAgY2hlY2tFbGVtZW50VHlwZUFuZEJv
dW5kaW5nUmVjdChvdXRlckVsZW1lbnRJbmZvLCBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdl
LCBDR1JlY3RNYWtlKDAsIDAsIDIwMCwgMjAwKSk7CiAgICAgICAgIGZpbmlzaGVkV2l0aE91dGVy
ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVk
V2l0aE91dGVyKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkV2l0aElu
bmVyKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZFdpdGhPdXRlcik7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWRXaXRoSW5uZXIpOwogCiAgICAgZmlu
aXNoZWRXaXRoSW5uZXIgPSBmYWxzZTsKICAgICBmaW5pc2hlZFdpdGhPdXRlciA9IGZhbHNlOwpA
QCAtMTY3LDggKzE2Nyw4IEBAIFRFU1QoV2ViS2l0LCBSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudElu
Zm8KICAgICAgICAgY2hlY2tFbGVtZW50VHlwZUFuZEJvdW5kaW5nUmVjdChvdXRlckVsZW1lbnRJ
bmZvLCBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdlLCBDR1JlY3RNYWtlKDAsIDAsIDIwMCwg
MjAwKSk7CiAgICAgICAgIGZpbmlzaGVkV2l0aE91dGVyID0gdHJ1ZTsKICAgICB9XTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkV2l0aE91dGVyKTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkV2l0aElubmVyKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChmaW5pc2hlZFdpdGhPdXRlcik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZmluaXNoZWRXaXRoSW5uZXIpOwogfQogCiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLVVJMU2NoZW1lSGFuZGxlci0xLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tVUkxTY2hlbWVIYW5kbGVy
LTEubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV0tVUkxTY2hlbWVIYW5kbGVyLTEubW0JKHdvcmtpbmcgY29weSkKQEAgLTE0OCw3
ICsxNDgsNyBAQCBURVNUKFVSTFNjaGVtZUhhbmRsZXIsIEJhc2ljKQogICAgIE5TVVJMUmVxdWVz
dCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJ0ZXN0aW5nOm1haW4iXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVz
dF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgRVhQRUNUX0VRKFtoYW5kbGVyLmdldCgpLnN0
YXJ0ZWRVUkxzIGNvdW50XSwgMnUpOwogICAgIEVYUEVDVF9UUlVFKFtbaGFuZGxlci5nZXQoKS5z
dGFydGVkVVJMcyBvYmplY3RBdEluZGV4OjBdIGlzRXF1YWw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJ0ZXN0aW5nOm1haW4iXV0pOwpAQCAtMTcyLDcgKzE3Miw3IEBAIFRFU1QoVVJMU2NoZW1lSGFu
ZGxlciwgQmFzaWNXaXRoQXN5bmNQb2wKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdGluZzpt
YWluIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKIAogICAgIEVYUEVDVF9FUShbaGFuZGxlci5nZXQoKS5zdGFydGVkVVJMcyBjb3VudF0s
IDJ1KTsKICAgICBFWFBFQ1RfVFJVRShbW2hhbmRsZXIuZ2V0KCkuc3RhcnRlZFVSTHMgb2JqZWN0
QXRJbmRleDowXSBpc0VxdWFsOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdGluZzptYWluIl1d
KTsKQEAgLTE5OCw3ICsxOTgsNyBAQCBURVNUKFVSTFNjaGVtZUhhbmRsZXIsIE5vTUlNRVR5cGUp
CiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Rpbmc6bWFpbiJdXTsKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBFWFBFQ1RfRVEo
W2hhbmRsZXIuZ2V0KCkuc3RhcnRlZFVSTHMgY291bnRdLCAxdSk7CiAgICAgRVhQRUNUX1RSVUUo
W1toYW5kbGVyLmdldCgpLnN0YXJ0ZWRVUkxzIG9iamVjdEF0SW5kZXg6MF0gaXNFcXVhbDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAInRlc3Rpbmc6bWFpbiJdXSk7CkBAIC0zMTIsNyArMzEyLDcgQEAg
VEVTVChVUkxTY2hlbWVIYW5kbGVyLCBSZWRpcmVjdGlvbikKICAgICBOU1VSTFJlcXVlc3QgKnJl
cXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAidGVzdGluZzovLy9pbml0aWFsIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOwogICAgIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgCiAgICAgRVhQRUNUX1RSVUUocmVzcG9u
c2VQb2xpY3lEZWNpZGVkKTsKICAgICBFWFBFQ1RfU1RSRVEod2ViVmlldy5nZXQoKS5VUkwuYWJz
b2x1dGVTdHJpbmcuVVRGOFN0cmluZywgInRlc3Rpbmc6Ly8vcmVkaXJlY3RlZCIpOwpAQCAtMzk0
LDcgKzM5NCw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrQ2FsbFNlcXVlbmNlKFZlY3RvcjxDb20KICAg
ICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJM
U2NoZW1lOkAidGVzdGluZyJdOwogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Rp
bmc6Ly8vaW5pdGlhbCJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogVEVTVChVUkxTY2hlbWVI
YW5kbGVyLCBFeGNlcHRpb25zKQpAQCAtNTE5LDcgKzUxOSw3IEBAIFRFU1QoVVJMU2NoZW1lSGFu
ZGxlciwgU3luY1hIUikKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3luY3hocjovL2hvc3QvbWFp
bi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFs
c2U7CiAKICAgICBFWFBFQ1RfRVEoKHVuc2lnbmVkKXJlY2VpdmVkTWVzc2FnZXMuZ2V0KCkuY291
bnQsICh1bnNpZ25lZCkxKTsKQEAgLTUzMCwxMyArNTMwLDEzIEBAIFRFU1QoVVJMU2NoZW1lSGFu
ZGxlciwgU3luY1hIUikKICAgICBoYW5kbGVyLmdldCgpLT5yZXNvdXJjZXMuZmluZCgic3luY3ho
cjovL2hvc3QvdGVzdC5kYXQiKS0+dmFsdWUuc2hvdWxkUmVzcG9uZCA9IGZhbHNlOwogICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZzdGFydGVkWEhSKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChzdGFydGVkWEhS
KTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKIAogICAgIHdlYlZpZXcgPSBuaWw7CiAg
ICAgW3Bvb2wgZHJhaW5dOwogICAgIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRTdG9wKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFN0b3ApOwog
fQogCiBAaW50ZXJmYWNlIFN5bmNFcnJvclNjaGVtZSA6IE5TT2JqZWN0IDxXS1VSTFNjaGVtZUhh
bmRsZXIsIFdLVUlEZWxlZ2F0ZT4KQEAgLTU3OSw3ICs1NzksNyBAQCBURVNUKFVSTFNjaGVtZUhh
bmRsZXIsIFN5bmNYSFJFcnJvcikKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZp
Z3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBbd2ViVmlldyBzZXRV
SURlbGVnYXRlOmhhbmRsZXIuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzeW5jZXJyb3I6
Ly8vbWFpbi5odG1sIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiBzdGF0aWMgY29uc3QgY2hh
ciogeGhyUG9zdERvY3VtZW50ID0gUiJYSFJQT1NUUkVTT1VSQ0UoPGh0bWw+PGhlYWQ+PHNjcmlw
dD4KQEAgLTY4OSw2ICs2ODksNiBAQCBURVNUKFVSTFNjaGVtZUhhbmRsZXIsIFhIUlBvc3QpCiAg
ICAgfV07CiAgICAgCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6W05TU3RyaW5nIHN0cmlu
Z1dpdGhVVEY4U3RyaW5nOnhoclBvc3REb2N1bWVudF0gYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInhocnBvc3Q6Ly9leGFtcGxlL3hocnRlc3QiXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0K
IApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdD
YW5kaWRhdGVUZXN0cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tCShyZXZpc2lvbiAyNDU1MTYp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0NhbmRp
ZGF0ZVRlc3RzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIC0gKHZvaWQpaW5z
ZXJ0Q2FuZGlkYXRlc0FuZFdhaXRGb3JSZXNwb24KIHsKICAgICBfaXNEb25lV2FpdGluZ0ZvckNh
bmRpZGF0ZSA9IGZhbHNlOwogICAgIFtzZWxmIF9oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZTpbW1Rl
c3RDYW5kaWRhdGUgYWxsb2NdIGluaXRXaXRoUmVwbGFjZW1lbnRTdHJpbmc6cmVwbGFjZW1lbnRT
dHJpbmcgaW5SYW5nZTpyYW5nZV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmX2lz
RG9uZVdhaXRpbmdGb3JDYW5kaWRhdGUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKF9p
c0RvbmVXYWl0aW5nRm9yQ2FuZGlkYXRlKTsKIH0KIAogLSAodm9pZClfZGlkSGFuZGxlQWNjZXB0
ZWRDYW5kaWRhdGUKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0JKHJldmlzaW9u
IDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJW
aWV3Q29uZmlndXJhdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtOTMsNSArOTMsNSBAQCBURVNU
KFdlYktpdCwgRGVmYXVsdENvbmZpZ3VyYXRpb25FTUUpCiAgICAgICAgIEVYUEVDVF9UUlVFKFty
ZXN1bHQgaXNFcXVhbFRvU3RyaW5nOkAiRU5BQkxFRCJdKTsKICAgICAgICAgZG9uZSA9IHRydWU7
CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RGVmYXVsdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2Vi
Vmlld0RlZmF1bHROYXZpZ2F0aW9uRGVsZWdhdGUubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RGVmYXVsdE5hdmln
YXRpb25EZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBURVNUKFdL
V2ViVmlldywgRGVmYXVsdE5hdmlnYXRpb25EZWxlZ2F0CiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
Im5vdHJlYWw6L2hlbGxvIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKICNlbmRpZgpJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdEaWFnbm9zdGljTG9nZ2luZy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmll
d0RpYWdub3N0aWNMb2dnaW5nLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0RpYWdub3N0aWNMb2dnaW5nLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC05Myw1ICs5Myw1IEBAIFRFU1QoV0tXZWJWaWV3LCBEaWFnbm9zdGlj
TG9nZ2luZ0RpY3Rpb24KICAgICBbd2ViVmlldyBjb25maWd1cmF0aW9uXS5wcmVmZXJlbmNlcy5f
ZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkID0gWUVTOwogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6QCI8c2NyaXB0PndpbmRvdy5pbnRlcm5hbHMudGVzdERpY3Rpb25hcnlMb2dnaW5nKCk8
L3NjcmlwdD4iIGJhc2VVUkw6bmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlz
RG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIH0KSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZh
U2NyaXB0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1YXRl
SmF2YVNjcmlwdC5tbQkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBURVNUKFdLV2Vi
VmlldywgRXZhbHVhdGVKYXZhU2NyaXB0QmxvY2tDCiAgICAgfQogCiAgICAgaXNEb25lID0gZmFs
c2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKIFRFU1QoV0tXZWJWaWV3LCBFdmFsdWF0ZUph
dmFTY3JpcHRFcnJvckNhc2VzKQpAQCAtNzksNyArNzksNyBAQCBURVNUKFdLV2ViVmlldywgRXZh
bHVhdGVKYXZhU2NyaXB0RXJyb3JDCiAgICAgfV07CiAKICAgICBpc0RvbmUgPSBmYWxzZTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoaXNEb25lKTsKIAogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRv
Y3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LCBkb2N1bWVudCkiIGNvbXBsZXRpb25I
YW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgewogICAgICAgICBFWFBFQ1RfTlVM
TChyZXN1bHQpOwpAQCAtOTQsNyArOTQsNyBAQCBURVNUKFdLV2ViVmlldywgRXZhbHVhdGVKYXZh
U2NyaXB0RXJyb3JDCiAgICAgfV07CiAKICAgICBpc0RvbmUgPSBmYWxzZTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
aXNEb25lKTsKIAogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIlxuXG50aHJvdyAn
c29tZXRoaW5nIGJhZCciIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICpl
cnJvcikgewogICAgICAgICBFWFBFQ1RfTlVMTChyZXN1bHQpOwpAQCAtMTA5LDUgKzEwOSw1IEBA
IFRFU1QoV0tXZWJWaWV3LCBFdmFsdWF0ZUphdmFTY3JpcHRFcnJvckMKICAgICB9XTsKIAogICAg
IGlzRG9uZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogfQpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdGaW5kU3RyaW5nLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3
RmluZFN0cmluZy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdGaW5kU3RyaW5nLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzcsNyArMTM3LDcgQEAgVEVTVChXS1dlYlZpZXdGaW5kU3RyaW5nLCBEb05vdEZvY3VzTWF0
YwogICAgIEVYUEVDVF9GQUxTRSh2aWV3SXNGaXJzdFJlc3BvbmRlcihmaXJzdFdlYlZpZXcuZ2V0
KCkpKTsKIAogICAgIFtmaXJzdFdlYlZpZXcgX2ZpbmRTdHJpbmc6QCJoZWxsbyIgb3B0aW9uczow
IG1heENvdW50Om1heENvdW50XTsKLSAgICBVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgcnVuVW50
aWwoaXNEb25lKTsKIAogICAgIEVYUEVDVF9GQUxTRSh2aWV3SXNGaXJzdFJlc3BvbmRlcihmaXJz
dFdlYlZpZXcuZ2V0KCkpKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoImhlbGxvIiwgW2ZpbmREZWxl
Z2F0ZSBmaW5kU3RyaW5nXSk7CkBAIC0xNjIsNyArMTYyLDcgQEAgVEVTVChXS1dlYlZpZXdGaW5k
U3RyaW5nLCBEb05vdEZvY3VzTWF0YwogICAgIEVYUEVDVF9GQUxTRShbZmlyc3RXZWJWaWV3IGlz
Rmlyc3RSZXNwb25kZXJdKTsKIAogICAgIFtmaXJzdFdlYlZpZXcgX2ZpbmRTdHJpbmc6QCJoZWxs
byIgb3B0aW9uczowIG1heENvdW50Om1heENvdW50XTsKLSAgICBVdGlsOjpydW4oJmlzRG9uZSk7
CisgICAgcnVuVW50aWwoaXNEb25lKTsKIAogICAgIEVYUEVDVF9GQUxTRShbZmlyc3RXZWJWaWV3
IGlzRmlyc3RSZXNwb25kZXJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoImhlbGxvIiwgW2ZpbmRE
ZWxlZ2F0ZSBmaW5kU3RyaW5nXSk7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLV2ViVmlld0ZpcnN0UmVzcG9uZGVyVGVzdHMubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdGaXJzdFJlc3Bv
bmRlclRlc3RzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLV2ViVmlld0ZpcnN0UmVzcG9uZGVyVGVzdHMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTU2LDcgKzU2LDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENH
UmVjdClmcgogICAgIF9pbnB1dEZpZWxkID0gYWRvcHROUyhbW1VJVGV4dEZpZWxkIGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgQ0dSZWN0R2V0V2lkdGgoZnJhbWUpLCA0NCld
KTsKICAgICBbc2VsZi5zY3JvbGxWaWV3IGFkZFN1YnZpZXc6X2lucHV0RmllbGQuZ2V0KCldOwog
ICAgIFtzZWxmIHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxib2R5IGNvbnRlbnRlZGl0
YWJsZT48c2NyaXB0PmRvY3VtZW50LmJvZHkuZm9jdXMoKTwvc2NyaXB0PiJdOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUZvY3VzaW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lRm9jdXNpbmcpOwogICAgIHJldHVybiBzZWxmOwogfQogCkluZGV4OiBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tX
ZWJWaWV3R2V0Q29udGVudHMubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3R2V0Q29udGVudHMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgVEVTVChXS1dlYlZpZXcsIEdldENvbnRlbnRzU2hvdWxk
UmV0dXJuUwogICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgfV07CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChmaW5pc2hlZCk7CiB9CiAKIFRFU1QoV0tXZWJWaWV3LCBHZXRDb250ZW50c1Nob3VsZFJldHVy
bkF0dHJpYnV0ZWRTdHJpbmcpCkBAIC05NSw1ICs5NSw1IEBAIFRFU1QoV0tXZWJWaWV3LCBHZXRD
b250ZW50c1Nob3VsZFJldHVybkEKICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwogICAgIH1dOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZmluaXNoZWQpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdTbmFwc2hvdC5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld1NuYXBzaG90Lm1tCShy
ZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLV2ViVmlld1NuYXBzaG90Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw3IEBAIFRF
U1QoV0tXZWJWaWV3LCBTbmFwc2hvdEltYWdlRXJyb3IpCiAgICAgICAgIGlzRG9uZSA9IHRydWU7
CiAgICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIH0KIAogVEVTVChXS1dlYlZpZXcsIFNu
YXBzaG90SW1hZ2VCYXNlQ2FzZSkKQEAgLTE0Myw3ICsxNDMsNyBAQCBURVNUKFdLV2ViVmlldywg
U25hcHNob3RJbWFnZUJhc2VDYXNlKQogICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgIH1dOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKIFRFU1QoV0tXZWJWaWV3LCBTbmFwc2hvdEltYWdl
U2NhbGUpCkBAIC0xNzAsNyArMTcwLDcgQEAgVEVTVChXS1dlYlZpZXcsIFNuYXBzaG90SW1hZ2VT
Y2FsZSkKICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0Rv
bmUpOwogfQogCiBURVNUKFdLV2ViVmlldywgU25hcHNob3RJbWFnZU5pbENvbmZpZ3VyYXRpb24p
CkBAIC0xOTEsNyArMTkxLDcgQEAgVEVTVChXS1dlYlZpZXcsIFNuYXBzaG90SW1hZ2VOaWxDb25m
aWd1cgogICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9u
ZSk7CiB9CiAKIFRFU1QoV0tXZWJWaWV3LCBTbmFwc2hvdEltYWdlVW5pbml0aWFsaXplZENvbmZp
Z3VyYXRpb24pCkBAIC0yMTQsNyArMjE0LDcgQEAgVEVTVChXS1dlYlZpZXcsIFNuYXBzaG90SW1h
Z2VVbmluaXRpYWxpegogICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGlzRG9uZSk7CiB9CiAKIFRFU1QoV0tXZWJWaWV3LCBTbmFwc2hvdEltYWdlVW5pbml0aWFs
aXplZFNuYXBzaG90V2lkdGgpCkBAIC0yMzgsNyArMjM4LDcgQEAgVEVTVChXS1dlYlZpZXcsIFNu
YXBzaG90SW1hZ2VVbmluaXRpYWxpegogICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgIH1dOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKIFRFU1QoV0tXZWJWaWV3LCBTbmFwc2hvdEltYWdl
TGFyZ2VBc3luY0RlY29kaW5nKQpAQCAtMjg5LDcgKzI4OSw3IEBAIFRFU1QoV0tXZWJWaWV3LCBT
bmFwc2hvdEltYWdlTGFyZ2VBc3luY0QKICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsK
IAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChpc0RvbmUpOwogfQogCiBURVNUKFdLV2ViVmlldywgU25hcHNob3RBZnRl
clNjcmVlblVwZGF0ZXMpCkBAIC0zNDksNyArMzQ5LDcgQEAgVEVTVChXS1dlYlZpZXcsIFNuYXBz
aG90QWZ0ZXJTY3JlZW5VcGRhdAogICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgIH1dOwogICAg
IAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChpc0RvbmUpOwogfQogCiBURVNUKFdLV2ViVmlldywgU25hcHNob3RXaXRo
b3V0QWZ0ZXJTY3JlZW5VcGRhdGVzKQpAQCAtNDEwLDUgKzQxMCw1IEBAIFRFU1QoV0tXZWJWaWV3
LCBTbmFwc2hvdFdpdGhvdXRBZnRlclNjcmUKICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9
XTsKICAgICAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3Jl
Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTks
NyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdAogCiAtICh2b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZp
Z2F0aW9uCiB7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZfaGFzRmluaXNoZWROYXZp
Z2F0aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChfaGFzRmluaXNoZWROYXZpZ2F0
aW9uKTsKIH0KIAogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlz
aE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24KQEAgLTg3LDE0ICs4NywxNCBA
QCBURVNUKFdLV2Vic2l0ZURhdGFTdG9yZSwgUmVtb3ZlQW5kRmV0Y2hECiAgICAgW1tXS1dlYnNp
dGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0
ZURhdGFTdG9yZSBfYWxsV2Vic2l0ZURhdGFUeXBlc0luY2x1ZGluZ1ByaXZhdGVdIG1vZGlmaWVk
U2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAg
ICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
cmVhZHlUb0NvbnRpbnVlKTsKICAgICAKICAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKICAg
ICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSBmZXRjaERhdGFSZWNvcmRz
T2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIF9hbGxXZWJzaXRlRGF0YVR5cGVzSW5jbHVkaW5n
UHJpdmF0ZV0gY29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQg
Kj4gKmRhdGFSZWNvcmRzKSB7CiAgICAgICAgIEFTU0VSVF9FUSgwdSwgZGF0YVJlY29yZHMuY291
bnQpOwogICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChyZWFkeVRvQ29udGludWUpOwogfQogCiBURVNUKFdLV2Vic2l0ZURhdGFTdG9y
ZSwgUmVtb3ZlRXBoZW1lcmFsRGF0YSkKQEAgLTEwNyw3ICsxMDcsNyBAQCBURVNUKFdLV2Vic2l0
ZURhdGFTdG9yZSwgUmVtb3ZlRXBoZW1lcmFsCiAgICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVE
YXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0
ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9u
SGFuZGxlcjogXnsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKIH0KIAogc3RhdGljIHZvaWQgcmVzcG9uZFdpdGhDaGFsbGVuZ2VUaGVuT0soaW50IHNvY2tl
dCkKQEAgLTE1OSw3ICsxNTksNyBAQCBURVNUKFdLV2Vic2l0ZURhdGFTdG9yZSwgRmV0Y2hOb25Q
ZXJzaXN0CiAgICAgICAgICAgICBBU1NFUlRfVFJVRShbW3JlY29yZCBkaXNwbGF5TmFtZV0gaXNF
cXVhbFRvU3RyaW5nOkAiMTI3LjAuMC4xIl0pOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiBURVNUKFdLV2Vic2l0ZURhdGFTdG9yZSwgRmV0Y2hQ
ZXJzaXN0ZW50Q3JlZGVudGlhbHMpCkBAIC0xODksNyArMTg5LDcgQEAgVEVTVChXS1dlYnNpdGVE
YXRhU3RvcmUsIEZldGNoUGVyc2lzdGVudAogICAgICAgICBFWFBFQ1RfVFJVRShmb3VuZEV4cGVj
dGVkUmVjb3JkKTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICAKICAgICBfX2Jsb2NrIGJvb2wgcmVtb3ZlZENyZWRlbnRpYWwgPSBmYWxzZTsKICAg
ICBbd2Vic2l0ZURhdGFTdG9yZSBmZXRjaERhdGFSZWNvcmRzT2ZUeXBlczpbTlNTZXQgc2V0V2l0
aE9iamVjdDpfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFsc10gY29tcGxldGlvbkhhbmRsZXI6
XihOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQgKj4gKmRhdGFSZWNvcmRzKSB7CkBAIC0xOTcs
NyArMTk3LDcgQEAgVEVTVChXS1dlYnNpdGVEYXRhU3RvcmUsIEZldGNoUGVyc2lzdGVudAogICAg
ICAgICAgICAgcmVtb3ZlZENyZWRlbnRpYWwgPSB0cnVlOwogICAgICAgICB9XTsKICAgICB9XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlbW92ZWRDcmVkZW50aWFsKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZW1vdmVkQ3JlZGVudGlhbCk7CiB9CiAKIFRFU1QoV0tX
ZWJzaXRlRGF0YVN0b3JlLCBSZW1vdmVQZXJzaXN0ZW50Q3JlZGVudGlhbHMpCkBAIC0yMjcsMTMg
KzIyNywxMyBAQCBURVNUKFdLV2Vic2l0ZURhdGFTdG9yZSwgUmVtb3ZlUGVyc2lzdGVuCiAgICAg
ICAgIEVYUEVDVF9UUlVFKGV4cGVjdGVkUmVjb3JkKTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAg
ICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKIAogICAgIGRvbmUgPSBmYWxzZTsKICAgICBbd2Vic2l0
ZURhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbTlNTZXQgc2V0V2l0aE9iamVjdDpfV0tXZWJz
aXRlRGF0YVR5cGVDcmVkZW50aWFsc10gZm9yRGF0YVJlY29yZHM6W05TQXJyYXkgYXJyYXlXaXRo
T2JqZWN0OmV4cGVjdGVkUmVjb3JkLmdldCgpXSBjb21wbGV0aW9uSGFuZGxlcjpeKHZvaWQpIHsK
ICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIAogICAgIGRv
bmUgPSBmYWxzZTsKICAgICBbd2Vic2l0ZURhdGFTdG9yZSBmZXRjaERhdGFSZWNvcmRzT2ZUeXBl
czpbTlNTZXQgc2V0V2l0aE9iamVjdDpfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFsc10gY29t
cGxldGlvbkhhbmRsZXI6XihOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQgKj4gKmRhdGFSZWNv
cmRzKSB7CkBAIC0yNDgsNyArMjQ4LDcgQEAgVEVTVChXS1dlYnNpdGVEYXRhU3RvcmUsIFJlbW92
ZVBlcnNpc3RlbgogICAgICAgICBFWFBFQ1RfRkFMU0UoZm91bmRMb2NhbEhvc3RSZWNvcmQpOwog
ICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiBURVNU
KFdLV2Vic2l0ZURhdGFTdG9yZSwgUmVtb3ZlTm9uUGVyc2lzdGVudENyZWRlbnRpYWxzKQpAQCAt
MjgwLDEzICsyODAsMTMgQEAgVEVTVChXS1dlYnNpdGVEYXRhU3RvcmUsIFJlbW92ZU5vblBlcnNp
cwogICAgICAgICBFWFBFQ1RfVFJVRShleHBlY3RlZFJlY29yZCk7CiAgICAgICAgIGRvbmUgPSB0
cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBkb25lID0gZmFsc2U7CiAgICAg
W3dlYnNpdGVEYXRhU3RvcmUgcmVtb3ZlRGF0YU9mVHlwZXM6W05TU2V0IHNldFdpdGhPYmplY3Q6
X1dLV2Vic2l0ZURhdGFUeXBlQ3JlZGVudGlhbHNdIGZvckRhdGFSZWNvcmRzOltOU0FycmF5IGFy
cmF5V2l0aE9iamVjdDpleHBlY3RlZFJlY29yZC5nZXQoKV0gY29tcGxldGlvbkhhbmRsZXI6Xih2
b2lkKSB7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAK
ICAgICBkb25lID0gZmFsc2U7CiAgICAgW3dlYnNpdGVEYXRhU3RvcmUgZmV0Y2hEYXRhUmVjb3Jk
c09mVHlwZXM6W05TU2V0IHNldFdpdGhPYmplY3Q6X1dLV2Vic2l0ZURhdGFUeXBlQ3JlZGVudGlh
bHNdIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+ICpk
YXRhUmVjb3JkcykgewpAQCAtMzAxLDcgKzMwMSw3IEBAIFRFU1QoV0tXZWJzaXRlRGF0YVN0b3Jl
LCBSZW1vdmVOb25QZXJzaXMKICAgICAgICAgRVhQRUNUX0ZBTFNFKGZvdW5kTG9jYWxIb3N0UmVj
b3JkKTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0K
IAogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJDb250
ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlLm1tCShy
ZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgs
NyArMTE4LDcgQEAgVEVTVChXS05hdmlnYXRpb24sIEZhaWx1cmVUb1N0YXJ0V2ViUHJvYwogICAg
IHNob3VsZExvYWRBZ2Fpbk9uQ3Jhc2ggPSB0cnVlOwogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6dGVzdEhUTUwgYmFzZVVSTDpuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZmluaXNoZWRMb2FkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZExv
YWQpOwogCiAgICAgRVhQRUNUX1RSVUUoZGlkQ3Jhc2gpOwogICAgIEVYUEVDVF9UUlVFKCEhd2Vi
Vmlldy5nZXQoKS5fd2ViUHJvY2Vzc0lkZW50aWZpZXIpOwpAQCAtMTQxLDcgKzE0MSw3IEBAIFRF
U1QoV0tOYXZpZ2F0aW9uLCBGYWlsdXJlVG9TdGFydFdlYlByb2MKICAgICBkaWRDcmFzaCA9IGZh
bHNlOwogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6dGVzdEhUTUwgYmFzZVVSTDpuaWxd
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRMb2FkKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZExvYWQpOwogCiAgICAgRVhQRUNUX0ZBTFNFKGRp
ZENyYXNoKTsKICAgICBFWFBFQ1RfVFJVRSghIXdlYlZpZXcuZ2V0KCkuX3dlYlByb2Nlc3NJZGVu
dGlmaWVyKTsKQEAgLTE1Miw3ICsxNTIsNyBAQCBURVNUKFdLTmF2aWdhdGlvbiwgRmFpbHVyZVRv
U3RhcnRXZWJQcm9jCiAgICAgZXhwZWN0ZWRDcmFzaFJlYXNvbiA9IF9XS1Byb2Nlc3NUZXJtaW5h
dGlvblJlYXNvblJlcXVlc3RlZEJ5Q2xpZW50OwogICAgIFt3ZWJWaWV3IF9raWxsV2ViQ29udGVu
dFByb2Nlc3NBbmRSZXNldFN0YXRlXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZGlkQ3Jhc2gpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZENyYXNoKTsKICAgICBF
WFBFQ1RfVFJVRSghd2ViVmlldy5nZXQoKS5fd2ViUHJvY2Vzc0lkZW50aWZpZXIpOwogICAgIEVY
UEVDVF9GQUxTRShyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogCkBAIC0xNjUsNyArMTY1LDcgQEAg
VEVTVChXS05hdmlnYXRpb24sIEZhaWx1cmVUb1N0YXJ0V2ViUHJvYwogICAgIFtjb25maWd1cmF0
aW9uLmdldCgpLnByb2Nlc3NQb29sIF9tYWtlTmV4dFdlYlByb2Nlc3NMYXVuY2hGYWlsRm9yVGVz
dGluZ107CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6dGVzdEhUTUwgYmFzZVVSTDpuaWxd
OwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZExvYWQpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkTG9hZCk7CiAKICAgICBFWFBFQ1RfVFJVRShk
aWRDcmFzaCk7CiAgICAgRVhQRUNUX1RSVUUoISF3ZWJWaWV3LmdldCgpLl93ZWJQcm9jZXNzSWRl
bnRpZmllcik7CkBAIC0xODMsNyArMTgzLDcgQEAgVEVTVChXS05hdmlnYXRpb24sIEF1dG9tYXRp
Y1ZpZXdSZWxvYWRBZgogICAgIGZpbmlzaGVkTG9hZCA9IGZhbHNlOwogCiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAicmljaC1hbmQtcGxhaW4tdGV4dCIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTG9hZCk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZmluaXNoZWRMb2FkKTsKIAogICAgIHN0YXJ0ZWRMb2FkID0gZmFsc2U7
CiAgICAgZmluaXNoZWRMb2FkID0gZmFsc2U7CkBAIC0xOTIsNyArMTkyLDcgQEAgVEVTVChXS05h
dmlnYXRpb24sIEF1dG9tYXRpY1ZpZXdSZWxvYWRBZgogICAgIFt3ZWJWaWV3IF9raWxsV2ViQ29u
dGVudFByb2Nlc3NdOwogCiAgICAgLy8gU2luY2Ugd2UgZG8gbm90IGRlYWwgd2l0aCB0aGUgY3Jh
c2gsIFdlYktpdCBzaG91bGQgYXR0ZW1wdCBhIHJlbG9hZC4KLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmZpbmlzaGVkTG9hZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmlu
aXNoZWRMb2FkKTsKIAogICAgIHN0YXJ0ZWRMb2FkID0gZmFsc2U7CiAgICAgZmluaXNoZWRMb2Fk
ID0gZmFsc2U7CkBAIC0yMTcsNyArMjE3LDcgQEAgVEVTVChXS05hdmlnYXRpb24sIFByb2Nlc3ND
cmFzaER1cmluZ0NhbAogICAgIGZpbmlzaGVkTG9hZCA9IGZhbHNlOwogCiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAicmljaC1hbmQtcGxhaW4tdGV4dCIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTG9hZCk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZmluaXNoZWRMb2FkKTsKIAogICAgIHN0YXJ0ZWRMb2FkID0gZmFsc2U7
CiAgICAgZmluaXNoZWRMb2FkID0gZmFsc2U7CkBAIC0yNzMsNyArMjczLDcgQEAgVEVTVChXS05h
dmlnYXRpb24sIFByb2Nlc3NDcmFzaER1cmluZ0NhbAogICAgIC8vIFNpbXVsYXRlIGEgY3Jhc2gs
IHdoaWNoIHNob3VsZCBpbnZhbGlkYXRlIGFsbCBwZW5kaW5nIGNhbGxiYWNrcy4KICAgICBbd2Vi
VmlldyBfa2lsbFdlYkNvbnRlbnRQcm9jZXNzXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmY2FsbGVkQWxsQ2FsbGJhY2tzKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChj
YWxsZWRBbGxDYWxsYmFja3MpOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuNSk7
CiAgICAgRVhQRUNUX0VRKDZVLCBjYWxsYmFja0NvdW50KTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViQ3J5cHRvTWFz
dGVyS2V5Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dlYkNyeXB0b01hc3RlcktleS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjQs
NyArNjQsNyBAQCBURVNUKFdlYktpdCwgV2ViQ3J5cHRvTmlsTWFzdGVyS2V5KQogICAgIFt3ZWJW
aWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07Ci0gICAg
VXRpbDo6cnVuKCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIHJ1blVudGlsKHJlY2VpdmVkTWVzc2Fn
ZSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJEYXRhQ2xvbmVFcnJvciIsIGdNZXNzYWdlKTsKIH0K
IApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJHTFBvbGlj
eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dlYkdMUG9saWN5Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dlYkdMUG9saWN5Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIs
NyArMTEyLDcgQEAgc3RhdGljIHZvaWQgcnVuVGVzdChfV0tXZWJHTExvYWRQb2xpY3kgZgogICAg
IFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dl
YlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpodG1sVVJMLmdldCgpXV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZ0ZXN0Q29tcGxldGUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKHRlc3RDb21wbGV0ZSk7CiB9CiAKIFRFU1QoV2ViS2l0LCBXZWJHTFBvbGlj
eSkKQEAgLTE2MSw3ICsxNjEsNyBAQCBURVNUKFdlYktpdCwgV2ViR0xQb2xpY3lOb0RlbGVnYXRl
KQogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRdKTsK
ICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmll
dyBsb2FkSFRNTFN0cmluZzpkYXRhIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRw
Oi8vZXhhbXBsZS5jb20vIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmdGVzdENv
bXBsZXRlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbCh0ZXN0Q29tcGxldGUpOwogICAg
IEVYUEVDVF9TVFJFUShbYWxlcnQgVVRGOFN0cmluZ10sICJkb2luZyBzdHVmZiB3aXRoIHdlYmds
IGNvbnRleHQgc3VjY2VlZGVkIik7CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHJvY2Vzc0tpbGxJREJD
bGVhbnVwLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC5tbQkod29ya2luZyBjb3B5KQpA
QCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgV0tTY3JpcHRNZXNzYWdlICpnZXROZXh0TWVzc2FnZSgp
CiB7CiAgICAgaWYgKHNjcmlwdE1lc3NhZ2VzLmlzRW1wdHkoKSkgewogICAgICAgICByZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIH0KIAogICAgIHJldHVybiBbW3NjcmlwdE1l
c3NhZ2VzLnRha2VGaXJzdCgpIHJldGFpbl0gYXV0b3JlbGVhc2VdOwpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
ZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0aHMubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBh
dGhzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBAIHN0YXRpYyBXS1NjcmlwdE1l
c3NhZ2UgKmdldE5leHRNZXNzYWdlKCkKIHsKICAgICBpZiAoc2NyaXB0TWVzc2FnZXMuaXNFbXB0
eSgpKSB7CiAgICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwotICAgICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgfQog
CiAgICAgcmV0dXJuIFtbc2NyaXB0TWVzc2FnZXMudGFrZUZpcnN0KCkgcmV0YWluXSBhdXRvcmVs
ZWFzZV07CkBAIC0yMjEsMTMgKzIyMSwxMyBAQCBzdGF0aWMgdm9pZCBydW5XZWJzaXRlRGF0YVN0
b3JlQ3VzdG9tUGF0CiAgICAgICAgIH0KICAgICB9XTsKICAgICByZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0
TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNz
YWdlKTsKIAogICAgIFtkYXRhU3RvcmUgcmVtb3ZlRGF0YU9mVHlwZXM6dHlwZXMuZ2V0KCkgbW9k
aWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpbXSgpIHsK
ICAgICAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gdHJ1ZTsKICAgICB9XTsKICAgICByZWNl
aXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKIAogICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIg
ZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZmlsZUlEQlBhdGguZ2V0KCkucGF0aF0p
OwogCkBAIC0yNDMsNyArMjQzLDcgQEAgc3RhdGljIHZvaWQgcnVuV2Vic2l0ZURhdGFTdG9yZUN1
c3RvbVBhdAogICAgIH1dOwogCiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAKICAgICBb
cHJvY2Vzc1Bvb2wgX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzXTsKICAgICBuZXdDdXN0b21EYXRh
U3RvcmUgPSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25m
aWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSk7CkBAIC0yNTMs
NyArMjUzLDcgQEAgc3RhdGljIHZvaWQgcnVuV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdAogICAg
IH1dOwogCiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAKICAgICAvLyBUaGlzIHRpbWUs
IHJldXNlIHRoZSBzYW1lIG5ldHdvcmsgcHJvY2VzcyBidXQgc3RpbGwgZG8gYSBuZXcgd2Vic2l0
ZWRhdGFzdG9yZSwgdG8gbWFrZSBzdXJlIGV2ZW4gYW4gZXhpc3RpbmcgbmV0d29yayBwcm9jZXNz
CiAgICAgLy8gZ2V0cyB0aGUgbmV3IGRhdGFzdG9yZS4KQEAgLTI2NSw3ICsyNjUsNyBAQCBzdGF0
aWMgdm9pZCBydW5XZWJzaXRlRGF0YVN0b3JlQ3VzdG9tUGF0CiAgICAgfV07CiAKICAgICByZWNl
aXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKIAogICAgIEVYUEVDVF9GQUxTRShbV0tXZWJzaXRlRGF0YVN0
b3JlIF9kZWZhdWx0RGF0YVN0b3JlRXhpc3RzXSk7CiB9CkBAIC0zMDMsNyArMzAzLDcgQEAgVEVT
VChXZWJLaXQsIEN1c3RvbURhdGFTdG9yZVBhdGhzVmVyc3VzQwogICAgICAgICBFWFBFQ1RfRVEo
MVUsIGRhdGFSZWNvcmRzLmNvdW50KTsKICAgICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsK
ICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVhZHlUb0NvbnRpbnVlKTsKICAgICByZWFk
eVRvQ29udGludWUgPSBmYWxzZTsKIAogICAgIC8vIEZldGNoIHJlY29yZHMgYWdhaW4sIHRoaXMg
dGltZSByZWxlYXNpbmcgb3VyIHJlZmVyZW5jZSB0byB0aGUgZGF0YSBzdG9yZSB3aGlsZSB0aGUg
cmVxdWVzdCBpcyBpbiBmbGlnaHQuCkBAIC0zMTIsNyArMzEyLDcgQEAgVEVTVChXZWJLaXQsIEN1
c3RvbURhdGFTdG9yZVBhdGhzVmVyc3VzQwogICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVl
OwogICAgIH1dOwogICAgIGRhdGFTdG9yZSA9IG5pbDsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJnJlYWR5VG9Db250aW51ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVh
ZHlUb0NvbnRpbnVlKTsKICAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKIAogICAgIC8vIERl
bGV0ZSBhbGwgU1cgcmVjb3JkcywgcmVsZWFzaW5nIG91ciByZWZlcmVuY2UgdG8gdGhlIGRhdGEg
c3RvcmUgd2hpbGUgdGhlIHJlcXVlc3QgaXMgaW4gZmxpZ2h0LgpAQCAtMzIxLDcgKzMyMSw3IEBA
IFRFU1QoV2ViS2l0LCBDdXN0b21EYXRhU3RvcmVQYXRoc1ZlcnN1c0MKICAgICAgICAgcmVhZHlU
b0NvbnRpbnVlID0gdHJ1ZTsKICAgICB9XTsKICAgICBkYXRhU3RvcmUgPSBuaWw7Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKHJlYWR5VG9Db250aW51ZSk7CiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFs
c2U7CiAKICAgICAvLyBUaGUgcmVjb3JkcyBzaG91bGQgaGF2ZSBiZWVuIGRlbGV0ZWQsIGFuZCB0
aGUgY2FsbGJhY2sgc2hvdWxkIGhhdmUgYmVlbiBtYWRlLgpAQCAtMzMxLDcgKzMzMSw3IEBAIFRF
U1QoV2ViS2l0LCBDdXN0b21EYXRhU3RvcmVQYXRoc1ZlcnN1c0MKICAgICAgICAgRVhQRUNUX0VR
KDBVLCBkYXRhUmVjb3Jkcy5jb3VudCk7CiAgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7
CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlYWR5VG9Db250aW51ZSk7CiB9CiAKIFRF
U1QoV2ViS2l0LCBDdXN0b21EYXRhU3RvcmVEZXN0cm95V2hpbGVGZXRjaGluZ05ldHdvcmtQcm9j
ZXNzRGF0YSkKQEAgLTM1Myw3ICszNTMsNyBAQCBURVNUKFdlYktpdCwgQ3VzdG9tRGF0YVN0b3Jl
RGVzdHJveVdoaWxlCiAgICAgICAgICAgICBFWFBFQ1RfRVEoKGludClkYXRhUmVjb3Jkcy5jb3Vu
dCwgMCk7CiAgICAgICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOwogICAgICAgICB9XTsK
LSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworICAg
ICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRvQ29udGludWUpOwogICAgICAgICBy
ZWFkeVRvQ29udGludWUgPSBmYWxzZTsKIAogICAgICAgICAvLyBGZXRjaCByZWNvcmRzIGFnYWlu
LCB0aGlzIHRpbWUgcmVsZWFzaW5nIG91ciByZWZlcmVuY2UgdG8gdGhlIGRhdGEgc3RvcmUgd2hp
bGUgdGhlIHJlcXVlc3QgaXMgaW4gZmxpZ2h0LgpAQCAtMzYzLDcgKzM2Myw3IEBAIFRFU1QoV2Vi
S2l0LCBDdXN0b21EYXRhU3RvcmVEZXN0cm95V2hpbGUKICAgICAgICAgfV07CiAgICAgICAgIGRh
dGFTdG9yZSA9IG5pbDsKICAgICB9Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFk
eVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlYWR5VG9Db250aW51
ZSk7CiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CiAKICAgICBAYXV0b3JlbGVhc2Vwb29s
IHsKQEAgLTM4NCw3ICszODQsNyBAQCBURVNUKFdlYktpdCwgQ3VzdG9tRGF0YVN0b3JlRGVzdHJv
eVdoaWxlCiAgICAgICAgIGRhdGFTdG9yZSA9IG5pbDsKICAgICB9CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwocmVhZHlUb0NvbnRpbnVlKTsKICAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKIH0K
IApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRlUG9s
aWNpZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XZWJzaXRlUG9saWNpZXMubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDksNyArMTQ5LDcgQEAgVEVTVChXZWJLaXQsIFdlYnNpdGVQb2xpY2llc0NvbnRl
bnRCbG9jawogICAgICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBf
YWRkVXNlckNvbnRlbnRGaWx0ZXI6ZmlsdGVyXTsKICAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRy
dWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5n
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lQ29tcGlsaW5nKTsKIAogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNN
YWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgp
XSk7CiAKQEAgLTE2MSwxNSArMTYxLDE1IEBAIFRFU1QoV2ViS2l0LCBXZWJzaXRlUG9saWNpZXND
b250ZW50QmxvY2sKICAgICBhbGVydENvdW50ID0gMDsKICAgICByZWNlaXZlZEFsZXJ0ID0gZmFs
c2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZyZWNlaXZlZEFsZXJ0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChyZWNlaXZlZEFsZXJ0KTsKIAogICAgIHJlY2VpdmVkQWxlcnQgPSBmYWxzZTsKICAgICBbd2Vi
VmlldyByZWxvYWRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRBbGVy
dCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRBbGVydCk7CiAKICAgICBy
ZWNlaXZlZEFsZXJ0ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgX3JlbG9hZFdpdGhvdXRDb250ZW50
QmxvY2tlcnNdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRBbGVydCk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRBbGVydCk7CiAKICAgICBbW19X
S1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgZGVmYXVsdFN0b3JlXSBfcmVtb3ZlQWxsQ29udGVu
dEV4dGVuc2lvbnNdOwogfQpAQCAtNTcyLDcgKzU3Miw3IEBAIFRFU1QoV2ViS2l0LCBXZWJzaXRl
UG9saWNpZXNXaXRoVW5leHBlY3QKIAogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0
ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJzaW1w
bGUiXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENhdGNoRXhjZXB0aW9uKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDYXRjaEV4Y2VwdGlvbik7CiB9CiAKIHN0
cnVjdCBQYXJzZWRSYW5nZSB7CkBAIC0xMDYzLDE2ICsxMDYzLDE2IEBAIFRFU1QoV2ViS2l0LCBD
dXN0b21IZWFkZXJGaWVsZHMpCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9u
RGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0Oi8vL21h
aW5yZXNvdXJjZSJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaXJzdFRlc3RE
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaXJzdFRlc3REb25lKTsKICAgICAK
ICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovL21haW5mcmFtZW9yaWdpbi9tYWlucmVzb3VyY2V3
aXRoaWZyYW1lIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnNlY29uZFRlc3RE
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChzZWNvbmRUZXN0RG9uZSk7CiAKICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAidGVzdDovL3RvcG9yaWdpbi9uZXN0ZWR0b3AiXV1dOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmdGhpcmRUZXN0RG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwodGhpcmRUZXN0RG9uZSk7CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDov
L2hvc3QvdGVzdGN1c3RvbWhlYWRlcmZpZWxkaG9zdHMiXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZmlmdGhUZXN0RG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZmlmdGhUZXN0RG9uZSk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBsb2FkQ291bnQ7CkBAIC0xMTk0
LDcgKzExOTQsNyBAQCBURVNUKFdlYktpdCwgV2Vic2l0ZVBvbGljaWVzQ3VzdG9tVXNlckFnCiAg
ICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07
CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZmluaXNoZWROYXZpZ2F0aW9uKTsKICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxz
ZTsKIAogICAgIHdoaWxlIChsb2FkQ291bnQgIT0gOVUpCkBAIC0xMjA0LDcgKzEyMDQsNyBAQCBU
RVNUKFdlYktpdCwgV2Vic2l0ZVBvbGljaWVzQ3VzdG9tVXNlckFnCiAgICAgcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0Oi8v
d3d3Lmdvb2dsZS5jb20vbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJl
cXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRp
b24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkTmF2aWdhdGlvbik7CiAg
ICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEoMVUsIGxvYWRD
b3VudCk7CkBAIC0xMjYwLDcgKzEyNjAsNyBAQCBURVNUKFdlYktpdCwgV2Vic2l0ZVBvbGljaWVz
Q3VzdG9tSmF2YVNjCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly93d3cud2Via2l0Lm9y
Zy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZpZ2F0aW9uKTsKICAgICBmaW5pc2hlZE5h
dmlnYXRpb24gPSBmYWxzZTsKIAogICAgIHdoaWxlIChsb2FkQ291bnQgIT0gOVUpCkBAIC0xMjkz
LDcgKzEyOTMsNyBAQCBURVNUKFdlYktpdCwgV2Vic2l0ZVBvbGljaWVzQ3VzdG9tVXNlckFnCiAg
ICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07
CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZmluaXNoZWROYXZpZ2F0aW9uKTsKICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxz
ZTsKIAogICAgIHdoaWxlIChsb2FkQ291bnQgIT0gOVUpCkBAIC0xMzM3LDcgKzEzMzcsNyBAQCBU
RVNUKFdlYktpdCwgV2Vic2l0ZVBvbGljaWVzQ3VzdG9tTmF2aWdhCiAgICAgTlNVUkxSZXF1ZXN0
ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAImRhdGE6dGV4dC9odG1sLGhlbGxvIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOwogICAgIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRO
YXZpZ2F0aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZE5hdmlnYXRp
b24pOwogICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogCiAgICAgRVhQRUNUX1NUUkVR
KCJUZXN0IEN1c3RvbSBQbGF0Zm9ybSIsIFtbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAibmF2aWdhdG9yLnBsYXRmb3JtIl0gVVRGOFN0cmluZ10pOwpAQCAtMTQxNiwxNCAr
MTQxNiwxNCBAQCBzdGF0aWMgdm9pZCBydW5XZWJzaXRlUG9saWNpZXNEZXZpY2VPcmllCiAKICAg
ICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovL2xvY2FsaG9zdC9tYWluLmh0bWwiXV07CiAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZp
bmlzaGVkTmF2aWdhdGlvbik7CiAgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CiAKICAg
ICBib29sIGFza2VkRm9yUGVybWlzc2lvbiA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGV2YWx1YXRl
SmF2YVNjcmlwdDpAIkRldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24oKSIg
Y29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgewogICAg
ICAgICBhc2tlZEZvclBlcm1pc3Npb24gPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmYXNrZWRGb3JQZXJtaXNzaW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChhc2tlZEZvclBlcm1pc3Npb24pOwogCiAgICAgX19ibG9jayBib29sIGRpZFJlY2Vp
dmVNZXNzYWdlID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVz
c2FnZTpAInJlY2VpdmVkLWRldmljZS1vcmllbnRhdGlvbi1ldmVudCIgYWN0aW9uOl57CkBAIC0x
NDM4LDcgKzE0MzgsNyBAQCBzdGF0aWMgdm9pZCBydW5XZWJzaXRlUG9saWNpZXNEZXZpY2VPcmll
CiAgICAgICAgIEVYUEVDVF9GQUxTRShjYWxsZWRTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzRGVsZWdhdGUpOwogCiAgICAgaWYgKGFjY2Vzc1BvbGljeSAhPSBfV0tX
ZWJzaXRlRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3lEZW55KQotICAgICAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZFJlY2VpdmVNZXNzYWdlKTsKKyAgICAgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkUmVjZWl2ZU1lc3NhZ2UpOwogICAgIGVsc2Ugewog
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOwogICAgICAgICBFWFBFQ1Rf
RkFMU0UoZGlkUmVjZWl2ZU1lc3NhZ2UpOwpAQCAtMTYxNCwxMSArMTYxNCwxMSBAQCBURVNUKFdl
YktpdCwgVXBkYXRlV2Vic2l0ZVBvbGljaWVzSW52YWxpCiAgICAgRVhQRUNUX1RSVUUoc2F3RXhj
ZXB0aW9uKTsKICAgICAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovLy9pbnZhbGlkIl1dXTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIAogICAgIGRvbmUgPSBmYWxzZTsKICAgICBbd2ViVmlldyBs
b2FkSFRNTFN0cmluZzpAIjxpZnJhbWUgc3JjPSdzdWJGcmFtZSc+PC9pZnJhbWU+IiBiYXNlVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL3dlYmtpdC5vcmcvbWFpbkZyYW1lIl1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0LCBXZWJzaXRlUG9saWNpZXNEYXRhU3Rv
cmUpCkBAIC0xNjI2LDEzICsxNjI2LDEzIEBAIFRFU1QoV2ViS2l0LCBXZWJzaXRlUG9saWNpZXNE
YXRhU3RvcmUpCiAgICAgYXV0byBjb29raWVXZWJWaWV3ID0gd2Vic2l0ZURhdGFTdG9yZVRlc3RX
ZWJWaWV3KCk7CiAgICAgTlNTdHJpbmcgKmFsZXJ0T2xkQ29va2llID0gQCI8c2NyaXB0PnZhciBv
bGRDb29raWUgPSBkb2N1bWVudC5jb29raWU7IGRvY3VtZW50LmNvb2tpZSA9ICdrZXk9dmFsdWUn
OyBhbGVydCgnb2xkIHZhbHVlOiA8JyArIG9sZENvb2tpZSArICc+Jyk7PC9zY3JpcHQ+IjsKICAg
ICBbY29va2llV2ViVmlldyBsb2FkSFRNTFN0cmluZzphbGVydE9sZENvb2tpZSBiYXNlVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL2V4YW1wbGUuY29tL2NoZWNrQ29va2llcyJdXTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMSA9IFtj
b29raWVXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAKICAgICBbY29va2llV2ViVmll
dyBsb2FkSFRNTFN0cmluZzphbGVydE9sZENvb2tpZSBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAiaHR0cDovL2V4YW1wbGUuY29tL2NoZWNrQ29va2llcyJdXTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogCiAgICAgRVhQRUNUX05FKHBpZDEsIFtjb29raWVXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl0pOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9f
V0tJbnB1dERlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvX1dLSW5wdXREZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tJbnB1dERlbGVnYXRlLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNyArMTAwLDcgQEAgVEVTVChXZWJLaXQsIEZvcm1TdWJt
aXNzaW9uKQogICAgICAgICAiPGlucHV0IHR5cGU9J3Bhc3N3b3JkJyBuYW1lPSd0ZXN0bmFtZTIn
IHZhbHVlPSd0ZXN0dmFsdWUyJy8+IgogICAgICAgICAiPGlucHV0IHR5cGU9J2hpZGRlbicgbmFt
ZT0ndGVzdG5hbWUzJyB2YWx1ZT0ndGVzdHZhbHVlMycvPiIKICAgICAiPC9mb3JtPjwvYm9keT4i
IGJhc2VVUkw6bmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLVXNl
ckNvbnRlbnRFeHRlbnNpb25TdG9yZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0JKHJl
dmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
X1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTEsNyAr
NTEsNyBAQCBURVNUX0YoX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVRlc3QsCiAKICAgICAg
ICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
Q29tcGlsaW5nKTsKIH0KIAogc3RhdGljIE5TU3RyaW5nICppbnZhbGlkRmlsdGVyID0gQCJbIjsK
QEAgLTc0LDcgKzc0LDcgQEAgVEVTVF9GKF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVUZXN0
LAogCiAgICAgICAgIGRvbmVDb21waWxpbmcgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZUNvbXBpbGluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZUNvbXBpbGluZyk7CiB9CiAKIFRFU1RfRihfV0tVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlVGVzdCwgTG9va3VwKQpAQCAtODcsNyArODcsNyBAQCBURVNUX0YoX1dLVXNlckNvbnRl
bnRFeHRlbnNpb25TdG9yZVRlc3QsCiAKICAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CiAg
ICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lQ29tcGlsaW5nKTsKIAogICAgIF9fYmxvY2sg
Ym9vbCBkb25lTG9va2luZ1VwID0gZmFsc2U7CiAgICAgW1tfV0tVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlIGRlZmF1bHRTdG9yZV0gbG9va3VwQ29udGVudEV4dGVuc2lvbkZvcklkZW50aWZpZXI6
QCJUZXN0RXh0ZW5zaW9uIiBjb21wbGV0aW9uSGFuZGxlcjpeKF9XS1VzZXJDb250ZW50RmlsdGVy
ICpmaWx0ZXIsIE5TRXJyb3IgKmVycm9yKSB7CkBAIC05Nyw3ICs5Nyw3IEBAIFRFU1RfRihfV0tV
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCwKIAogICAgICAgICBkb25lTG9va2luZ1VwID0g
dHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVMb29raW5n
VXApOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVMb29raW5nVXApOwogfQogCiBU
RVNUX0YoX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVRlc3QsIE5vbkV4aXN0aW5nSWRlbnRp
Zmllckxvb2t1cCkKQEAgLTExMyw3ICsxMTMsNyBAQCBURVNUX0YoX1dLVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZVRlc3QsCiAgICAgICAgIAogICAgICAgICBkb25lTG9va2luZ1VwID0gdHJ1ZTsK
ICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVMb29raW5nVXApOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVMb29raW5nVXApOwogfQogCiBURVNUX0Yo
X1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVRlc3QsIFZlcnNpb25NaXNtYXRjaCkKQEAgLTEy
Nyw3ICsxMjcsNyBAQCBURVNUX0YoX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVRlc3QsCiAg
ICAgICAgIAogICAgICAgICBkb25lQ29tcGlsaW5nID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVDb21waWxpbmcpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmVDb21waWxpbmcpOwogCiAgICAgW1tfV0tVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlIGRlZmF1bHRTdG9yZV0gX2ludmFsaWRhdGVDb250ZW50RXh0ZW5zaW9uVmVyc2lvbkZv
cklkZW50aWZpZXI6QCJUZXN0RXh0ZW5zaW9uIl07CiAgICAgCkBAIC0xNDMsNyArMTQzLDcgQEAg
VEVTVF9GKF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVUZXN0LAogICAgICAgICAKICAgICAg
ICAgZG9uZUxvb2tpbmdVcCA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lTG9va2luZ1VwKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
TG9va2luZ1VwKTsKIH0KIAogVEVTVF9GKF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVUZXN0
LCBSZW1vdmFsKQpAQCAtMTU2LDcgKzE1Niw3IEBAIFRFU1RfRihfV0tVc2VyQ29udGVudEV4dGVu
c2lvblN0b3JlVGVzdCwKIAogICAgICAgICBkb25lQ29tcGlsaW5nID0gdHJ1ZTsKICAgICB9XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVDb21waWxpbmcpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVDb21waWxpbmcpOwogCiAgICAgX19ibG9jayBib29sIGRv
bmVSZW1vdmluZyA9IGZhbHNlOwogICAgIFtbX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBk
ZWZhdWx0U3RvcmVdIHJlbW92ZUNvbnRlbnRFeHRlbnNpb25Gb3JJZGVudGlmaWVyOkAiVGVzdEV4
dGVuc2lvbiIgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICplcnJvcikgewpAQCAtMTY0LDcg
KzE2NCw3IEBAIFRFU1RfRihfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCwKIAogICAg
ICAgICBkb25lUmVtb3ZpbmcgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZVJlbW92aW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
UmVtb3ZpbmcpOwogfQogCiBURVNUX0YoX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVRlc3Qs
IE5vbkV4aXN0aW5nSWRlbnRpZmllclJlbW92ZSkKQEAgLTE3OCw1ICsxNzgsNSBAQCBURVNUX0Yo
X1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVRlc3QsCiAKICAgICAgICAgZG9uZVJlbW92aW5n
ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVSZW1v
dmluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZVJlbW92aW5nKTsKIH0KSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0TGVnYWN5L2lvcy9BdWRpb1Nlc3Np
b25DYXRlZ29yeUlPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdExlZ2FjeS9pb3MvQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJT1MubW0JKHJldmlzaW9uIDI0
NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0TGVnYWN5L2lvcy9BdWRp
b1Nlc3Npb25DYXRlZ29yeUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtOTcsNyArOTcsNyBAQCBU
RVNUKFdlYktpdExlZ2FjeSwgQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJCiAKICAgICBbdWlXZWJWaWV3
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWlu
QnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInZpZGVvLXdpdGgtYXVkaW8iIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CiAKLSAg
ICBVdGlsOjpydW4oJmRpZEJlZ2luUGxheWluZyk7CisgICAgcnVuVW50aWwoZGlkQmVnaW5QbGF5
aW5nKTsKIAogICAgIHdhaXRVbnRpbEF1ZGlvU2Vzc2lvbkNhdGVnb3J5SXNFcXVhbFRvKGdldEFW
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5YmFjaygpKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoZ2V0
QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVBsYXliYWNrKCksIFtbZ2V0QVZBdWRpb1Nlc3Npb25DbGFz
cygpIHNoYXJlZEluc3RhbmNlXSBjYXRlZ29yeV0pOwpAQCAtMTEwLDcgKzExMCw3IEBAIFRFU1Qo
V2ViS2l0TGVnYWN5LCBBdWRpb1Nlc3Npb25DYXRlZ29yeUkKIAogICAgIFt1aVdlYlZpZXcgbG9h
ZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5k
bGVdIFVSTEZvclJlc291cmNlOkAidmlkZW8td2l0aG91dC1hdWRpbyIgd2l0aEV4dGVuc2lvbjpA
Imh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKIAotICAg
IFV0aWw6OnJ1bigmZGlkQmVnaW5QbGF5aW5nKTsKKyAgICBydW5VbnRpbChkaWRCZWdpblBsYXlp
bmcpOwogCiAgICAgd2FpdFVudGlsQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJc0VxdWFsVG8oZ2V0QVZB
dWRpb1Nlc3Npb25DYXRlZ29yeUFtYmllbnQoKSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKGdldEFW
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50KCksIFtbZ2V0QVZBdWRpb1Nlc3Npb25DbGFzcygp
IHNoYXJlZEluc3RhbmNlXSBjYXRlZ29yeV0pOwpAQCAtMTIwLDcgKzEyMCw3IEBAIFRFU1QoV2Vi
S2l0TGVnYWN5LCBBdWRpb1Nlc3Npb25DYXRlZ29yeUkKIAogICAgIFt1aVdlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAidmlkZW8td2l0aC1tdXRlZC1hdWRpbyIgd2l0aEV4dGVuc2lvbjpA
Imh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKIAotICAg
IFV0aWw6OnJ1bigmZGlkQmVnaW5QbGF5aW5nKTsKKyAgICBydW5VbnRpbChkaWRCZWdpblBsYXlp
bmcpOwogCiAgICAgd2FpdFVudGlsQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJc0VxdWFsVG8oZ2V0QVZB
dWRpb1Nlc3Npb25DYXRlZ29yeUFtYmllbnQoKSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKGdldEFW
QXVkaW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50KCksIFtbZ2V0QVZBdWRpb1Nlc3Npb25DbGFzcygp
IHNoYXJlZEluc3RhbmNlXSBjYXRlZ29yeV0pOwpAQCAtMTMwLDcgKzEzMCw3IEBAIFRFU1QoV2Vi
S2l0TGVnYWN5LCBBdWRpb1Nlc3Npb25DYXRlZ29yeUkKIAogICAgIFt1aVdlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAidmlkZW8td2l0aC1tdXRlZC1hdWRpby1hbmQtd2ViYXVkaW8iIHdp
dGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdXV07CiAKLSAgICBVdGlsOjpydW4oJmRpZEJlZ2luUGxheWluZyk7CisgICAgcnVuVW50aWwo
ZGlkQmVnaW5QbGF5aW5nKTsKIAogICAgIHdhaXRVbnRpbEF1ZGlvU2Vzc2lvbkNhdGVnb3J5SXNF
cXVhbFRvKGdldEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlBbWJpZW50KCkpOwogICAgIEVYUEVDVF9X
S19TVFJFUShnZXRBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudCgpLCBbW2dldEFWQXVkaW9T
ZXNzaW9uQ2xhc3MoKSBzaGFyZWRJbnN0YW5jZV0gY2F0ZWdvcnldKTsKQEAgLTE0MCw3ICsxNDAs
NyBAQCBURVNUKFdlYktpdExlZ2FjeSwgQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJCiAKICAgICBbdWlX
ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInZpZGVvLXdpdGgtcGF1c2VkLWF1ZGlvLWFu
ZC1wbGF5aW5nLW11dGVkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwogCi0gICAgVXRpbDo6cnVuKCZkaWRCZWdpblBsYXlp
bmcpOworICAgIHJ1blVudGlsKGRpZEJlZ2luUGxheWluZyk7CiAKICAgICB3YWl0VW50aWxBdWRp
b1Nlc3Npb25DYXRlZ29yeUlzRXF1YWxUbyhnZXRBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5UGxheWJh
Y2soKSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKGdldEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5
YmFjaygpLCBbW2dldEFWQXVkaW9TZXNzaW9uQ2xhc3MoKSBzaGFyZWRJbnN0YW5jZV0gY2F0ZWdv
cnldKTsKQEAgLTE1Myw3ICsxNTMsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgQXVkaW9TZXNzaW9u
Q2F0ZWdvcnlJCiAKICAgICBbdWlXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAImF1ZGlv
LW9ubHkiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdXV07CiAKLSAgICBVdGlsOjpydW4oJmRpZEJlZ2luUGxheWluZyk7CisgICAg
cnVuVW50aWwoZGlkQmVnaW5QbGF5aW5nKTsKIAogICAgIHdhaXRVbnRpbEF1ZGlvU2Vzc2lvbkNh
dGVnb3J5SXNFcXVhbFRvKGdldEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5YmFjaygpKTsKICAg
ICBFWFBFQ1RfV0tfU1RSRVEoZ2V0QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVBsYXliYWNrKCksIFtb
Z2V0QVZBdWRpb1Nlc3Npb25DbGFzcygpIHNoYXJlZEluc3RhbmNlXSBjYXRlZ29yeV0pOwpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvaW9zL1Njcm9sbGluZ0Rv
ZXNOb3RQYXVzZU1lZGlhLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0TGVnYWN5L2lvcy9TY3JvbGxpbmdEb2VzTm90UGF1c2VNZWRpYS5tbQkocmV2aXNp
b24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvaW9z
L1Njcm9sbGluZ0RvZXNOb3RQYXVzZU1lZGlhLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04OCw4ICs4
OCw4IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBTY3JvbGxpbmdEb2VzTm90UGF1c2UKIAogICAgIFt1
aVdlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNCdW5k
bGUubWFpbkJ1bmRsZSBVUkxGb3JSZXNvdXJjZTpAInZpZGVvLXdpdGgtYXVkaW8iIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07
CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOwotICAgIFV0aWw6OnJ1bigmZ290TWFp
bkZyYW1lKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChnb3RN
YWluRnJhbWUpOwogCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoWyZdICgpIG11dGFibGUg
ewogICAgICAgICBET01IVE1MTWVkaWFFbGVtZW50KiB2aWRlbyA9IChET01IVE1MTWVkaWFFbGVt
ZW50KilbbWFpbkZyYW1lLkRPTURvY3VtZW50IHF1ZXJ5U2VsZWN0b3I6QCJ2aWRlbyJdOwpAQCAt
MTAyLDcgKzEwMiw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBTY3JvbGxpbmdEb2VzTm90UGF1c2UK
ICAgICAgICAgW3ZpZGVvIHBsYXldOwogICAgIH0pOwogCi0gICAgVXRpbDo6cnVuKCZkaWRSZWNl
aXZlUGxheWluZyk7CisgICAgcnVuVW50aWwoZGlkUmVjZWl2ZVBsYXlpbmcpOwogCiAgICAgY2Fs
bE9uTWFpblRocmVhZEFuZFdhaXQoWyZdICgpIG11dGFibGUgewogICAgICAgICBET01IVE1MTWVk
aWFFbGVtZW50KiB2aWRlbyA9IChET01IVE1MTWVkaWFFbGVtZW50KilbbWFpbkZyYW1lLkRPTURv
Y3VtZW50IHF1ZXJ5U2VsZWN0b3I6QCJ2aWRlbyJdOwpAQCAtMTE1LDcgKzExNSw3IEBAIFRFU1Qo
V2ViS2l0TGVnYWN5LCBTY3JvbGxpbmdEb2VzTm90UGF1c2UKICAgICAgICAgW3ZpZGVvIHBhdXNl
XTsKICAgICB9KTsKIAotICAgIFV0aWw6OnJ1bigmZGlkUmVjZWl2ZVBhdXNlKTsKKyAgICBydW5V
bnRpbChkaWRSZWNlaXZlUGF1c2UpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdExlZ2FjeS9pb3MvU25hcHNo
b3RWaWFSZW5kZXJJbkNvbnRleHQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRMZWdhY3kvaW9zL1NuYXBzaG90VmlhUmVuZGVySW5Db250ZXh0Lm1tCShy
ZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdExlZ2Fj
eS9pb3MvU25hcHNob3RWaWFSZW5kZXJJbkNvbnRleHQubW0JKHdvcmtpbmcgY29weSkKQEAgLTgw
LDcgKzgwLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFJlbmRlckluQ29udGV4dFNuYXBzaAogICAg
IE5TTG9nKEAiTG9hZGluZyAlQCIsIHVybCk7CiAgICAgW3VpV2ViVmlldyBsb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnVybF1dOwogICAgIAotICAgIFV0aWw6OnJ1bigm
bG9hZENvbXBsZXRlKTsKKyAgICBydW5VbnRpbChsb2FkQ29tcGxldGUpOwogICAgIAogICAgIEVY
UEVDVF9UUlVFKGxvYWRDb21wbGV0ZSk7CiAgICAgRVhQRUNUX0ZBTFNFKGxvYWRGYWlsZWQpOwpJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvbWFjL0FjY2Vzc2lu
Z1Bhc3RlZEltYWdlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0TGVnYWN5L21hYy9BY2Nlc3NpbmdQYXN0ZWRJbWFnZS5tbQkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvbWFjL0FjY2Vzc2lu
Z1Bhc3RlZEltYWdlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIFRFU1QoV2Vi
S2l0TGVnYWN5LCBBY2Nlc3NpbmdJbWFnZUluUGFzdGUKIAogICAgIGF1dG8gKm1haW5GcmFtZSA9
IHdlYlZpZXcuZ2V0KCkubWFpbkZyYW1lOwogICAgIFtbd2ViVmlldy5nZXQoKSBtYWluRnJhbWVd
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWlu
QnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInBhc3RlLXJ0ZmQiIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07Ci0gICAgVXRpbDo6
cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICBb
d2ViVmlldy5nZXQoKSBzZXRFZGl0YWJsZTpZRVNdOwogCiAgICAgYXV0byAqcG5nRGF0YSA9IFtO
U0RhdGEgZGF0YVdpdGhDb250ZW50c09mRmlsZTpbW05TQnVuZGxlIG1haW5CdW5kbGVdIHBhdGhG
b3JSZXNvdXJjZTpAInN1bnNldC1pbi1jdXBlcnRpbm8tMjAwcHgiIG9mVHlwZTpAInBuZyIgaW5E
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKQEAgLTk5LDcgKzk5LDcgQEAg
VEVTVChXZWJLaXRMZWdhY3ksIEFjY2Vzc2luZ0ltYWdlSW5QYXN0ZQogCiAgICAgd3JpdGVSVEZE
VG9QYXN0ZWJvYXJkKFJURkREYXRhKTsKICAgICBbd2ViVmlldyBwYXN0ZTpuaWxdOwotICAgIFV0
aWw6OnJ1bigmZGlkQWxlcnQpOworICAgIHJ1blVudGlsKGRpZEFsZXJ0KTsKIAogICAgIERPTURv
Y3VtZW50ICpkb2N1bWVudCA9IFttYWluRnJhbWUgRE9NRG9jdW1lbnRdOwogICAgIERPTUVsZW1l
bnQgKmRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKQEAgLTEyNiwx
OSArMTI2LDE5IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBBY2Nlc3NpbmdJbWFnZUluUGFzdGUKICAg
ICBbZGVzdGluYXRpb25XZWJWaWV3LmdldCgpIHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCld
OwogCiAgICAgW1tzb3VyY2VXZWJWaWV3LmdldCgpIG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAiaW1hZ2UtYW5kLWNvbnRlbnRlZGl0YWJsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKLSAgICBVdGlsOjpy
dW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIFtz
b3VyY2VXZWJWaWV3LmdldCgpIHNldEVkaXRhYmxlOllFU107CiAKICAgICBkaWRGaW5pc2hMb2Fk
ID0gZmFsc2U7CiAgICAgW1tkZXN0aW5hdGlvbldlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJwYXN0ZS1ydGZkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwotICAgIFV0aWw6OnJ1bigm
ZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgW2Rlc3Rp
bmF0aW9uV2ViVmlldy5nZXQoKSBzZXRFZGl0YWJsZTpZRVNdOwogCiAgICAgW3NvdXJjZVdlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEZyb21TdHJpbmc6QCJkb2N1bWVudC5ib2R5
LmZvY3VzKCk7IGRvY3VtZW50LmV4ZWNDb21tYW5kKCdzZWxlY3RBbGwnKTsiXTsKICAgICBbc291
cmNlV2ViVmlldyBjb3B5Om5pbF07CiAKICAgICBbZGVzdGluYXRpb25XZWJWaWV3IHBhc3RlOm5p
bF07Ci0gICAgVXRpbDo6cnVuKCZkaWRBbGVydCk7CisgICAgcnVuVW50aWwoZGlkQWxlcnQpOwog
CiAgICAgYXV0byAqbWFpbkZyYW1lID0gZGVzdGluYXRpb25XZWJWaWV3LmdldCgpLm1haW5GcmFt
ZTsKICAgICBET01Eb2N1bWVudCAqZG9jdW1lbnQgPSBbbWFpbkZyYW1lIERPTURvY3VtZW50XTsK
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0TGVnYWN5L21hYy9DbG9zaW5n
V2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dExlZ2FjeS9tYWMvQ2xvc2luZ1dlYlZpZXcubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0TGVnYWN5L21hYy9DbG9zaW5nV2ViVmlldy5tbQko
d29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgQ2xvc2lu
Z1dlYlZpZXdUaGVuU2VuCiAgICAgCiAgICAgW1t3ZWJWaWV3IG1haW5GcmFtZV0gbG9hZEhUTUxT
dHJpbmc6QCI8aHRtbD48Ym9keSBjb250ZW50ZWRpdGFibGU+PHNjcmlwdD5mdW5jdGlvbiBhZGRL
ZXlQcmVzc0hhbmRsZXIoKSB7IGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJl
c3MnLCBmdW5jdGlvbihldmVudCkgeyBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyB9LCB0cnVlKSB9
OyBkb2N1bWVudC5ib2R5LmZvY3VzKCk7PC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4iIGJhc2VVUkw6
bmlsXTsKIAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlk
RmluaXNoTG9hZCk7CiAKICAgICAvLyBGaXJzdCwgYWRkIGEgbmF0aXZlIGV2ZW50IGxpc3RlbmVy
IHRoYXQgY2xvc2VzIHRoZSBXZWJWaWV3LgogICAgIFtbW3dlYlZpZXcgbWFpbkZyYW1lRG9jdW1l
bnRdIGJvZHldIGFkZEV2ZW50TGlzdGVuZXI6QCJrZXlwcmVzcyIgbGlzdGVuZXI6W1tLZXlib2Fy
ZEV2ZW50TGlzdGVuZXIgYWxsb2NdIGluaXRdIHVzZUNhcHR1cmU6Tk9dOwpJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvbWFjL0RlYWxsb2NXZWJWaWV3SW5FdmVu
dExpc3RlbmVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0TGVnYWN5L21hYy9EZWFsbG9jV2ViVmlld0luRXZlbnRMaXN0ZW5lci5tbQkocmV2aXNpb24g
MjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvbWFjL0Rl
YWxsb2NXZWJWaWV3SW5FdmVudExpc3RlbmVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw3ICs3
Nyw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBEZWFsbG9jV2ViVmlld0luRXZlbnQKICAgICAgICAg
d2ViVmlldy5nZXQoKS5mcmFtZUxvYWREZWxlZ2F0ZSA9IGxvYWREZWxlZ2F0ZS5nZXQoKTsKIAog
ICAgICAgICBbW3dlYlZpZXcgbWFpbkZyYW1lXSBsb2FkSFRNTFN0cmluZzpAIjxodG1sPjxib2R5
PjwvYm9keT48L2h0bWw+IiBiYXNlVVJMOm5pbF07Ci0gICAgICAgIFV0aWw6OnJ1bigmZGlkRmlu
aXNoTG9hZCk7CisgICAgICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogCiAgICAgICAgIGF1
dG8gbGlzdGVuZXIgPSBhZG9wdE5TKFtbRGVhbGxvY1dlYlZpZXdJbkV2ZW50TGlzdGVuZXIgYWxs
b2NdIGluaXRdKTsKICAgICAgICAgW1tbd2ViVmlldyBtYWluRnJhbWVEb2N1bWVudF0gYm9keV0g
YWRkRXZlbnRMaXN0ZW5lcjpAImtleXByZXNzIiBsaXN0ZW5lcjpsaXN0ZW5lci5nZXQoKSB1c2VD
YXB0dXJlOk5PXTsKQEAgLTg2LDcgKzg2LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIERlYWxsb2NX
ZWJWaWV3SW5FdmVudAogICAgICAgICBbd2ViVmlldyBjbG9zZV07CiAgICAgICAgIFtwb29sIGRy
YWluXTsKICAgICB9Ci0gICAgVXRpbDo6cnVuKCZkaWRDbG9zZSk7CisgICAgcnVuVW50aWwoZGlk
Q2xvc2UpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdExlZ2FjeS9tYWMvRG93bmxvYWRUaHJlYWQubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvbWFjL0Rv
d25sb2FkVGhyZWFkLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdExlZ2FjeS9tYWMvRG93bmxvYWRUaHJlYWQubW0JKHdvcmtpbmcgY29weSkK
QEAgLTg0LDcgKzg0LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIERvd25sb2FkVGhyZWFkKQogICAg
IFt3ZWJWaWV3IHNldERvd25sb2FkRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCiAgICAgW1t3
ZWJWaWV3IG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1d
OwotICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiAKICAgICBFWFBF
Q1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6
ZGVzdGluYXRpb24uZ2V0KCldKTsKICAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJd
IHJlbW92ZUl0ZW1BdFBhdGg6ZGVzdGluYXRpb24uZ2V0KCkgZXJyb3I6bmlsXTsKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0T2JqQy9DdXN0b21Qcm90b2NvbHNJbnZhbGlk
U2NoZW1lLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
T2JqQy9DdXN0b21Qcm90b2NvbHNJbnZhbGlkU2NoZW1lLm1tCShyZXZpc2lvbiAyNDU1MTYpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdE9iakMvQ3VzdG9tUHJvdG9jb2xzSW52
YWxpZFNjaGVtZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNyBAQCBURVNUKFdlYktp
dDJDdXN0b21Qcm90b2NvbHNUZXN0LCBMb2FkSW52CiAgICAgd2ViVmlldy5wbGF0Zm9ybVZpZXco
KS5icm93c2luZ0NvbnRleHRDb250cm9sbGVyLmxvYWREZWxlZ2F0ZSA9IFtbTG9hZEludmFsaWRT
Y2hlbWVEZWxlZ2F0ZSBhbGxvY10gaW5pdF07CiAgICAgW3dlYlZpZXcucGxhdGZvcm1WaWV3KCku
YnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHQndHA6Ly93d3cud2Via2l0Lm9yZyJd
XV07CiAgICAgCi0gICAgVXRpbDo6cnVuKCZ0ZXN0RmluaXNoZWQpOworICAgIHJ1blVudGlsKHRl
c3RGaW5pc2hlZCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0T2JqQy9DdXN0b21Qcm90b2NvbHNUZXN0Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0T2JqQy9DdXN0
b21Qcm90b2NvbHNUZXN0Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdE9iakMvQ3VzdG9tUHJvdG9jb2xzVGVzdC5tbQkod29ya2luZyBjb3B5
KQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoKQogICAgIFt3a1ZpZXcg
YnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcl0ubG9hZERlbGVnYXRlID0gbG9hZERlbGVnYXRlLmdl
dCgpOwogICAgIFtbd2tWaWV3IGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJdIGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6W05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQDovL3JlZGlyZWN0P3Rlc3QiLCBbVGVzdFByb3RvY29s
IHNjaGVtZV1dXV1dOwogCi0gICAgVXRpbDo6cnVuKCZ0ZXN0RmluaXNoZWQpOworICAgIHJ1blVu
dGlsKHRlc3RGaW5pc2hlZCk7CiB9CiAKIFRFU1QoV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3Qs
IE1haW5SZXNvdXJjZSkKQEAgLTE3NSw3ICsxNzUsNyBAQCBURVNUKFdlYktpdDJDdXN0b21Qcm90
b2NvbHNUZXN0LCBQcm9jZXNzCiAgICAgCiAgICAgICAgIFtbd2tWaWV3IGJyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXJdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJjdXN0b206Ly8vdGVzdCJdXV07CiAKLSAgICAgICAgVXRpbDo6
cnVuKCZpc0RvbmUpOworICAgICAgICBydW5VbnRpbChpc0RvbmUpOwogICAgICAgICBpc0RvbmUg
PSBmYWxzZTsKIAogICAgICAgICAvLyBJbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGJsb2NrIGdv
aW5nIG91dCBvZiBzY29wZSwgbWFudWFsbHkgcmVsZWFzZSB0aGVzZSBvYmplY3RzIGluIHRoaXMg
b3JkZXIKQEAgLTE4OSw3ICsxODksNyBAQCBURVNUKFdlYktpdDJDdXN0b21Qcm90b2NvbHNUZXN0
LCBQcm9jZXNzCiAgICAgCiAgICAgLy8gaXNEb25lIG1pZ2h0IGFscmVhZHkgYmUgdHJ1ZSBpZiB0
aGUgcHJvdG9jb2wgaGFzIGFscmVhZHkgYmVlbiB0b2xkIHRvIHN0b3BMb2FkaW5nLgogICAgIGlm
ICghaXNEb25lKQotICAgICAgICBVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgICAgIHJ1blVudGls
KGlzRG9uZSk7CiAgICAgCiAgICAgLy8gVG8gY3Jhc2ggcmVsaWFibHkgd2UgbmVlZCB0byBzcGlu
IHRoZSBydW5sb29wIGEgZmV3IHRpbWVzIGFmdGVyIHRoZSBjdXN0b20gcHJvdG9jb2wgaGFzIGNv
bXBsZXRlZC4KICAgICBVdGlsOjpzcGluUnVuTG9vcCgxMCk7CkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdE9iakMvUHJldmVudEltYWdlTG9hZFdpdGhBdXRvUmVzaXppbmcu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRPYmpDL1By
ZXZlbnRJbWFnZUxvYWRXaXRoQXV0b1Jlc2l6aW5nLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdE9iakMvUHJldmVudEltYWdlTG9hZFdpdGhB
dXRvUmVzaXppbmcubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgVEVTVChXZWJL
aXQsIFByZXZlbnRJbWFnZUxvYWRXaXRoQXV0b1JlcwogICAgIH1dOwogICAgIFt3ZWJWaWV3LnBs
YXRmb3JtVmlldygpLmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgbG9hZEhUTUxTdHJpbmc6QCI8
aHRtbD48Ym9keSBzdHlsZT0nYmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFz
ZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBb0FBQUFLQ0FZQUFBQ05Ncys5QUFBQUdYUkZX
SFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFGWkpSRUZVZUY1OXo0
RUpBREVJUTFGMzZrN3U1RTdaS1hlVVFQQUNKM3dLN1VOb2tWeFZrOWtIblFIN2JZOWhiRHlEaE5Y
Z2pwUkxxRmxvNE0yR2dmeUpIaGpxOFY0YWdmcmdQUVgzSnRKUUdib2ZtQ0hnQS9uQUtrcytKQWpG
QUFBQUFFbEZUa1N1UW1DQyk7Jz48L2JvZHk+PC9odG1sPiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAImFib3V0OmJsYW5rIl1dOwogCi0gICAgVXRpbDo6cnVuKCZ0ZXN0RmluaXNoZWQp
OworICAgIHJ1blVudGlsKHRlc3RGaW5pc2hlZCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0T2JqQy9Vc2Vy
Q29udGVudFRlc3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRPYmpDL1VzZXJDb250ZW50VGVzdC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRPYmpDL1VzZXJDb250ZW50VGVzdC5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTM1LDcgKzEzNSw3IEBAIFRFU1RfRihXZWJLaXQyVXNlckNvbnRlbnRUZXN0
LCBBZGRVc2VyU3QKICAgICAKICAgICBbd2tWaWV3LmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIg
bG9hZEhUTUxTdHJpbmc6aHRtbFN0cmluZyBiYXNlVVJMOm5pbF07CiAgICAgCi0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZ0ZXN0RmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKHRlc3RGaW5pc2hlZCk7CiB9CiAKIFRFU1RfRihXZWJLaXQyVXNlckNvbnRlbnRUZXN0
LCBBZGRVc2VyU3R5bGVTaGVldEFmdGVyQ3JlYXRpbmdWaWV3KQpAQCAtMTU2LDcgKzE1Niw3IEBA
IFRFU1RfRihXZWJLaXQyVXNlckNvbnRlbnRUZXN0LCBBZGRVc2VyU3QKICAgICAKICAgICBbd2tW
aWV3LmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgbG9hZEhUTUxTdHJpbmc6aHRtbFN0cmluZyBi
YXNlVVJMOm5pbF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnRlc3RGaW5pc2hl
ZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwodGVzdEZpbmlzaGVkKTsKIH0KIAogVEVT
VF9GKFdlYktpdDJVc2VyQ29udGVudFRlc3QsIFJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cykKQEAg
LTE3OCw3ICsxNzgsNyBAQCBURVNUX0YoV2ViS2l0MlVzZXJDb250ZW50VGVzdCwgUmVtb3ZlQWxs
CiAgICAgCiAgICAgW3drVmlldy5icm93c2luZ0NvbnRleHRDb250cm9sbGVyIGxvYWRIVE1MU3Ry
aW5nOmh0bWxTdHJpbmcgYmFzZVVSTDpuaWxdOwogICAgIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbCh0ZXN0
RmluaXNoZWQpOwogfQogCiBURVNUX0YoV2ViS2l0MlVzZXJDb250ZW50VGVzdCwgQWRkVXNlclNj
cmlwdEJlZm9yZUNyZWF0aW5nVmlldykKQEAgLTE5OCw3ICsxOTgsNyBAQCBURVNUX0YoV2ViS2l0
MlVzZXJDb250ZW50VGVzdCwgQWRkVXNlclNjCiAgICAgCiAgICAgW3drVmlldy5icm93c2luZ0Nv
bnRleHRDb250cm9sbGVyIGxvYWRIVE1MU3RyaW5nOkAiIiBiYXNlVVJMOm5pbF07CiAgICAgCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZ0ZXN0RmluaXNoZWQpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKHRlc3RGaW5pc2hlZCk7CiB9CiAKIFRFU1RfRihXZWJLaXQyVXNlckNv
bnRlbnRUZXN0LCBBZGRVc2VyU2NyaXB0QWZ0ZXJDcmVhdGluZ1ZpZXcpCkBAIC0yMTksNyArMjE5
LDcgQEAgVEVTVF9GKFdlYktpdDJVc2VyQ29udGVudFRlc3QsIEFkZFVzZXJTYwogICAgIAogICAg
IFt3a1ZpZXcuYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBsb2FkSFRNTFN0cmluZzpAIiIgYmFz
ZVVSTDpuaWxdOwogICAgIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmdGVzdEZpbmlz
aGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbCh0ZXN0RmluaXNoZWQpOwogfQogCiBU
RVNUX0YoV2ViS2l0MlVzZXJDb250ZW50VGVzdCwgUmVtb3ZlQWxsVXNlclNjcmlwdHMpCkBAIC0y
NDEsNyArMjQxLDcgQEAgVEVTVF9GKFdlYktpdDJVc2VyQ29udGVudFRlc3QsIFJlbW92ZUFsbAog
ICAgIAogICAgIFt3a1ZpZXcuYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBsb2FkSFRNTFN0cmlu
ZzpodG1sU3RyaW5nIGJhc2VVUkw6bmlsXTsKICAgICAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJnRlc3RGaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwodGVzdEZp
bmlzaGVkKTsKIH0KIAogI2VuZGlmIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRPYmpDL1dLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlVGVzdC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdE9iakMvV0tCcm93c2luZ0NvbnRl
eHRMb2FkRGVsZWdhdGVUZXN0Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdE9iakMvV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVUZXN0
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNyArMTE1LDcgQEAgVEVTVF9GKFdLQnJvd3NpbmdD
b250ZXh0TG9hZERlbGVnYXRlVGVzdAogICAgIFt2aWV3LmJyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIgbG9hZEZpbGVVUkw6bnNVUkwgcmVzdHJpY3RUb0ZpbGVzV2l0aGluOm5pbF07CiAKICAgICAv
LyBXYWl0IGZvciB0aGUgbG9hZCB0byBmaW5pc2guCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZzaW1wbGVMb2FkRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoc2ltcGxl
TG9hZERvbmUpOwogCiAgICAgLy8gVGVhciBkb3duIHRoZSBkZWxlZ2F0ZS4KICAgICB2aWV3LmJy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIubG9hZERlbGVnYXRlID0gbmlsOwpAQCAtMTM0LDcgKzEz
NCw3IEBAIFRFU1RfRihXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QKICAgICBbdmll
dy5icm93c2luZ0NvbnRleHRDb250cm9sbGVyIGxvYWRIVE1MU3RyaW5nOkAiPGh0bWw+PGJvZHk+
U2ltcGxlIEhUTUwgU3RyaW5nPC9ib2R5PjwvaHRtbD4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJhYm91dDpibGFuayJdXTsKIAogICAgIC8vIFdhaXQgZm9yIHRoZSBsb2FkIHRvIGZp
bmlzaC4KLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnNpbXBsZUxvYWREb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChzaW1wbGVMb2FkRG9uZSk7CiAKICAgICAvLyBUZWFy
IGRvd24gdGhlIGRlbGVnYXRlLgogICAgIHZpZXcuYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5s
b2FkRGVsZWdhdGUgPSBuaWw7CkBAIC0xNTMsNyArMTUzLDcgQEAgVEVTVF9GKFdLQnJvd3NpbmdD
b250ZXh0TG9hZERlbGVnYXRlVGVzdAogICAgIFt2aWV3LmJyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIgbG9hZEhUTUxTdHJpbmc6QCI8aHRtbD48Ym9keT5TaW1wbGUgSFRNTCBTdHJpbmc8L2JvZHk+
PC9odG1sPiIgYmFzZVVSTDpuaWxdOwogCiAgICAgLy8gV2FpdCBmb3IgdGhlIGxvYWQgdG8gZmlu
aXNoLgotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmc2ltcGxlTG9hZERvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHNpbXBsZUxvYWREb25lKTsKIAogICAgIC8vIFRlYXIg
ZG93biB0aGUgZGVsZWdhdGUuCiAgICAgdmlldy5icm93c2luZ0NvbnRleHRDb250cm9sbGVyLmxv
YWREZWxlZ2F0ZSA9IG5pbDsKQEAgLTE3Miw3ICsxNzIsNyBAQCBURVNUX0YoV0tCcm93c2luZ0Nv
bnRleHRMb2FkRGVsZWdhdGVUZXN0CiAgICAgW3ZpZXcuYnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ciBsb2FkSFRNTFN0cmluZzpuaWwgYmFzZVVSTDpuaWxdOwogCiAgICAgLy8gV2FpdCBmb3IgdGhl
IGxvYWQgdG8gZmluaXNoLgotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmc2ltcGxlTG9h
ZERvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHNpbXBsZUxvYWREb25lKTsKIAog
ICAgIC8vIFRlYXIgZG93biB0aGUgZGVsZWdhdGUuCiAgICAgdmlldy5icm93c2luZ0NvbnRleHRD
b250cm9sbGVyLmxvYWREZWxlZ2F0ZSA9IG5pbDsKQEAgLTIyMyw3ICsyMjMsNyBAQCBURVNUX0Yo
V0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVUZXN0CiAgICAgW3ZpZXcuYnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlciBsb2FkRmlsZVVSTDpuc1VSTCByZXN0cmljdFRvRmlsZXNXaXRoaW46bmls
XTsKIAogICAgIC8vIFdhaXQgZm9yIHRoZSBsb2FkIHRvIGZhaWwuCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZzaW1wbGVMb2FkRmFpbERvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKHNpbXBsZUxvYWRGYWlsRG9uZSk7CiAKICAgICAvLyBUZWFyIGRvd24gdGhlIGRlbGVn
YXRlLgogICAgIHZpZXcuYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5sb2FkRGVsZWdhdGUgPSBu
aWw7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9BY2Nlc3NpYmlsaXR5VGVz
dHNJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvQWNj
ZXNzaWJpbGl0eVRlc3RzSU9TLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9BY2Nlc3NpYmlsaXR5VGVzdHNJT1MubW0JKHdvcmtpbmcgY29weSkK
QEAgLTQwLDcgKzQwLDcgQEAgLSAoTlNBcnJheTxOU1ZhbHVlICo+ICopcmVjdHNBdFNlbGVjdGlv
bgogICAgICAgICBzZWxlY3Rpb25SZWN0cyA9IHJlY3RzOwogICAgICAgICBkb25lID0gdHJ1ZTsK
ICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIHJldHVybiBzZWxlY3Rpb25SZWN0cy5hdXRv
cmVsZWFzZSgpOwogfQogQGVuZApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3Mv
QWN0aW9uU2hlZXRUZXN0cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL2lvcy9BY3Rpb25TaGVldFRlc3RzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9BY3Rpb25TaGVldFRlc3RzLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjIsNyArMTIyLDcgQEAgVEVTVChBY3Rpb25TaGVldFRlc3RzLCBESVNBQkxFRF9EaXNt
aXNzaQogICAgIH1dOwogCiAgICAgW3dlYlZpZXcgX3NpbXVsYXRlTG9uZ1ByZXNzQWN0aW9uQXRM
b2NhdGlvbjpDR1BvaW50TWFrZSgxMDAsIDEwMCldOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBF
WFBFQ1RfRkFMU0UoZGlkRGlzbWlzc1dlYlZpZXdDb250cm9sbGVyKTsKICAgICBFWFBFQ1RfTlVM
TChbd2ViVmlld0NvbnRyb2xsZXIgcHJlc2VudGVkVmlld0NvbnRyb2xsZXJdKTsKQEAgLTE0Nyw3
ICsxNDcsNyBAQCBURVNUKEFjdGlvblNoZWV0VGVzdHMsIEltYWdlTWFwRG9lc05vdERlCiAgICAg
ICAgIHJldHVybiBhY3Rpb25zOwogICAgIH1dOwogICAgIFt3ZWJWaWV3IF9zaW11bGF0ZUxvbmdQ
cmVzc0FjdGlvbkF0TG9jYXRpb246Q0dQb2ludE1ha2UoMjAwLCAyMDApXTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKCJIZWxsbyB3b3JsZCIsIFt3ZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIl0pOwog
fQpAQCAtMTc3LDcgKzE3Nyw3IEBAIFRFU1QoQWN0aW9uU2hlZXRUZXN0cywgRGF0YURldGVjdG9y
c0xpbmsKICAgICAgICAgICAgIHJldHVybiBAWyBdOwogICAgICAgICB9XTsKICAgICAgICAgW3dl
YlZpZXcgX3NpbXVsYXRlTG9uZ1ByZXNzQWN0aW9uQXRMb2NhdGlvbjpDR1BvaW50TWFrZSg1LCA1
KV07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgICAgIHJldHVybiBzdWNjZWVkZWQ7
CiAgICAgfTsKQEAgLTIxMSw3ICsyMTEsNyBAQCBzdGF0aWMgdm9pZCBwcmVzZW50QWN0aW9uU2hl
ZXRBbmRDaG9vc2VBCiAgICAgICAgIHJldHVybiBAWyBjb3B5QWN0aW9uLmdldCgpIF07CiAgICAg
fV07CiAgICAgW3dlYlZpZXcgX3NpbXVsYXRlTG9uZ1ByZXNzQWN0aW9uQXRMb2NhdGlvbjpsb2Nh
dGlvbl07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKIAogICAgIEVYUEVDVF9UUlVFKCEhY29weUFjdGlvbik7
CiAgICAgRVhQRUNUX1RSVUUoISFjb3B5RWxlbWVudCk7CkBAIC0yNDYsNyArMjQ2LDcgQEAgVEVT
VChBY3Rpb25TaGVldFRlc3RzLCBDb3B5SW1hZ2VFbGVtZW50VwogICAgICAgICBFWFBFQ1RfV0tf
U1RSRVEoKF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVVSTCwgW2l0ZW1Qcm92aWRlciByZWdp
c3RlcmVkVHlwZUlkZW50aWZpZXJzXS5sYXN0T2JqZWN0KTsKICAgICAgICAgZG9uZSA9IHRydWU7
CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIAogICAgIF9fYmxvY2sgYm9vbCBkb25lTG9hZGlu
ZyA9IGZhbHNlOwogICAgIFtpdGVtUHJvdmlkZXIgbG9hZE9iamVjdE9mQ2xhc3M6W05TVVJMIGNs
YXNzXSBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIDxOU0l0ZW1Qcm92aWRlclJlYWRpbmc+IHJlc3Vs
dCwgTlNFcnJvciAqKSB7CkBAIC0yNTYsNyArMjU2LDcgQEAgVEVTVChBY3Rpb25TaGVldFRlc3Rz
LCBDb3B5SW1hZ2VFbGVtZW50VwogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoImhlbGxvIHdvcmxk
IiwgdXJsLl90aXRsZSk7CiAgICAgICAgIGRvbmVMb2FkaW5nID0gdHJ1ZTsKICAgICB9XTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVMb2FkaW5nKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lTG9hZGluZyk7CiB9CiAKIFRFU1QoQWN0aW9uU2hlZXRUZXN0cywg
Q29weUltYWdlRWxlbWVudFdpdGhIUkVGKQpAQCAtMjg2LDcgKzI4Niw3IEBAIFRFU1QoQWN0aW9u
U2hlZXRUZXN0cywgQ29weUltYWdlRWxlbWVudFcKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKChf
X2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVVUkwsIFtpdGVtUHJvdmlkZXIgcmVnaXN0ZXJlZFR5
cGVJZGVudGlmaWVyc10ubGFzdE9iamVjdCk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1d
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBfX2Jsb2NrIGJvb2wgZG9uZUxvYWRpbmcgPSBmYWxz
ZTsKICAgICBbaXRlbVByb3ZpZGVyIGxvYWRPYmplY3RPZkNsYXNzOltOU1VSTCBjbGFzc10gY29t
cGxldGlvbkhhbmRsZXI6XihpZCA8TlNJdGVtUHJvdmlkZXJSZWFkaW5nPiByZXN1bHQsIE5TRXJy
b3IgKikgewpAQCAtMjk2LDcgKzI5Niw3IEBAIFRFU1QoQWN0aW9uU2hlZXRUZXN0cywgQ29weUlt
YWdlRWxlbWVudFcKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJodHRwczovL3d3dy5hcHBsZS5j
b20vIiwgdXJsLl90aXRsZSk7CiAgICAgICAgIGRvbmVMb2FkaW5nID0gdHJ1ZTsKICAgICB9XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVMb2FkaW5nKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lTG9hZGluZyk7CiB9CiAKIFRFU1QoQWN0aW9uU2hlZXRUZXN0
cywgQ29weUltYWdlRWxlbWVudFdpdGhvdXRIUkVGKQpAQCAtMzIzLDcgKzMyMyw3IEBAIFRFU1Qo
QWN0aW9uU2hlZXRUZXN0cywgQ29weUltYWdlRWxlbWVudFcKICAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKChfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVQTkcsIGl0ZW1Qcm92aWRlci5yZWdpc3Rl
cmVkVHlwZUlkZW50aWZpZXJzLmZpcnN0T2JqZWN0KTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAg
ICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogVEVTVChBY3Rpb25TaGVldFRlc3RzLCBDb3B5
TGlua1dyaXRlc1VSTEFuZFBsYWluVGV4dCkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9pb3MvRHJhZ0FuZERyb3BUZXN0c0lPUy5tbQkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRHJhZ0FuZERyb3BUZXN0c0lPUy5t
bQkod29ya2luZyBjb3B5KQpAQCAtNTYyLDcgKzU2Miw3IEBAIFRFU1QoRHJhZ0FuZERyb3BUZXN0
cywgTGlua1RvSW5wdXQpCiAgICAgICAgIEVYUEVDVF9XS19TVFJFUSgiSGVsbG8gd29ybGQiLCB1
cmwuX3RpdGxlLlVURjhTdHJpbmcgPzogIiIpOwogICAgICAgICBkb25lTG9hZGluZ1VSTCA9IHRy
dWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lTG9hZGluZ1VS
TCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZUxvYWRpbmdVUkwpOwogCiAgICAg
TlNBcnJheSAqb2JzZXJ2ZWRFdmVudE5hbWVzID0gW3NpbXVsYXRvciBvYnNlcnZlZEV2ZW50TmFt
ZXNdOwogICAgIEVYUEVDVF9UUlVFKFtvYnNlcnZlZEV2ZW50TmFtZXMgY29udGFpbnNPYmplY3Q6
QCJkcmFnZW50ZXIiXSk7CkBAIC0xMjMzLDcgKzEyMzMsNyBAQCBURVNUKERyYWdBbmREcm9wVGVz
dHMsIEV4dGVybmFsU291cmNlRGF0CiAgICAgICAgIFtzaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50
TWFrZSg1MCwgNTApIHRvOkNHUG9pbnRNYWtlKDE1MCwgNTApXTsKICAgICB9KTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKFtleHBlY3RlZE91dHB1dCBjb21wb25lbnRz
Sm9pbmVkQnlTdHJpbmc6QCJcbiJdLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAib3V0cHV0LnZhbHVlIl0pOwogfQogCkBAIC0xMjYzLDcgKzEyNjMsNyBAQCBURVNUKERy
YWdBbmREcm9wVGVzdHMsIEV4dGVybmFsU291cmNlRGF0CiAgICAgICAgIFtzaW11bGF0b3IgcnVu
RnJvbTpDR1BvaW50TWFrZSg1MCwgNTApIHRvOkNHUG9pbnRNYWtlKDE1MCwgNTApXTsKICAgICB9
KTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKFtleHBlY3RlZE91dHB1
dCBjb21wb25lbnRzSm9pbmVkQnlTdHJpbmc6QCJcbiJdLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAib3V0cHV0LnZhbHVlIl0pOwogfQogCkBAIC0xMzIwLDcgKzEzMjAs
NyBAQCBURVNUKERyYWdBbmREcm9wVGVzdHMsIE92ZXJyaWRlRHJvcCkKICAgICAgICAgfV07CiAg
ICAgfV07CiAgICAgW3NpbXVsYXRvciBydW5Gcm9tOkNHUG9pbnRNYWtlKDMwMCwgNDAwKSB0bzpD
R1BvaW50TWFrZSgxMDAsIDMwMCldOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmlu
aXNoZWRMb2FkaW5nRGF0YSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWRM
b2FkaW5nRGF0YSk7CiB9CiAKIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgSW5qZWN0ZWRCdW5kbGVP
dmVycmlkZVBlcmZvcm1Ud29TdGVwRHJvcCkKQEAgLTE2MTMsNyArMTYxMyw3IEBAIFRFU1QoRHJh
Z0FuZERyb3BUZXN0cywgV2ViSXRlbVByb3ZpZGVyUGEKICAgICAgICAgaGFzUnVuU2Vjb25kQ29t
cGxldGlvbkJsb2NrID0gdHJ1ZTsKICAgICB9IHN5bmNocm9ub3VzVGltZW91dDowXTsKICAgICBF
WFBFQ1RfRkFMU0UoaGFzUnVuU2Vjb25kQ29tcGxldGlvbkJsb2NrKTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmhhc1J1blNlY29uZENvbXBsZXRpb25CbG9jayk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoaGFzUnVuU2Vjb25kQ29tcGxldGlvbkJsb2NrKTsKIH0KIAogVEVT
VChEcmFnQW5kRHJvcFRlc3RzLCBEb05vdENyYXNoV2hlblNlbGVjdGlvbk1vdmVzT2Zmc2NyZWVu
QWZ0ZXJEcmFnU3RhcnQpCkBAIC0yMDA0LDcgKzIwMDQsNyBAQCBURVNUKERyYWdBbmREcm9wVGVz
dHMsIERhdGFUcmFuc2ZlclNldERhCiAgICAgICAgICAgICBAInRleHQvdXJpLWxpc3QiOiBAImh0
dHBzOi8vd2Via2l0Lm9yZy9iLzEyMyIsCiAgICAgICAgIH0KICAgICB9KTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogfQogCiBURVNUKERyYWdBbmREcm9wVGVzdHMsIERhdGFUcmFuc2ZlclNldERhdGFVbmVz
Y2FwZWRVUkwpCkBAIC0yMDQxLDcgKzIwNDEsNyBAQCBURVNUKERyYWdBbmREcm9wVGVzdHMsIERh
dGFUcmFuc2ZlclNldERhCiAgICAgICAgICAgICBAInRleHQvdXJpLWxpc3QiOiBAImh0dHA6Ly93
ZWJraXQub3JnL2IvXHU0RjYwXHU1OTdEOz94PTggKyA2IiwKICAgICAgICAgfQogICAgIH0pOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiB9CiAKIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgRGF0YVRyYW5zZmVy
U2V0RGF0YUludmFsaWRVUkwpCkBAIC0yMTA0LDcgKzIxMDQsNyBAQCBURVNUKERyYWdBbmREcm9w
VGVzdHMsIERhdGFUcmFuc2ZlclNhbml0CiAgICAgICAgICAgICBAInRleHQvaHRtbCI6IEAiPG1l
dGEgY29udGVudD1cInNlY3JldFwiPjxiIG9ubW91c2VvdmVyPVwiZGFuZ2Vyb3VzQ29kZSgpXCI+
aGVsbG88L2I+PCEtLSBzZWNyZXQtLT4sIHdvcmxkPHNjcmlwdD5kYW5nZXJvdXNDb2RlKCk8L3Nj
cmlwdD4iLAogICAgICAgICB9CiAgICAgfSk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9p
b3MvRm9jdXNQcmVzZXJ2YXRpb25UZXN0cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9Gb2N1c1ByZXNlcnZhdGlvblRlc3RzLm1tCShyZXZpc2lvbiAyNDU1
MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9Gb2N1c1ByZXNlcnZhdGlvblRl
c3RzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIFRFU1QoRm9jdXNQcmVzZXJ2
YXRpb25UZXN0cywgUHJlc2VydmVBbmQKIAogICAgIFRlc3RXS1dlYlZpZXcgKndlYlZpZXcgPSB3
ZWJWaWV3QW5kRGVsZWdhdGUuZmlyc3QuZ2V0KCk7CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZh
U2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpIiBjb21wbGV0
aW9uSGFuZGxlcjpuaWxdOwotICAgIFV0aWw6OnJ1bigmaW5wdXRGb2N1c2VkKTsKKyAgICBydW5V
bnRpbChpbnB1dEZvY3VzZWQpOwogCiAgICAgTlNVVUlEICpmb2N1c1Rva2VuID0gTlNVVUlELlVV
SUQ7CiAgICAgW3dlYlZpZXcudGV4dElucHV0Q29udGVudFZpZXcgX3ByZXNlcnZlRm9jdXNXaXRo
VG9rZW46Zm9jdXNUb2tlbiBkZXN0cnVjdGl2ZWx5OllFU107CkBAIC04NiwxMyArODYsMTMgQEAg
VEVTVChGb2N1c1ByZXNlcnZhdGlvblRlc3RzLCBDaGFuZ2luZ0ZvYwogCiAgICAgVGVzdFdLV2Vi
VmlldyAqd2ViVmlldyA9IHdlYlZpZXdBbmREZWxlZ2F0ZS5maXJzdC5nZXQoKTsKICAgICBbd2Vi
VmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcp
LmZvY3VzKCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Ci0gICAgVXRpbDo6cnVuKCZpbnB1dEZv
Y3VzZWQpOworICAgIHJ1blVudGlsKGlucHV0Rm9jdXNlZCk7CiAKICAgICBOU1VVSUQgKmZvY3Vz
VG9rZW4gPSBOU1VVSUQuVVVJRDsKICAgICBbd2ViVmlldy50ZXh0SW5wdXRDb250ZW50VmlldyBf
cHJlc2VydmVGb2N1c1dpdGhUb2tlbjpmb2N1c1Rva2VuIGRlc3RydWN0aXZlbHk6WUVTXTsKIAog
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
J3NlbGVjdCcpLmZvY3VzKCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Ci0gICAgVXRpbDo6cnVu
KCZzZWxlY3RGb2N1c2VkKTsKKyAgICBydW5VbnRpbChzZWxlY3RGb2N1c2VkKTsKIAogICAgIEVY
UEVDVF9OT1RfTlVMTCh3ZWJWaWV3LnRleHRJbnB1dENvbnRlbnRWaWV3LmlucHV0Vmlldyk7CiAg
ICAgW3dlYlZpZXcgc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzoxXTsKSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0tleWJvYXJkSW5wdXRUZXN0c0lPUy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9LZXlib2FyZElucHV0VGVzdHNJ
T1MubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9z
L0tleWJvYXJkSW5wdXRUZXN0c0lPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTYwLDcgKzE2MCw3
IEBAIHN0YXRpYyBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlld1cKICAgICBbd2ViVmll
dyBfc2V0SW5wdXREZWxlZ2F0ZTppbnB1dERlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8bWV0YSBuYW1lPSd2aWV3cG9ydCcgY29udGVu
dD0nd2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEnPjxpbnB1dCBhdXRvZm9jdXM+
Il07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVXYWl0aW5nKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lV2FpdGluZyk7CiAgICAgZG9uZVdhaXRpbmcgPSBm
YWxzZTsKICAgICByZXR1cm4gd2ViVmlldzsKIH0KQEAgLTI4OSw3ICsyODksNyBAQCBURVNUKEtl
eWJvYXJkSW5wdXRUZXN0cywgQ2FuSGFuZGxlS2V5RXZlCiAgICAgICAgIH1dOwogICAgIH1dOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lV2FpdGluZyk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZVdhaXRpbmcpOwogICAgIEVYUEVDVF9XS19TVFJFUSgiYSIs
IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCdpbnB1dCcpLnZhbHVlIl0pOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL2lvcy9SZW5kZXJpbmdQcm9ncmVzc1Rlc3RzLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1JlbmRlcmluZ1Byb2dyZXNzVGVzdHMubW0JKHJldmlz
aW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1JlbmRlcmluZ1By
b2dyZXNzVGVzdHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTYyLDExICs2MiwxMSBAQCBURVNUKFJl
bmRlcmluZ1Byb2dyZXNzVGVzdHMsIERpZFJlbmRlclNpCiAKICAgICBbd2ViVmlldyBzZXROYXZp
Z2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBs
b2FkVGVzdFBhZ2VOYW1lZDpAInNpZ25pZmljYW50LXRleHQtbWlsZXN0b25lIl07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZvYnNlcnZlZFNpZ25pZmljYW50UmVuZGVyZWRUZXh0KTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChvYnNlcnZlZFNpZ25pZmljYW50UmVuZGVyZWRU
ZXh0KTsKIAogICAgIG9ic2VydmVkU2lnbmlmaWNhbnRSZW5kZXJlZFRleHQgPSBmYWxzZTsKICAg
ICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAInNpZ25pZmljYW50LXRleHQtbWlsZXN0b25l
LWFydGljbGUiXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm9ic2VydmVkU2lnbmlm
aWNhbnRSZW5kZXJlZFRleHQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKG9ic2VydmVk
U2lnbmlmaWNhbnRSZW5kZXJlZFRleHQpOwogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZB
TUlMWSkKQEAgLTkxLDcgKzkxLDcgQEAgVEVTVChSZW5kZXJpbmdQcm9ncmVzc1Rlc3RzLCBGaXJz
dFBhaW50VwogCiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25E
ZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJwYWludC1z
aWduaWZpY2FudC1hcmVhLW1pbGVzdG9uZSJdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmb2JzZXJ2ZWRTaWduaWZpY2FudFBhaW50KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChvYnNlcnZlZFNpZ25pZmljYW50UGFpbnQpOwogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oV0FU
Q0hPUykKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Njcm9sbFZpZXdJbnNl
dFRlc3RzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Nj
cm9sbFZpZXdJbnNldFRlc3RzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9TY3JvbGxWaWV3SW5zZXRUZXN0cy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMTY0LDcgKzE2NCw3IEBAIFRFU1QoU2Nyb2xsVmlld0luc2V0VGVzdHMsIFJlc3RvcmVJbml0
aWEKICAgICB9XTsKIAogICAgIFt3ZWJWaWV3IF9raWxsV2ViQ29udGVudFByb2Nlc3NBbmRSZXNl
dFN0YXRlXTsKLSAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGlsKGRvbmUpOwogCiAg
ICAgRVhQRUNUX0VRKGluaXRpYWxDb250ZW50T2Zmc2V0LngsIGNvbnRlbnRPZmZzZXRBZnRlckNy
YXNoLngpOwogICAgIEVYUEVDVF9FUShpbml0aWFsQ29udGVudE9mZnNldC55LCBjb250ZW50T2Zm
c2V0QWZ0ZXJDcmFzaC55KTsKQEAgLTE4MSwxMyArMTgxLDEzIEBAIFRFU1QoU2Nyb2xsVmlld0lu
c2V0VGVzdHMsIFJlc3RvcmVJbml0aWEKICAgICBkZWxlZ2F0ZS0+X25hdmlnYXRpb25Db21wbGV0
ZSA9IE5POwogICAgIE5TVVJMICp0ZXN0UmVzb3VyY2VVUkwgPSBbW1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBidW5kbGVVUkxdIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIlRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzIl07CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6dmVyeVRhbGxEb2N1
bWVudE1hcmt1cCBiYXNlVVJMOnRlc3RSZXNvdXJjZVVSTF07Ci0gICAgVXRpbDo6cnVuKCZkZWxl
Z2F0ZS0+X25hdmlnYXRpb25Db21wbGV0ZSk7CisgICAgcnVuVW50aWwoZGVsZWdhdGUtPl9uYXZp
Z2F0aW9uQ29tcGxldGUpOwogCiAgICAgX19ibG9jayBib29sIHByZXNlbnRhdGlvblVwZGF0ZUhh
cHBlbmVkID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgX2RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBk
YXRlOl57CiAgICAgICAgIHByZXNlbnRhdGlvblVwZGF0ZUhhcHBlbmVkID0gdHJ1ZTsKICAgICB9
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnByZXNlbnRhdGlvblVwZGF0ZUhhcHBl
bmVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChwcmVzZW50YXRpb25VcGRhdGVIYXBw
ZW5lZCk7CiAKICAgICBDR1BvaW50IGluaXRpYWxDb250ZW50T2Zmc2V0ID0gW3dlYlZpZXcgc2Ny
b2xsVmlld10uY29udGVudE9mZnNldDsKICAgICBfX2Jsb2NrIENHUG9pbnQgY29udGVudE9mZnNl
dEFmdGVyQ3Jhc2ggPSBDR1BvaW50WmVybzsKQEAgLTE5OCw3ICsxOTgsNyBAQCBURVNUKFNjcm9s
bFZpZXdJbnNldFRlc3RzLCBSZXN0b3JlSW5pdGlhCiAgICAgfV07CiAKICAgICBbd2ViVmlldyBf
a2lsbFdlYkNvbnRlbnRQcm9jZXNzQW5kUmVzZXRTdGF0ZV07Ci0gICAgVXRpbDo6cnVuKCZkb25l
KTsKKyAgICBydW5VbnRpbChkb25lKTsKIAogICAgIEVYUEVDVF9FUShpbml0aWFsQ29udGVudE9m
ZnNldC54LCBjb250ZW50T2Zmc2V0QWZ0ZXJDcmFzaC54KTsKICAgICBFWFBFQ1RfRVEoaW5pdGlh
bENvbnRlbnRPZmZzZXQueSwgY29udGVudE9mZnNldEFmdGVyQ3Jhc2gueSk7CkluZGV4OiBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9TZXRUaW1lb3V0RnVuY3Rpb24ubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2V0VGltZW91dEZ1bmN0aW9uLm1t
CShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9TZXRU
aW1lb3V0RnVuY3Rpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTg1LDExICs4NSwxMSBAQCBURVNU
KFdlYktpdExlZ2FjeSwgU2V0VGltZW91dEZ1bmN0aW9uKQogCiAgICAgUmV0YWluUHRyPE5TVVJM
PiB1cmwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2V0LXRpbWVv
dXQtZnVuY3Rpb24iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOwogICAgIFt1aVdlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDp1cmwuZ2V0KCldXTsKLSAgICBVdGlsOjpydW4oJmxvYWRDb21w
bGV0ZSk7CisgICAgcnVuVW50aWwobG9hZENvbXBsZXRlKTsKICAgICBFWFBFQ1RfVFJVRShsb2Fk
Q29tcGxldGUpOwogICAgIEVYUEVDVF9GQUxTRShsb2FkRmFpbGVkKTsKIAotICAgIFV0aWw6OnJ1
bigmdGVzdENvbXBsZXRlKTsKKyAgICBydW5VbnRpbCh0ZXN0Q29tcGxldGUpOwogICAgIEVYUEVD
VF9XS19TVFJFUSgiMyIsIG51bWJlck9mU2V0VGltZW91dENhbGxiYWNrcy5nZXQoKSk7CiB9CiAK
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1VJUGFzdGVib2FyZFRlc3RzLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1VJUGFzdGVib2Fy
ZFRlc3RzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L2lvcy9VSVBhc3RlYm9hcmRUZXN0cy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTU2LDcgKzE1Niw3
IEBAIFRFU1QoVUlQYXN0ZWJvYXJkVGVzdHMsIFBhc3RlV2l0aENvbXBsZXQKICAgICAgICAgZG9u
ZSA9IHRydWU7CiAgICAgfV07CiAKLSAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGls
KGRvbmUpOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKCJ0ZXh0L3VyaS1saXN0LCB0ZXh0L3BsYWlu
IiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInR5cGVzLnRleHRDb250
ZW50Il0pOwogICAgIEVYUEVDVF9XS19TVFJFUSgiKFNUUklORywgdGV4dC91cmktbGlzdCksIChT
VFJJTkcsIHRleHQvcGxhaW4pIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAIml0ZW1zLnRleHRDb250ZW50Il0pOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9pb3MvV0tTY3JvbGxWaWV3RGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9pb3MvV0tTY3JvbGxWaWV3RGVsZWdhdGUubW0JKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1dLU2Nyb2xsVmlld0RlbGVnYXRl
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIFRFU1QoV0tXZWJWaWV3LCBXS1Nj
cm9sbFZpZXdEZWxlZ2F0ZUNyYXMKICAgICB9CiAgICAgZGVsZWdhdGVJc0RlYWxsb2NhdGVkID0g
ZmFsc2U7CiAgICAgW2RlbGVnYXRlRm9yU2Nyb2xsVmlldyByZWxlYXNlXTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRlbGVnYXRlSXNEZWFsbG9jYXRlZCk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZGVsZWdhdGVJc0RlYWxsb2NhdGVkKTsKIAogICAgIEVYUEVDVF9OVUxM
KHdlYlZpZXcuc2Nyb2xsVmlldy5kZWxlZ2F0ZSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL2lvcy9XS1Njcm9sbFZpZXdUZXN0cy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9XS1Njcm9sbFZpZXdUZXN0cy5tbQkocmV2aXNpb24gMjQ1
NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvV0tTY3JvbGxWaWV3VGVzdHMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAgVEVTVChXS1Njcm9sbFZpZXdUZXN0
cywgUG9zaXRpb25GaXhlZExheQogICAgIC8vIG9wcG9ydHVuaXR5IHRvIGFycml2ZSBpbiB0aGUg
VUkgcHJvY2VzcyBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlIG5leHQgdmlzaWJsZSBjb250ZW50IHJl
Y3QgdXBkYXRlLgogICAgIHVzbGVlcChVU0VDX1BFUl9TRUMgKiAwLjI1KTsKIAotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZG9uZSk7CiAKICAgICBib29sIGZvdW5kTGF5ZXJGb3JGaXhlZE5hdmlnYXRpb25CYXIgPSBmYWxz
ZTsKICAgICB0cmF2ZXJzZUxheWVyVHJlZShbd2ViVmlldyBsYXllcl0sIFsmXSAoQ0FMYXllciAq
bGF5ZXIpIHsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1dLV2ViVmlld0F1
dG9maWxsVGVzdHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9p
b3MvV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTgxLDcgKzE4MSw3IEBAIFRFU1QoV0tXZWJWaWV3QXV0b2ZpbGxUZXN0cywg
QXV0b2ZpbGxSZXEKICAgICB9XTsKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxT
dHJpbmc6QCI8aW5wdXQgaWQ9J3VzZXInIHR5cGU9J2VtYWlsJz48aW5wdXQgaWQ9J3Bhc3N3b3Jk
JyB0eXBlPSdwYXNzd29yZCc+Il07CiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAInVzZXIuZm9jdXMoKSJdOwotICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVu
VW50aWwoZG9uZSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgdGV4dElucHV0SGFzQXV0
b2ZpbGxDb250ZXh0XSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9B
ZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbQkocmV2
aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWRkaXRpb25h
bFN1cHBvcnRlZEltYWdlVHlwZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAg
c3RhdGljIHZvaWQgcnVuVGVzdChOU0FycmF5ICphZGRpdGlvbmFsUwogICAgIFJldGFpblB0cjxO
U1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJB
ZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAgICAgW1t3ZWJWaWV3LmdldCgp
IG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0
VVJMLmdldCgpXV07CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVu
dGlsKGRpZEZpbmlzaExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKIAogICAgIERP
TURvY3VtZW50ICpkb2N1bWVudCA9IHdlYlZpZXcuZ2V0KCkubWFpbkZyYW1lRG9jdW1lbnQ7Cklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9CYWNrRm9yd2FyZExpc3QubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQmFja0ZvcndhcmRMaXN0
Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9C
YWNrRm9yd2FyZExpc3QubW0JKHdvcmtpbmcgY29weSkKQEAgLTU4LDExICs1OCwxMSBAQCBURVNU
KFdlYktpdExlZ2FjeSwgUmVsb2FkQmFja0ZvcndhcmQpCiAgICAgUmV0YWluUHRyPEJhY2tGb3J3
YXJkTGlzdFRlc3Q+IHRlc3RDb250cm9sbGVyID0gYWRvcHROUyhbQmFja0ZvcndhcmRMaXN0VGVz
dCBuZXddKTsKICAgICB3ZWJWaWV3LmdldCgpLmZyYW1lTG9hZERlbGVnYXRlID0gdGVzdENvbnRy
b2xsZXIuZ2V0KCk7CiAgICAgW1t3ZWJWaWV3LmdldCgpIG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6
Ly9kb2VzLW5vdC1leGlzdC5leGFtcGxlIl1dXTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExv
YWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQgPSBm
YWxzZTsKIAogICAgIFtbd2ViVmlldy5nZXQoKSBtYWluRnJhbWVdIHJlbG9hZF07Ci0gICAgVXRp
bDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAg
ICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAKICAgICBXZWJCYWNrRm9yd2FyZExpc3QgKmJmTGlz
dCA9IFt3ZWJWaWV3LmdldCgpIGJhY2tGb3J3YXJkTGlzdF07CkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9DYW5jZWxMb2FkRnJvbVJlc291cmNlTG9hZERlbGVnYXRlLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NhbmNlbExvYWRGcm9t
UmVzb3VyY2VMb2FkRGVsZWdhdGUubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0NhbmNlbExvYWRGcm9tUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0J
KHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIENhbmNl
bExvYWRGcm9tUmVzb3VyYwogCiAgICAgW1t3ZWJWaWV3LmdldCgpIG1haW5GcmFtZV0gbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAiQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxlZ2F0ZSIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il1dXTsKIAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlk
RmluaXNoTG9hZCk7CiAKICAgICBbcG9vbCBkcmFpbl07CiAgICAgLy8gSWYgd2UgZmluaXNoZWQg
d2l0aG91dCBjcmFzaGluZywgdGhlIHRlc3QgcGFzc2VkLgpJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvQ2FuZGlkYXRlVGVzdHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvQ2FuZGlkYXRlVGVzdHMubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NhbmRpZGF0ZVRlc3RzLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC05Myw4ICs5Myw4IEBAIFRFU1QoQ2FuZGlkYXRlVGVzdHMsIERJU0FCTEVE
X0RvTm90TGVha1YKICAgICBOU1VSTCAqY29udGVudFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJhdXRvZm9jdXNlZC10ZXh0LWlucHV0IiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKICAgICBb
W3dlYlZpZXcgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOmNvbnRlbnRVUkxdXTsKICAgICAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRp
ZEZpbmlzaExvYWQpOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQ2FsbFNob3dD
YW5kaWRhdGVzKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDYWxsU2hvd0NhbmRpZGF0ZXMpOwogCiAg
ICAgW3dlYlZpZXcgcmVsZWFzZV07CiAgICAgRVhQRUNUX1RSVUUod2ViVmlld1dhc0RlYWxsb2Nh
dGVkKTsKQEAgLTExMCw3ICsxMTAsNyBAQCBURVNUKENhbmRpZGF0ZVRlc3RzLCBESVNBQkxFRF9S
ZXF1ZXN0Q2FuCiAgICAgTlNVUkwgKmNvbnRlbnRVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAiZm9jdXMtaW5wdXRzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKICAgICBbW3dlYlZpZXcgbWFp
bkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOmNvbnRlbnRV
UkxdXTsKICAgICAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIAogICAg
IFt3ZWJWaWV3IGZvcmNlUmVxdWVzdENhbmRpZGF0ZXNGb3JUZXN0aW5nXTsKIApAQCAtMTMxLDcg
KzEzMSw3IEBAIFRFU1QoQ2FuZGlkYXRlVGVzdHMsIERvTm90UmVxdWVzdENhbmRpZGEKICAgICBO
U1VSTCAqY29udGVudFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJmb2N1cy1pbnB1dHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOwogICAgIFtbd2ViVmlldyBtYWluRnJhbWVdIGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6Y29udGVudFVSTF1dOwogICAgIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgCiAgICAgW3dlYlZpZXcgZm9yY2VS
ZXF1ZXN0Q2FuZGlkYXRlc0ZvclRlc3RpbmddOwogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVh
dGluZ0phdmFTY3JpcHRGcm9tU3RyaW5nOkAiZm9jdXNQYXNzd29yZEZpZWxkKCkiXTsKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nsb3NlTmV3V2luZG93SW5OYXZpZ2F0aW9u
UG9saWN5RGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvQ2xvc2VOZXdXaW5kb3dJbk5hdmlnYXRpb25Qb2xpY3lEZWxlZ2F0ZS5tbQkocmV2aXNp
b24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ2xvc2VOZXdXaW5k
b3dJbk5hdmlnYXRpb25Qb2xpY3lEZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNzYsNyAr
NzYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgQ2xvc2VOZXdXaW5kb3dJbk5hdmlnCiAgICAgd2Vi
Vmlldy5nZXQoKS5VSURlbGVnYXRlID0gW1Rlc3REZWxlZ2F0ZSBzaGFyZWRdOwogICAgIFtbd2Vi
Vmlldy5nZXQoKSBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIk9wZW5OZXdXaW5k
b3ciIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdXV07CiAgICAgCi0gICAgVXRpbDo6cnVuKCZ0ZXN0RmluaXNoZWQpOworICAgIHJ1
blVudGlsKHRlc3RGaW5pc2hlZCk7CiAgICAgCiAgICAgW3Bvb2wgZHJhaW5dOwogfQpJbmRleDog
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGVudEZpbHRlcmluZy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZW50RmlsdGVyaW5nLm1t
CShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250
ZW50RmlsdGVyaW5nLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyB2
b2lkIGxvYWRBbHRlcm5hdGVUZXN0KERlY2lzaW9uIGQKICAgICAgICAgW1t3ZWJWaWV3IG1haW5G
cmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAImh0dHA6Ly9yZWRpcmVjdC8/cmVzdWx0Il1dXTsKIAogICAgICAgICBpc0Rv
bmUgPSBmYWxzZTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOwor
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAgICAgIHNldHRp
bmdzLnNldEVuYWJsZWQoZmFsc2UpOwogICAgICAgICBbVGVzdFByb3RvY29sIHVucmVnaXN0ZXJd
OwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5
VVJMLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRl
eHRNZW51Q2FuQ29weVVSTC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvQ29udGV4dE1lbnVDYW5Db3B5VVJMLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC05Nyw3ICs5Nyw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBDb250ZXh0TWVudUNhbkNvcHlVUkwK
IAogICAgIFt3ZWJWaWV3LmdldCgpLm1haW5GcmFtZSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJD
b250ZXh0TWVudUNhbkNvcHlVUkwiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6
QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CiAgICAgCi0gICAgVXRpbDo6cnVuKCZkaWRG
aW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKIAogICAgIGNvbnRleHRN
ZW51Q29weUxpbmsod2ViVmlldy5nZXQoKSwgMCk7CiAgICAgCkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51RGVmYXVs
dEl0ZW1zSGF2ZVRhZ3MubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0NvbnRleHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRhZ3MubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTU4LDcgKzU4LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIENvbnRleHRNZW51RGVm
YXVsdEl0ZQogCiAgICAgW3dlYlZpZXcuZ2V0KCkubWFpbkZyYW1lIGxvYWRIVE1MU3RyaW5nOkAi
PGJvZHkgY29udGVudGVkaXRhYmxlPiIgYmFzZVVSTDpuaWxdOwogCi0gICAgVXRpbDo6cnVuKCZk
aWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKIAogICAgIE5TRXZl
bnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlUmlnaHRN
b3VzZURvd24gbG9jYXRpb246TlNNYWtlUG9pbnQoNDAwLCAzMDApIG1vZGlmaWVyRmxhZ3M6MCB0
aW1lc3RhbXA6W05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdCiAgICAgICAg
IHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpbTlNHcmFwaGljc0Nv
bnRleHQgY3VycmVudENvbnRleHRdIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJl
OjBdOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ3Jvc3NQYXJ0aXRpb25G
aWxlU2NoZW1lQWNjZXNzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL0Nyb3NzUGFydGl0aW9uRmlsZVNjaGVtZUFjY2Vzcy5tbQkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ3Jvc3NQYXJ0aXRpb25GaWxlU2No
ZW1lQWNjZXNzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05OSw3ICs5OSw3IEBAIFRFU1QoV2ViS2l0
TGVnYWN5LCBDcm9zc1BhcnRpdGlvbkZpbGVTY2gKICAgICAKICAgICBOU1VSTFJlcXVlc3QgKnJl
cXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnVybF07CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVXRpbDo6cnVuKCZuYXZpZ2F0aW9uQ29tcGxldGUp
OworICAgIHJ1blVudGlsKG5hdmlnYXRpb25Db21wbGV0ZSk7CiAgICAgY2xlYW5VcCgpOwogfQog
fQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRE9NSFRNTFRhYmxlQ2VsbENl
bGxBYm92ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9E
T01IVE1MVGFibGVDZWxsQ2VsbEFib3ZlLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9ET01IVE1MVGFibGVDZWxsQ2VsbEFib3ZlLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Myw3ICs2Myw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBIVE1MVGFibGVD
ZWxsRWxlbWVudEMKICAgICBbW3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0KICAgICAg
ICAgVVJMRm9yUmVzb3VyY2U6QCJET01IVE1MVGFibGVDZWxsRWxlbWVudENlbGxBYm92ZSIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il1dXTsKIAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlk
RmluaXNoTG9hZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgRE9NRG9jdW1l
bnQgKmRvY3VtZW50ID0gd2ViVmlldy5nZXQoKS5tYWluRnJhbWVEb2N1bWVudDsKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RPTUhUTUxWaWRl
b0VsZW1lbnRXcmFwcGVyLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9ET01IVE1MVmlkZW9FbGVtZW50V3JhcHBlci5tbQkod29ya2luZyBjb3B5
KQpAQCAtNTUsNyArNTUsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgRE9NSFRNTFZpZGVvRWxlbWVu
dFdyCiAgICAgd2ViVmlldy5nZXQoKS5mcmFtZUxvYWREZWxlZ2F0ZSA9IGZyYW1lTG9hZERlbGVn
YXRlLmdldCgpOwogICAgIFt3ZWJWaWV3LmdldCgpLm1haW5GcmFtZSBsb2FkSFRNTFN0cmluZzpA
IiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl1dOwogCi0gICAg
VXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsK
IAogICAgIERPTURvY3VtZW50ICpkb2N1bWVudCA9IHdlYlZpZXcuZ2V0KCkubWFpbkZyYW1lRG9j
dW1lbnQ7CiAgICAgRE9NRWxlbWVudCAqdmlkZW8gPSBbZG9jdW1lbnQgY3JlYXRlRWxlbWVudDpA
InZpZGVvIl07CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9ET01Ob2RlLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RPTU5vZGUubW0J
KHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RPTU5v
ZGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ks
IERPTU5vZGVDb21wYXJlRG9jdW1lbgogICAgIHdlYlZpZXcuZ2V0KCkuZnJhbWVMb2FkRGVsZWdh
dGUgPSB0ZXN0Q29udHJvbGxlci5nZXQoKTsKICAgICBbW3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1l
XSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAiYWJvdXQ6YmxhbmsiXV1dOwogICAgIAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNo
TG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9
IGZhbHNlOwogICAgIAogICAgIERPTURvY3VtZW50ICpkb2N1bWVudCA9IHdlYlZpZXcuZ2V0KCku
bWFpbkZyYW1lRG9jdW1lbnQ7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9E
T01SYW5nZU9mU3RyaW5nLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL0RPTVJhbmdlT2ZTdHJpbmcubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RPTVJhbmdlT2ZTdHJpbmcubW0JKHdvcmtpbmcgY29weSkK
QEAgLTU0LDcgKzU0LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIERPTVJhbmdlT2ZTdHJpbmcpCiAg
ICAgd2ViVmlldy5nZXQoKS5mcmFtZUxvYWREZWxlZ2F0ZSA9IGZyYW1lTG9hZERlbGVnYXRlLmdl
dCgpOwogICAgIFtbd2ViVmlldy5nZXQoKSBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAIkRPTVJhbmdlT2ZTdHJpbmciIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6
QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlz
aExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogCiAgICAgRE9NUmFuZ2UgKnJl
c3VsdFJhbmdlID0gW3dlYlZpZXcuZ2V0KCkgRE9NUmFuZ2VPZlN0cmluZzpAIm5lZWRsZXMiIHJl
bGF0aXZlVG86bmlsIG9wdGlvbnM6MF07CiAgICAgRVhQRUNUX0VRKG5pbCwgcmVzdWx0UmFuZ2Up
OwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRGV2aWNlU2NhbGVGYWN0b3JJ
bkRhc2hib2FyZFJlZ2lvbnMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvRGV2aWNlU2NhbGVGYWN0b3JJbkRhc2hib2FyZFJlZ2lvbnMubW0JKHJldmlzaW9u
IDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RldmljZVNjYWxlRmFj
dG9ySW5EYXNoYm9hcmRSZWdpb25zLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBA
IFRFU1QoV2ViS2l0TGVnYWN5LCBEZXZpY2VTY2FsZUZhY3RvckluRGEKIAogICAgIFt3ZWJWaWV3
LmdldCgpLm1haW5GcmFtZSBsb2FkSFRNTFN0cmluZzpAIjxkaXYgc3R5bGU9J3Bvc2l0aW9uOiBh
YnNvbHV0ZTsgdG9wOiAxMHB4OyBsZWZ0OiAxMHB4OyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4
OyAtd2Via2l0LWRhc2hib2FyZC1yZWdpb246IGRhc2hib2FyZC1yZWdpb24oY29udHJvbCByZWN0
YW5nbGUpOyc+PC9kaXY+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6Ymxh
bmsiXV07CiAKLSAgICBVdGlsOjpydW4oJmdvdERhc2hib2FyZFJlZ2lvbnMpOworICAgIHJ1blVu
dGlsKGdvdERhc2hib2FyZFJlZ2lvbnMpOwogCiAgICAgTlNSZWN0IGNvbnRyb2xSZWdpb25SZWN0
ID0gW1tbcmVnaW9ucyBvYmplY3RGb3JLZXk6QCJjb250cm9sIl0gb2JqZWN0QXRJbmRleDowXSBk
YXNoYm9hcmRSZWdpb25SZWN0XTsKIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0VsZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5tbQkocmV2aXNpb24g
MjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRWxlbWVudEF0UG9pbnRJ
bldlYkZyYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIFRFU1QoV2ViS2l0
TGVnYWN5LCBFbGVtZW50QXRQb2ludCkKICAgICBbbWFpbkZyYW1lIGxvYWRIVE1MU3RyaW5nOkAi
PHN0eWxlPiBkaXYgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6NjBweDsgaGVpZ2h0OjEwMHB4
OyB9IDwvc3R5bGU+IDxkaXYgbmFtZT0nZmlyc3QnPjwvZGl2PiA8ZGl2IG5hbWU9J3NlY29uZCcg
c3R5bGU9J2xlZnQ6NjBweDsgdG9wOjEwMHB4Oyc+PC9kaXY+IgogICAgICAgICAgICAgICAgICAg
ICAgIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJdXTsKIAotICAg
IFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7
CiAgICAgCiAgICAgTlNEaWN0aW9uYXJ5ICplbGVtZW50RGljdGlvbmFyeSA9IFttYWluRnJhbWUg
ZWxlbWVudEF0UG9pbnQ6TlNNYWtlUG9pbnQoMzAsIDUwKV07CiAgICAgRE9NRWxlbWVudCAqZG9t
RWxlbWVudCA9IFtlbGVtZW50RGljdGlvbmFyeSBvYmplY3RGb3JLZXk6V2ViRWxlbWVudERPTU5v
ZGVLZXldOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRmlyc3RSZXNwb25k
ZXJTY3JvbGxpbmdQb3NpdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9GaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bvc2l0aW9uLm1tCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3BvbmRlclNj
cm9sbGluZ1Bvc2l0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02OSw3ICs2OSw3IEBAIFRFU1Qo
V2ViS2l0LCBGaXJzdFJlc3BvbmRlclNjcm9sbGluZ1Bvc2kKIAogICAgIFdLUmV0YWluUHRyPFdL
VVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUt
dGFsbCIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5n
ZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRG
aW5pc2hMb2FkKTsKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfSlNf
RVEod2ViVmlldy5wYWdlKCksICJ2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdp
bnB1dCcpOyIKQEAgLTg5LDcgKzg5LDcgQEAgVEVTVChXZWJLaXQsIEZpcnN0UmVzcG9uZGVyU2Ny
b2xsaW5nUG9zaQogICAgIFt3aW5kb3cuZ2V0KCkgbWFrZUZpcnN0UmVzcG9uZGVyOm5ld1dlYlZp
ZXcucGxhdGZvcm1WaWV3KCldOwogCiAgICAgV0tQYWdlTG9hZFVSTChuZXdXZWJWaWV3LnBhZ2Uo
KSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVu
dGlsKGRpZEZpbmlzaExvYWQpOwogCiAgICAgRVhQRUNUX0pTX0VRKHdlYlZpZXcucGFnZSgpLCAi
d2luZG93LnNjcm9sbFkiLCAiNDAiKTsKICAgICBFWFBFQ1RfSlNfRVEobmV3V2ViVmlldy5wYWdl
KCksICJ3aW5kb3cuc2Nyb2xsWSIsICIwIik7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9GaXJzdFJlc3BvbmRlclN1cHByZXNzaW9uLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU3VwcHJlc3Npb24ubW0JKHJl
dmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVz
cG9uZGVyU3VwcHJlc3Npb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgVEVT
VChXZWJLaXQsIEZpcnN0UmVzcG9uZGVyU3VwcHJlc3Npb24pCiAgICAgLy8gRW5zdXJlIGhhdmlu
ZyBhbiBhdXRvZm9jdXNlZCBpbnB1dCBmaWVsZCBkb2VzIG5vdCBzdGVhbCBmb2N1cy4KICAgICBO
U1N0cmluZyAqdGVzdEhUTUwgPSBAIjwhZG9jdHlwZSBodG1sPjxodG1sPjxib2R5PjxpbnB1dCB0
eXBlPVwidGV4dFwiIGF1dG9mb2N1cyAvPjwvYm9keT48L2h0bWw+IjsKICAgICBbd2ViVmlldyBs
b2FkSFRNTFN0cmluZzp0ZXN0SFRNTCBiYXNlVVJMOm5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZmaW5pc2hlZExvYWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZp
bmlzaGVkTG9hZCk7CiAgICAgRVhQRUNUX0VRKFt3aW5kb3cgZmlyc3RSZXNwb25kZXJdLCBbd2lu
ZG93IGNvbnRlbnRWaWV3XSk7CiAgICAgZmluaXNoZWRMb2FkID0gZmFsc2U7CiAKQEAgLTcyLDcg
KzcyLDcgQEAgVEVTVChXZWJLaXQsIEZpcnN0UmVzcG9uZGVyU3VwcHJlc3Npb24pCiAKICAgICAv
LyBFbnN1cmUgaGF2aW5nIGFuIGF1dG9mb2N1c2VkIGlucHV0IGZpZWxkIGRvZXMgc3RlYWwgZm9j
dXMuCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6dGVzdEhUTUwgYmFzZVVSTDpuaWxdOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRMb2FkKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZExvYWQpOwogICAgIEVYUEVDVF9ORShbd2luZG93IGZp
cnN0UmVzcG9uZGVyXSwgW3dpbmRvdyBjb250ZW50Vmlld10pOwogfQogCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Gb250TWFuYWdlclRlc3RzLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZvbnRNYW5hZ2VyVGVzdHMubW0JKHJldmlz
aW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZvbnRNYW5hZ2Vy
VGVzdHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTcwLDcgKzcwLDcgQEAgLSAoTlNEaWN0aW9uYXJ5
PE5TU3RyaW5nICosIGlkPiAqKXR5cGluZwogICAgICAgICByZXN1bHQgPSBhdHRyaWJ1dGVzOwog
ICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIHJldHVy
biByZXN1bHQuYXV0b3JlbGVhc2UoKTsKIH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvRnJhZ21lbnROYXZpZ2F0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0ZyYWdtZW50TmF2aWdhdGlvbi5tbQkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnJhZ21lbnROYXZpZ2F0aW9uLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNyArMTIwLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIEZy
YWdtZW50TmF2aWdhdGlvbikKICAgICAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpbV2ViS2l0
MUZyYWdtZW50TmF2aWdhdGlvblRlc3REZWxlZ2F0ZSBzaGFyZWRdXTsKICAgICAgICAgW1t3ZWJW
aWV3IG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiRnJhZ21lbnROYXZpZ2F0aW9u
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXV1dOwogCi0gICAgICAgIFV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICAgICAg
cnVuVW50aWwodGVzdEZpbmlzaGVkKTsKICAgICB9CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Z1bGxzY3JlZW5ab29tSW5pdGlhbEZy
YW1lLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTY1LDcg
KzE2NSw3IEBAIHZvaWQgRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWU6OnJ1blRlc3QKICAgICBp
c1dhaXRpbmdGb3JQYWdlU2lnbmFsVG9Db250aW51ZSA9IHRydWU7CiAgICAgZGlkR2V0UGFnZVNp
Z25hbFRvQ29udGludWUgPSBmYWxzZTsKICAgICBzZW5kTW91c2VEb3duRXZlbnQodmlldywgZXZl
bnQpOwotICAgIFV0aWw6OnJ1bigmZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUpOworICAgIHJ1
blVudGlsKGRpZEdldFBhZ2VTaWduYWxUb0NvbnRpbnVlKTsKIAogICAgIGlkIHdpbmRvd0NvbnRy
b2xsZXIgPSBbW3ZpZXcgd2luZG93XSB3aW5kb3dDb250cm9sbGVyXTsKICAgICBFWFBFQ1RfVFJV
RShbd2luZG93Q29udHJvbGxlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluaXRpYWxG
cmFtZSldKTsKQEAgLTE4Miw3ICsxODIsNyBAQCB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZy
YW1lOjpydW5UZXN0CiAgICAgaXNXYWl0aW5nRm9yUGFnZVNpZ25hbFRvQ29udGludWUgPSB0cnVl
OwogICAgIGRpZEdldFBhZ2VTaWduYWxUb0NvbnRpbnVlID0gZmFsc2U7CiAgICAgc2VuZE1vdXNl
RG93bkV2ZW50KHZpZXcsIGV2ZW50KTsKLSAgICBVdGlsOjpydW4oJmRpZEdldFBhZ2VTaWduYWxU
b0NvbnRpbnVlKTsKKyAgICBydW5VbnRpbChkaWRHZXRQYWdlU2lnbmFsVG9Db250aW51ZSk7CiB9
CiAKIFRFU1RfRihGdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZSwgV2ViS2l0KQpJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSFRNTENvbGxlY3Rpb25O
YW1lZEl0ZW0ubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL0hUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3
ICs1Nyw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBIVE1MQ29sbGVjdGlvbk5hbWVkSXQKICAgICBb
W3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0KICAgICAgICAgVVJMRm9yUmVzb3VyY2U6
QCJIVE1MQ29sbGVjdGlvbk5hbWVkSXRlbSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKIAotICAgIFV0aWw6OnJ1bigmZGlk
RmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgZGlkRmluaXNo
TG9hZCA9IGZhbHNlOwogCiAgICAgRE9NRG9jdW1lbnQgKmRvY3VtZW50ID0gd2ViVmlldy5nZXQo
KS5tYWluRnJhbWVEb2N1bWVudDsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0hUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9IVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0ubW0JKHJldmlz
aW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hUTUxGb3JtQ29s
bGVjdGlvbk5hbWVkSXRlbS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCBURVNU
KFdlYktpdExlZ2FjeSwgSFRNTEZvcm1Db2xsZWN0aW9uTmFtCiAgICAgW1t3ZWJWaWV3LmdldCgp
IG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05T
QnVuZGxlIG1haW5CdW5kbGVdCiAgICAgICAgIFVSTEZvclJlc291cmNlOkAiSFRNTEZvcm1Db2xs
ZWN0aW9uTmFtZWRJdGVtIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2Fk
KTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICBkaWRGaW5pc2hMb2FkID0gZmFs
c2U7CiAKICAgICBET01Eb2N1bWVudCAqZG9jdW1lbnQgPSB3ZWJWaWV3LmdldCgpLm1haW5GcmFt
ZURvY3VtZW50OwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSW5zcGVjdG9y
QmFyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0luc3Bl
Y3RvckJhci5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvSW5zcGVjdG9yQmFyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIFRF
U1QoV2ViS2l0TGVnYWN5LCBJbnNwZWN0b3JCYXJUZXN0KQogICAgIHdlYlZpZXcuZ2V0KCkuZnJh
bWVMb2FkRGVsZWdhdGUgPSBpbnNwZWN0b3JCYXJDb250cm9sbGVyLmdldCgpOwogICAgIFt3ZWJW
aWV3LmdldCgpLm1haW5GcmFtZSBsb2FkSFRNTFN0cmluZzpAIjxib2R5IGNvbnRlbnRlZGl0YWJs
ZSBzdHlsZT1cImNvbG9yOiBncmVlblwiPjx1PkxvcmVtIGlwc3VtIHNpdCBhbWV0PC91PjwvYm9k
eT4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJdXTsKIAotICAg
IFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7
CiAKICAgICBET01Eb2N1bWVudCAqZG9jdW1lbnQgPSB3ZWJWaWV3LmdldCgpLm1haW5GcmFtZURv
Y3VtZW50OwogICAgIFtbZG9jdW1lbnQgYm9keV0gZm9jdXNdOwpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Jc05hdmlnYXRpb25BY3Rpb25UcnVz
dGVkLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9Jc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw3ICs4
Nyw3IEBAIFRFU1QoV2ViS2l0LCBJc05hdmlnYXRpb25BY3Rpb25UcnVzdGVkKQogICAgICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAogICAgICAgICBkaWRGaW5pc2hUZXN0ID0g
ZmFsc2U7Ci0gICAgICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoVGVzdCk7CisgICAgICAgIHJ1blVu
dGlsKGRpZEZpbmlzaFRlc3QpOwogICAgIH0KIH0KIApAQCAtMTAxLDcgKzEwMSw3IEBAIFRFU1Qo
V2ViS2l0TGVnYWN5LCBJc05hdmlnYXRpb25BY3Rpb25UcnUKICAgICAgICAgW1t3ZWJWaWV3IG1h
aW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3Rl
ZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl1dXTsKIAogICAgICAgICBkaWRGaW5pc2hUZXN0ID0gZmFsc2U7Ci0gICAgICAgIFV0
aWw6OnJ1bigmZGlkRmluaXNoVGVzdCk7CisgICAgICAgIHJ1blVudGlsKGRpZEZpbmlzaFRlc3Qp
OwogICAgIH0KIH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSlNXcmFw
cGVyRm9yTm9kZUluV2ViRnJhbWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvSlNXcmFwcGVyRm9yTm9kZUluV2ViRnJhbWUubW0JKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0pTV3JhcHBlckZvck5vZGVJbldl
YkZyYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIFRFU1QoV2ViS2l0TGVn
YWN5LCBKU1dyYXBwZXJGb3JOb2RlKQogICAgIHdlYlZpZXcuZ2V0KCkuZnJhbWVMb2FkRGVsZWdh
dGUgPSBmcmFtZUxvYWREZWxlZ2F0ZS5nZXQoKTsKICAgICBXZWJGcmFtZSAqbWFpbkZyYW1lID0g
d2ViVmlldy5nZXQoKS5tYWluRnJhbWU7CiAgICAgW21haW5GcmFtZSBsb2FkSFRNTFN0cmluZzpA
IjxkaXYgaWQ9XCJ0YXJnZXRcIjwvZGl2PiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
ImFib3V0OmJsYW5rIl1dOwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVu
VW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgRE9NRG9jdW1lbnQgKmRvY3VtZW50ID0gd2ViVmll
dy5nZXQoKS5tYWluRnJhbWVEb2N1bWVudDsKICAgICBET01Ob2RlICp0YXJnZXQgPSBbZG9jdW1l
bnQgZ2V0RWxlbWVudEJ5SWQ6QCJ0YXJnZXQiXTsgLy8gVGhpcyBzY3JpcHQgb2JqZWN0IGlzIGlu
IHN0YW5kYXJkIHdvcmxkLgogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9M
ZWdhY3lEcmFnQW5kRHJvcFRlc3RzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0xlZ2FjeURyYWdBbmREcm9wVGVzdHMubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0xlZ2FjeURyYWdBbmREcm9wVGVzdHMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTIzMiw3ICsyMzIsNyBAQCBzdGF0aWMgV2ViVmlldyAqd2Vi
Vmlld0FmdGVyUGVyZm9ybWluZ0RyCiAgICAgfV1dOwogICAgIFtbZGVzdGluYXRpb24gbWFpbkZy
YW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJmdWxsLXBhZ2UtY29udGVudGVkaXRhYmxlIiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXV1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAgcmV0dXJuIGRlc3RpbmF0aW9uLmdl
dCgpOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9MaW1pdFRpdGxl
U2l6ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9MaW1p
dFRpdGxlU2l6ZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvTGltaXRUaXRsZVNpemUubW0JKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcg
QEAgVEVTVChXZWJLaXRMZWdhY3ksIExpbWl0VGl0bGVTaXplKQogICAgIFtbd2ViVmlldy5nZXQo
KSBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tO
U0J1bmRsZSBtYWluQnVuZGxlXQogICAgICAgICBVUkxGb3JSZXNvdXJjZTpAInNldC1sb25nLXRp
dGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXV1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRGaW5pc2hM
b2FkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKIH0KIAog
QGludGVyZmFjZSBMaW1pdFRpdGxlU2l6ZVRlc3RPYnNlcnZlciA6IE5TT2JqZWN0CkBAIC05MSw2
ICs5MSw2IEBAIFRFU1QoV2ViS2l0LCBMaW1pdFRpdGxlU2l6ZSkKICAgICBhdXRvIG9ic2VydmVy
ID0gYWRvcHROUyhbTGltaXRUaXRsZVNpemVUZXN0T2JzZXJ2ZXIgbmV3XSk7CiAgICAgW3dlYlZp
ZXcgYWRkT2JzZXJ2ZXI6b2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAInRpdGxlIiBvcHRpb25z
Ok5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpuaWxdOwogICAgIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmd2FpdFVudGlsTG9uZ1RpdGxlUmVjZWl2ZWQpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHdhaXRVbnRpbExvbmdUaXRsZVJlY2VpdmVkKTsKICAg
ICBbd2ViVmlldyByZW1vdmVPYnNlcnZlcjpvYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAidGl0
bGUiXTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0xvYWRJbnZhbGlk
VVJMUmVxdWVzdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9Mb2FkSW52YWxpZFVSTFJlcXVlc3QubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0xvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbQkod29ya2luZyBj
b3B5KQpAQCAtNzUsNyArNzUsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgTG9hZEludmFsaWRVUkxS
ZXF1ZXN0CiAKICAgICAgICAgZGlkRmluaXNoVGVzdCA9IGZhbHNlOwogICAgICAgICBkaWRGYWls
UHJvdmlzaW9uYWxMb2FkID0gZmFsc2U7Ci0gICAgICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoVGVz
dCk7CisgICAgICAgIHJ1blVudGlsKGRpZEZpbmlzaFRlc3QpOwogCiAgICAgICAgIEVYUEVDVF9G
QUxTRShkaWRGYWlsUHJvdmlzaW9uYWxMb2FkKTsKICAgICB9CkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9Mb2FkV2ViQXJjaGl2ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Mb2FkV2ViQXJjaGl2ZS5tbQkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTG9hZFdlYkFyY2hpdmUubW0JKHdv
cmtpbmcgY29weSkKQEAgLTgyLDcgKzgyLDcgQEAgVEVTVChMb2FkV2ViQXJjaGl2ZSwgRmFpbE5h
dmlnYXRpb24xKQogCiAgICAgbmF2aWdhdGlvbkZhaWwgPSBmYWxzZTsKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsK
LSAgICBVdGlsOjpydW4oJm5hdmlnYXRpb25GYWlsKTsKKyAgICBydW5VbnRpbChuYXZpZ2F0aW9u
RmFpbCk7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoZmluYWxVUkwsICJoZWxsb3dvcmxkLndlYmFy
Y2hpdmUiKTsKIH0KQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKExvYWRXZWJBcmNoaXZlLCBGYWls
TmF2aWdhdGlvbjIpCiAKICAgICBuYXZpZ2F0aW9uRmFpbCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1d
OwotICAgIFV0aWw6OnJ1bigmbmF2aWdhdGlvbkZhaWwpOworICAgIHJ1blVudGlsKG5hdmlnYXRp
b25GYWlsKTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShmaW5hbFVSTCwgImhlbGxvd29ybGQud2Vi
YXJjaGl2ZSIpOwogfQpAQCAtMTE2LDcgKzExNiw3IEBAIFRFU1QoTG9hZFdlYkFyY2hpdmUsIENs
aWVudE5hdmlnYXRpb25TdWMKIAogICAgIG5hdmlnYXRpb25Db21wbGV0ZSA9IGZhbHNlOwogICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVS
TC5nZXQoKV1dOwotICAgIFV0aWw6OnJ1bigmbmF2aWdhdGlvbkNvbXBsZXRlKTsKKyAgICBydW5V
bnRpbChuYXZpZ2F0aW9uQ29tcGxldGUpOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKGZpbmFsVVJM
LCAiaGVsbG93b3JsZC53ZWJhcmNoaXZlIik7CiB9CkBAIC0xMzEsMTIgKzEzMSwxMiBAQCBURVNU
KExvYWRXZWJBcmNoaXZlLCBDbGllbnROYXZpZ2F0aW9uUmVsCiAKICAgICBuYXZpZ2F0aW9uQ29t
cGxldGUgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKLSAgICBVdGlsOjpydW4oJm5hdmlnYXRpb25D
b21wbGV0ZSk7CisgICAgcnVuVW50aWwobmF2aWdhdGlvbkNvbXBsZXRlKTsKICAgICBFWFBFQ1Rf
V0tfU1RSRVEoZmluYWxVUkwsICJoZWxsb3dvcmxkLndlYmFyY2hpdmUiKTsKIAogICAgIG5hdmln
YXRpb25Db21wbGV0ZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IHJlbG9hZF07Ci0gICAgVXRpbDo6
cnVuKCZuYXZpZ2F0aW9uQ29tcGxldGUpOworICAgIHJ1blVudGlsKG5hdmlnYXRpb25Db21wbGV0
ZSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKGZpbmFsVVJMLCAiIik7CiB9CiAKQEAgLTE2MCwxMiAr
MTYwLDEyIEBAIFRFU1QoTG9hZFdlYkFyY2hpdmUsIERyYWdOYXZpZ2F0aW9uU3VjY2UKIAogICAg
IG5hdmlnYXRpb25Db21wbGV0ZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6c2ltcGxlVVJMLmdldCgpXV07Ci0gICAgVXRpbDo6
cnVuKCZuYXZpZ2F0aW9uQ29tcGxldGUpOworICAgIHJ1blVudGlsKG5hdmlnYXRpb25Db21wbGV0
ZSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKGZpbmFsVVJMLCAic2ltcGxlLmh0bWwiKTsKIAogICAg
IG5hdmlnYXRpb25Db21wbGV0ZSA9IGZhbHNlOwogICAgIFtzaW11bGF0b3IgcnVuRnJvbTpDR1Bv
aW50TWFrZSgwLCAwKSB0bzpDR1BvaW50TWFrZSg1MCwgNTApXTsKLSAgICBVdGlsOjpydW4oJm5h
dmlnYXRpb25Db21wbGV0ZSk7CisgICAgcnVuVW50aWwobmF2aWdhdGlvbkNvbXBsZXRlKTsKICAg
ICBFWFBFQ1RfV0tfU1RSRVEoZmluYWxVUkwsICJoZWxsb3dvcmxkLndlYmFyY2hpdmUiKTsKIH0K
IApAQCAtMTg5LDE3ICsxODksMTcgQEAgVEVTVChMb2FkV2ViQXJjaGl2ZSwgRHJhZ05hdmlnYXRp
b25SZWxvYQogCiAgICAgbmF2aWdhdGlvbkNvbXBsZXRlID0gZmFsc2U7CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpzaW1wbGVVUkwuZ2V0KCld
XTsKLSAgICBVdGlsOjpydW4oJm5hdmlnYXRpb25Db21wbGV0ZSk7CisgICAgcnVuVW50aWwobmF2
aWdhdGlvbkNvbXBsZXRlKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoZmluYWxVUkwsICJzaW1wbGUu
aHRtbCIpOwogCiAgICAgbmF2aWdhdGlvbkNvbXBsZXRlID0gZmFsc2U7CiAgICAgW3NpbXVsYXRv
ciBydW5Gcm9tOkNHUG9pbnRNYWtlKDAsIDApIHRvOkNHUG9pbnRNYWtlKDUwLCA1MCldOwotICAg
IFV0aWw6OnJ1bigmbmF2aWdhdGlvbkNvbXBsZXRlKTsKKyAgICBydW5VbnRpbChuYXZpZ2F0aW9u
Q29tcGxldGUpOwogICAgIEVYUEVDVF9XS19TVFJFUShmaW5hbFVSTCwgImhlbGxvd29ybGQud2Vi
YXJjaGl2ZSIpOwogCiAgICAgbmF2aWdhdGlvbkNvbXBsZXRlID0gZmFsc2U7CiAgICAgW3dlYlZp
ZXcgcmVsb2FkXTsKLSAgICBVdGlsOjpydW4oJm5hdmlnYXRpb25Db21wbGV0ZSk7CisgICAgcnVu
VW50aWwobmF2aWdhdGlvbkNvbXBsZXRlKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoZmluYWxVUkws
ICIiKTsKIH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTWVkaWFQbGF5
YmFja1NsZWVwQXNzZXJ0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL01lZGlhUGxheWJhY2tTbGVlcEFzc2VydGlvbi5tbQkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTWVkaWFQbGF5YmFja1NsZWVwQXNz
ZXJ0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsMjYgKzE2NSwyNiBAQCBURVNUKFdlYktp
dExlZ2FjeSwgTWVkaWFQbGF5YmFja1NsZWVwQXNzCiAgICAgICAgIE5TVVJMUmVxdWVzdCAqcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIk1lZGlhUGxheWJhY2tTbGVlcEFzc2VydGlvbiIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwog
ICAgICAgICBbbWFpbkZyYW1lIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgICAgIFV0aWw6
OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwog
ICAgICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAKICAgICAgICAgRVhQRUNUX0ZBTFNFKGhh
c0Fzc2VydGlvblR5cGUoQ0ZTVFIoIlByZXZlbnRVc2VySWRsZURpc3BsYXlTbGVlcCIpKSk7CiAg
ICAgICAgIEVYUEVDVF9GQUxTRShoYXNBc3NlcnRpb25UeXBlKENGU1RSKCJQcmV2ZW50VXNlcklk
bGVTeXN0ZW1TbGVlcCIpKSk7CiAKICAgICAgICAgc2ltdWxhdGVLZXlEb3duKHdpbmRvdy5nZXQo
KSk7Ci0gICAgICAgIFV0aWw6OnJ1bigmZGlkQmVnaW5QbGF5aW5nKTsKKyAgICAgICAgcnVuVW50
aWwoZGlkQmVnaW5QbGF5aW5nKTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShoYXNBc3NlcnRpb25U
eXBlKENGU1RSKCJQcmV2ZW50VXNlcklkbGVEaXNwbGF5U2xlZXAiKSkpOwogICAgICAgICBFWFBF
Q1RfRkFMU0UoaGFzQXNzZXJ0aW9uVHlwZShDRlNUUigiUHJldmVudFVzZXJJZGxlU3lzdGVtU2xl
ZXAiKSkpOwogCiAgICAgICAgIHNpbXVsYXRlS2V5RG93bih3aW5kb3cuZ2V0KCkpOwotICAgICAg
ICBVdGlsOjpydW4oJmRpZEJlZ2luUmVtb3RlUGxheWJhY2spOworICAgICAgICBydW5VbnRpbChk
aWRCZWdpblJlbW90ZVBsYXliYWNrKTsKIAogICAgICAgICBFWFBFQ1RfRkFMU0UoaGFzQXNzZXJ0
aW9uVHlwZShDRlNUUigiUHJldmVudFVzZXJJZGxlRGlzcGxheVNsZWVwIikpKTsKICAgICAgICAg
RVhQRUNUX1RSVUUoaGFzQXNzZXJ0aW9uVHlwZShDRlNUUigiUHJldmVudFVzZXJJZGxlU3lzdGVt
U2xlZXAiKSkpOwogCiAgICAgICAgIHNpbXVsYXRlS2V5RG93bih3aW5kb3cuZ2V0KCkpOwotICAg
ICAgICBVdGlsOjpydW4oJmRpZFN0b3BQbGF5aW5nKTsKKyAgICAgICAgcnVuVW50aWwoZGlkU3Rv
cFBsYXlpbmcpOwogCiAgICAgICAgIEVYUEVDVF9GQUxTRShoYXNBc3NlcnRpb25UeXBlKENGU1RS
KCJQcmV2ZW50VXNlcklkbGVEaXNwbGF5U2xlZXAiKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uo
aGFzQXNzZXJ0aW9uVHlwZShDRlNUUigiUHJldmVudFVzZXJJZGxlU3lzdGVtU2xlZXAiKSkpOwpJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTWVtb3J5Q2FjaGVEaXNhYmxlV2l0
aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdh
dGUubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L01lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC04MSw3ICs4MSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBNZW1vcnlDYWNoZURp
c2FibGVXaXQKIAogICAgIFtbd2ViVmlldy5nZXQoKSBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIk1lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlIiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXV1dOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChk
aWRGaW5pc2hMb2FkKTsKICAgICAKICAgICBbcG9vbCBkcmFpbl07CiAgICAgLy8gSWYgd2UgZmlu
aXNoZWQgd2l0aG91dCBjcmFzaGluZywgdGhlIHRlc3QgcGFzc2VkLgpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvTWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJlc291cmNlTG9hZERl
bGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL01l
bW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbQkocmV2aXNpb24gMjQ1
NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTWVtb3J5Q2FjaGVQcnVuZVdp
dGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5MSw3
IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBESVNBQkxFRF9NZW1vcnlDYWNoZVAKIAogICAgIFtbd2Vi
VmlldzEuZ2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJNZW1vcnlDYWNo
ZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CiAKLSAgICBVdGlsOjpy
dW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIAog
ICAgIFtwb29sIGRyYWluXTsKICAgICAvLyBJZiB3ZSBmaW5pc2hlZCB3aXRob3V0IGNyYXNoaW5n
LCB0aGUgdGVzdCBwYXNzZWQuCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9O
YXZpZ2F0b3JMYW5ndWFnZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9OYXZpZ2F0b3JMYW5ndWFnZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTmF2aWdhdG9yTGFuZ3VhZ2UubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTk4LDcgKzk4LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIE5hdmlnYXRvckxhbmd1YWdl
KQogICAgIHdlYlZpZXcuZ2V0KCkuZnJhbWVMb2FkRGVsZWdhdGUgPSBmcmFtZUxvYWREZWxlZ2F0
ZS5nZXQoKTsKICAgICBbW3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6Ymxh
bmsiXV1dOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChk
aWRGaW5pc2hMb2FkKTsKICAgICBmb3IgKE5TQXJyYXkgKnRlc3QgaW4gdGVzdHMpCiAgICAgICAg
IEVYUEVDVF9XS19TVFJFUShbdGVzdCBvYmplY3RBdEluZGV4OjFdLCBsYW5ndWFnZUZvclN5c3Rl
bUxhbmd1YWdlKHdlYlZpZXcuZ2V0KCksIFt0ZXN0IG9iamVjdEF0SW5kZXg6MF0pKTsKIH0KQEAg
LTEyNSw3ICsxMjUsNyBAQCBURVNUKFdLV2ViVmlldywgTmF2aWdhdG9yTGFuZ3VhZ2UpCiAKICAg
ICBydW5UZXN0KDApOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL05vUG9s
aWN5RGVsZWdhdGVSZXNwb25zZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9Ob1BvbGljeURlbGVnYXRlUmVzcG9uc2UubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL05vUG9saWN5RGVsZWdhdGVSZXNwb25z
ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtODIsNyArODIsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwg
Tm9EZWNpZGVQb2xpY3lGb3JNSU1FCiAgICAgd2ViVmlldy5nZXQoKS5wb2xpY3lEZWxlZ2F0ZSA9
IGRlbGVnYXRlLmdldCgpOwogICAgIFtbd2ViVmlldy5nZXQoKSBtYWluRnJhbWVdIGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAInZlcmJvc2VNYXJrdXAiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CiAKLSAgICBVdGlsOjpydW4o
JmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogCiAgICAgRVhQ
RUNUX1RSVUUoZGlkTmF2aWdhdGlvblJlc3BvbnNlQ2hlY2spOwogfQpAQCAtOTYsNyArOTYsNyBA
QCBURVNUKFdlYktpdExlZ2FjeSwgTm9EZWNpZGVQb2xpY3lGb3JOYXZpCiAgICAgd2ViVmlldy5n
ZXQoKS5wb2xpY3lEZWxlZ2F0ZSA9IGRlbGVnYXRlLmdldCgpOwogICAgIFtbd2ViVmlldy5nZXQo
KSBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInZlcmJvc2VNYXJrdXAiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
XV07CiAKLSAgICBVdGlsOjpydW4oJmRpZE5hdmlnYXRpb25BY3Rpb25DaGVjayk7CisgICAgcnVu
VW50aWwoZGlkTmF2aWdhdGlvbkFjdGlvbkNoZWNrKTsKIAogICAgIEVYUEVDVF9GQUxTRShkaWRT
dGFydFByb3Zpc2lvbmFsTG9hZCk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9QYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhX
aW5kb3dDaGFuZ2VzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9QYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lkIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRo
V2luZG93Q2hhbmdlCiAgICAgZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUgPSBmYWxzZTsKICAg
ICBbd2luZG93LmdldCgpIG1ha2VLZXlBbmRPcmRlckZyb250Om5pbF07CiAgICAgRVhQRUNUX1RS
VUUoW3dpbmRvdy5nZXQoKSBpc1Zpc2libGVdKTsKLSAgICBVdGlsOjpydW4oJmRpZEdldFBhZ2VT
aWduYWxUb0NvbnRpbnVlKTsKKyAgICBydW5VbnRpbChkaWRHZXRQYWdlU2lnbmFsVG9Db250aW51
ZSk7CiAgICAgRVhQRUNUX0pTX0VRKHZpZXcsICJkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUiLCAi
dmlzaWJsZSIpOwogICAgIEVYUEVDVF9KU19FUSh2aWV3LCAiZG9jdW1lbnQuaGlkZGVuIiwgImZh
bHNlIik7CiAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRo
V2luZG93Q2hhbmdlCiAgICAgaXNXYWl0aW5nRm9yUGFnZVNpZ25hbFRvQ29udGludWUgPSB0cnVl
OwogICAgIGRpZEdldFBhZ2VTaWduYWxUb0NvbnRpbnVlID0gZmFsc2U7CiAgICAgW3dpbmRvdy5n
ZXQoKSBtaW5pYXR1cml6ZTpuaWxdOwotICAgIFV0aWw6OnJ1bigmZGlkR2V0UGFnZVNpZ25hbFRv
Q29udGludWUpOworICAgIHJ1blVudGlsKGRpZEdldFBhZ2VTaWduYWxUb0NvbnRpbnVlKTsKICAg
ICBFWFBFQ1RfSlNfRVEodmlldywgImRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSIsICJoaWRkZW4i
KTsKICAgICBFWFBFQ1RfSlNfRVEodmlldywgImRvY3VtZW50LmhpZGRlbiIsICJ0cnVlIik7CiAK
QEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hh
bmdlCiAgICAgaXNXYWl0aW5nRm9yUGFnZVNpZ25hbFRvQ29udGludWUgPSB0cnVlOwogICAgIGRp
ZEdldFBhZ2VTaWduYWxUb0NvbnRpbnVlID0gZmFsc2U7CiAgICAgW3dpbmRvdy5nZXQoKSBkZW1p
bmlhdHVyaXplOm5pbF07Ci0gICAgVXRpbDo6cnVuKCZkaWRHZXRQYWdlU2lnbmFsVG9Db250aW51
ZSk7CisgICAgcnVuVW50aWwoZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUpOwogICAgIEVYUEVD
VF9KU19FUSh2aWV3LCAiZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlIiwgInZpc2libGUiKTsKICAg
ICBFWFBFQ1RfSlNfRVEodmlldywgImRvY3VtZW50LmhpZGRlbiIsICJmYWxzZSIpOwogCkBAIC0x
NjQsNyArMTY0LDcgQEAgdm9pZCBQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZQog
ICAgIEVYUEVDVF9OVUxMKFt2aWV3IHdpbmRvd10pOwogICAgIEVYUEVDVF9OVUxMKFt2aWV3IHN1
cGVydmlld10pOwogICAgIEVYUEVDVF9UUlVFKFt3aW5kb3cuZ2V0KCkgaXNWaXNpYmxlXSk7Ci0g
ICAgVXRpbDo6cnVuKCZkaWRHZXRQYWdlU2lnbmFsVG9Db250aW51ZSk7CisgICAgcnVuVW50aWwo
ZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUpOwogICAgIEVYUEVDVF9KU19FUSh2aWV3LCAiZG9j
dW1lbnQudmlzaWJpbGl0eVN0YXRlIiwgImhpZGRlbiIpOwogICAgIEVYUEVDVF9KU19FUSh2aWV3
LCAiZG9jdW1lbnQuaGlkZGVuIiwgInRydWUiKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1JlbmRlcmVkSW1hZ2VGcm9tRE9NTm9kZS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9SZW5kZXJlZEltYWdlRnJvbURPTU5vZGUubW0J
KHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1JlbmRl
cmVkSW1hZ2VGcm9tRE9NTm9kZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBU
RVNUKFdlYktpdExlZ2FjeSwgUmVuZGVyZWRJbWFnZUZyb21ET01OCiAgICAgW3dlYlZpZXcgc2V0
RnJhbWVMb2FkRGVsZWdhdGU6ZnJhbWVMb2FkRGVsZWdhdGUuZ2V0KCldOwogICAgIFtbd2ViVmll
dyBtYWluRnJhbWVdIGxvYWRIVE1MU3RyaW5nOkAiPHA+PHNwYW4gaWQ9XCJ0MVwiIHN0eWxlPVwi
dmVydGljYWwtYWxpZ246IGJvdHRvbTtcIj5TcGFuPC9zcGFuPjwvcD48cD48c3BhbiBpZD1cInQy
XCI+U3Bhbjwvc3Bhbj48L3A+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6
YmxhbmsiXV07CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGls
KGRpZEZpbmlzaExvYWQpOwogCiAgICAgRE9NRG9jdW1lbnQgKmRvY3VtZW50ID0gW3dlYlZpZXcg
bWFpbkZyYW1lRG9jdW1lbnRdOwogICAgIE5TSW1hZ2UgKmltYWdlMSA9IFtbZG9jdW1lbnQgZ2V0
RWxlbWVudEJ5SWQ6QCJ0MSJdIHJlbmRlcmVkSW1hZ2VdOwpJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvUmVuZGVyZWRJbWFnZUZyb21ET01SYW5nZS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9SZW5kZXJlZEltYWdlRnJvbURPTVJhbmdl
Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9S
ZW5kZXJlZEltYWdlRnJvbURPTVJhbmdlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3
IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBSZW5kZXJlZEltYWdlRnJvbURPTVIKICAgICB3ZWJWaWV3
LmdldCgpLmZyYW1lTG9hZERlbGVnYXRlID0gZnJhbWVMb2FkRGVsZWdhdGUuZ2V0KCk7CiAgICAg
W3dlYlZpZXcuZ2V0KCkubWFpbkZyYW1lIGxvYWRIVE1MU3RyaW5nOkAiPGRpdiBzdHlsZT1cIndp
ZHRoOiAxMDBweDtcIj5Mb3JlbSA8c3BhbiBpZD1cInRhcmdldFwiPmlwc3VtIGRvbG9yPC9zcGFu
PiBzaXQgYW1ldDwvZGl2PiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJs
YW5rIl1dOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChk
aWRGaW5pc2hMb2FkKTsKIAogICAgIERPTURvY3VtZW50ICpkb2N1bWVudCA9IHdlYlZpZXcuZ2V0
KCkubWFpbkZyYW1lRG9jdW1lbnQ7CiAgICAgRE9NUmFuZ2UgKnJhbmdlID0gW2RvY3VtZW50IGNy
ZWF0ZVJhbmdlXTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1NldERvY3Vt
ZW50VVJJLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1Nl
dERvY3VtZW50VVJJLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9TZXREb2N1bWVudFVSSS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMs
NyBAQCBURVNUKFdlYktpdExlZ2FjeSwgU2V0RG9jdW1lbnRVUklUZXN0RmlsCiAgICAgUmV0YWlu
UHRyPFNldERvY3VtZW50VVJJVGVzdD4gdGVzdENvbnRyb2xsZXIgPSBhZG9wdE5TKFtTZXREb2N1
bWVudFVSSVRlc3QgbmV3XSk7CiAgICAgd2ViVmlldy5nZXQoKS5mcmFtZUxvYWREZWxlZ2F0ZSA9
IHRlc3RDb250cm9sbGVyLmdldCgpOwogICAgIFtbd2ViVmlldy5nZXQoKSBtYWluRnJhbWVdIGxv
YWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAIlNldERvY3VtZW50VVJJIiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwotICAgIFV0aWw6
OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAg
ZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogICAgIERPTURvY3VtZW50ICpkb2N1bWVudCA9IHdlYlZp
ZXcuZ2V0KCkubWFpbkZyYW1lRG9jdW1lbnQ7CiAKQEAgLTcwLDcgKzcwLDcgQEAgVEVTVChXZWJL
aXRMZWdhY3ksIFNldERvY3VtZW50VVJJVGVzdFVSTAogICAgIFJldGFpblB0cjxTZXREb2N1bWVu
dFVSSVRlc3Q+IHRlc3RDb250cm9sbGVyID0gYWRvcHROUyhbU2V0RG9jdW1lbnRVUklUZXN0IG5l
d10pOwogICAgIHdlYlZpZXcuZ2V0KCkuZnJhbWVMb2FkRGVsZWdhdGUgPSB0ZXN0Q29udHJvbGxl
ci5nZXQoKTsKICAgICBbW3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJTZXREb2N1bWVudFVSSSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlz
aExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQg
PSBmYWxzZTsKICAgICBET01Eb2N1bWVudCAqZG9jdW1lbnQgPSB3ZWJWaWV3LmdldCgpLm1haW5G
cmFtZURvY3VtZW50OwogCkBAIC05MCw3ICs5MCw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBTZXRE
b2N1bWVudFVSSVRlc3RTdHIKICAgICBSZXRhaW5QdHI8U2V0RG9jdW1lbnRVUklUZXN0PiB0ZXN0
Q29udHJvbGxlciA9IGFkb3B0TlMoW1NldERvY3VtZW50VVJJVGVzdCBuZXddKTsKICAgICB3ZWJW
aWV3LmdldCgpLmZyYW1lTG9hZERlbGVnYXRlID0gdGVzdENvbnRyb2xsZXIuZ2V0KCk7CiAgICAg
W1t3ZWJWaWV3LmdldCgpIG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiU2V0RG9j
dW1lbnRVUkkiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdXV07Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBy
dW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAgICAg
RE9NRG9jdW1lbnQgKmRvY3VtZW50ID0gd2ViVmlldy5nZXQoKS5tYWluRnJhbWVEb2N1bWVudDsK
IApAQCAtMTA2LDcgKzEwNiw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBTZXREb2N1bWVudFVSSVRl
c3ROdWwKICAgICBSZXRhaW5QdHI8U2V0RG9jdW1lbnRVUklUZXN0PiB0ZXN0Q29udHJvbGxlciA9
IGFkb3B0TlMoW1NldERvY3VtZW50VVJJVGVzdCBuZXddKTsKICAgICB3ZWJWaWV3LmdldCgpLmZy
YW1lTG9hZERlbGVnYXRlID0gdGVzdENvbnRyb2xsZXIuZ2V0KCk7CiAgICAgW1t3ZWJWaWV3Lmdl
dCgpIG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiU2V0RG9jdW1lbnRVUkkiIHdp
dGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdXV07Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRG
aW5pc2hMb2FkKTsKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAgICAgRE9NRG9jdW1lbnQg
KmRvY3VtZW50ID0gd2ViVmlldy5nZXQoKS5tYWluRnJhbWVEb2N1bWVudDsKIApJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU2ltcGxpZnlNYXJrdXAubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU2ltcGxpZnlNYXJrdXAubW0JKHJldmlz
aW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1NpbXBsaWZ5TWFy
a3VwLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NiwxMyArNTYsMTMgQEAgVEVTVChXZWJLaXRMZWdh
Y3ksIFNpbXBsaWZ5TWFya3VwVGVzdCkKICAgICB3ZWJWaWV3MS5nZXQoKS5mcmFtZUxvYWREZWxl
Z2F0ZSA9IHRlc3RDb250cm9sbGVyLmdldCgpOwogICAgIFtbd2ViVmlldzEuZ2V0KCkgbWFpbkZy
YW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ2ZXJib3NlTWFya3VwIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwogICAg
IAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNo
TG9hZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgd2ViVmlldzIuZ2V0KCku
ZnJhbWVMb2FkRGVsZWdhdGUgPSB0ZXN0Q29udHJvbGxlci5nZXQoKTsKICAgICBbW3dlYlZpZXcy
LmdldCgpIG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAidmVyYm9zZU1hcmt1cCIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl1dXTsKICAgICAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVu
dGlsKGRpZEZpbmlzaExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKICAgICB3aGls
ZSAoIVtbW1t3ZWJWaWV3MSBtYWluRnJhbWVEb2N1bWVudF0gYm9keV0gaW5uZXJIVE1MXSBpc0Vx
dWFsVG9TdHJpbmc6W1tbd2ViVmlldzIgbWFpbkZyYW1lRG9jdW1lbnRdIGJvZHldIGlubmVySFRN
TF1dKQogICAgICAgICBVdGlsOjpzcGluUnVuTG9vcCgxKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL1N0YXJ0TG9hZEluRGlkRmFpbFByb3Zpc2lvbmFsTG9hZC5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TdGFydExvYWRJbkRpZEZh
aWxQcm92aXNpb25hbExvYWQubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL1N0YXJ0TG9hZEluRGlkRmFpbFByb3Zpc2lvbmFsTG9hZC5tbQkod29y
a2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgU3RhcnRMb2Fk
SW5EaWRGYWlsUHJvCiAKICAgICAvLyBTdGFydCBhbm90aGVyIGxvYWQgYmVmb3JlIHRoZSBmaXJz
dCBvbmUgaGFzIGEgY2hhbmNlIHRvIGNvbXBsZXRlLiBUaGlzIHNob3VsZCBjYW5jZWwgdGhlIHBy
ZXZpb3VzIGxvYWQgYW5kIGNhbGwgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvci4KICAg
ICBbW3dlYlZpZXcgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUyIiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXV1dOwotICAgIFV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIHJ1blVudGlsKGZpbmlzaGVk
KTsKICAgICBFWFBFQ1RfVFJVRShkaWRGYWlsUHJvdmlzaW9uYWxMb2FkKTsKIAogICAgIEVYUEVD
VF9XS19TVFJFUShbW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBs
ZTIiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdIGFic29sdXRlU3RyaW5nXSwgd2ViVmlldy5nZXQoKS5tYWluRnJhbWVVUkwpOwpJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3RvcExvYWRpbmdGcm9tRGlkRmlu
aXNoTG9hZGluZy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9TdG9wTG9hZGluZ0Zyb21EaWRGaW5pc2hMb2FkaW5nLm1tCShyZXZpc2lvbiAyNDU1MTYpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TdG9wTG9hZGluZ0Zyb21EaWRGaW5pc2hM
b2FkaW5nLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIFRFU1QoV2ViS2l0TGVn
YWN5LCBTdG9wTG9hZGluZ0Zyb21EaWRGaW4KICAgICAgICAgYXV0byByZXNvdXJjZUxvYWREZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tTdG9wTG9hZGluZ0Zyb21EaWRGaW5pc2hMb2FkaW5nRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKICAgICAgICAgd2ViVmlldy5nZXQoKS5yZXNvdXJjZUxvYWREZWxlZ2F0
ZSA9IHJlc291cmNlTG9hZERlbGVnYXRlLmdldCgpOwogICAgICAgICBbd2ViVmlldy5nZXQoKS5t
YWluRnJhbWUgbG9hZEhUTUxTdHJpbmc6QCJIZWxsbywgV29ybGQhIiBiYXNlVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAiIl1dOwotICAgICAgICBVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICAg
ICAgcnVuVW50aWwoZmluaXNoZWQpOwogICAgIH0KICAgICAvLyBObyBjcmFzaCBtZWFucyB0aGUg
dGVzdCBwYXNzZWQuCiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TdG9w
TG9hZGluZ0Zyb21EaWRSZWNlaXZlUmVzcG9uc2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvU3RvcExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNlLm1t
CShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TdG9w
TG9hZGluZ0Zyb21EaWRSZWNlaXZlUmVzcG9uc2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTY0LDcg
KzY0LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFN0b3BMb2FkaW5nRnJvbURpZFJlYwogCiAgICAg
W1t3ZWJWaWV3LmdldCgpIG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiU3RvcExv
YWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwogCi0gICAgVXRpbDo6cnVuKCZk
aWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICAKICAgICBb
cG9vbCBkcmFpbl07CiAgICAgLy8gSWYgd2UgZmluaXNoZWQgd2l0aG91dCBjcmFzaGluZywgdGhl
IHRlc3QgcGFzc2VkLgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV0tXZWJW
aWV3TWFjRWRpdGluZ1Rlc3RzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dLV2ViVmlld01hY0VkaXRpbmdUZXN0cy5tbQkocmV2aXNpb24gMjQ1NTE2KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV0tXZWJWaWV3TWFjRWRpdGluZ1Rlc3Rz
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC05Miw3ICs5Miw3IEBAIFRFU1QoV0tXZWJWaWV3TWFjRWRp
dGluZ1Rlc3RzLCBEb3VibGVDbGkKICAgICAgICAgZmluaXNoZWRTZWxlY3RpbmdUZXh0ID0gdHJ1
ZTsKICAgICB9XTsKICAgICBbd2ViVmlldyBzZW5kQ2xpY2tzQXRQb2ludDpOU01ha2VQb2ludCgy
MDAsIDIwMCkgbnVtYmVyT2ZDbGlja3M6Ml07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZmaW5pc2hlZFNlbGVjdGluZ1RleHQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZp
bmlzaGVkU2VsZWN0aW5nVGV4dCk7CiAKICAgICBOU1N0cmluZyAqc2VsZWN0ZWRUZXh0ID0gW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLmdldFJh
bmdlQXQoMCkudG9TdHJpbmcoKSJdOwogICAgIEVYUEVDVF9TVFJFUSgiSGVsbG8iLCBzZWxlY3Rl
ZFRleHQuVVRGOFN0cmluZyk7CkBAIC0xMzMsNyArMTMzLDcgQEAgVEVTVChXS1dlYlZpZXdNYWNF
ZGl0aW5nVGVzdHMsIERvTm90Q3JhcwogICAgICAgICB9OwogICAgIH0KIAotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChp
c0RvbmUpOwogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvV2ViU2NyaXB0T2JqZWN0RGVzY3JpcHRpb24ubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViU2NyaXB0T2JqZWN0RGVzY3Jp
cHRpb24ubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL1dlYlNjcmlwdE9iamVjdERlc2NyaXB0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3
ICs2OCw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBXZWJTY3JpcHRPYmplY3REZXNjcmkKICAgICBb
W3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0KICAgICAgICAgVVJMRm9yUmVzb3VyY2U6
QCJXZWJTY3JpcHRPYmplY3REZXNjcmlwdGlvbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKIAotICAgIFV0aWw6OnJ1bigm
ZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgZGlkRmlu
aXNoTG9hZCA9IGZhbHNlOwogICAgIGZhaWxlZE9iakNEZXNjcmlwdGlvbiA9IGZhbHNlOwogCklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2xvc2VJbnNpZGVEaWRG
aW5pc2hMb2FkRm9yRnJhbWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvV2ViVmlld0Nsb3NlSW5zaWRlRGlkRmluaXNoTG9hZEZvckZyYW1lLm1tCShyZXZp
c2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3Q2xv
c2VJbnNpZGVEaWRGaW5pc2hMb2FkRm9yRnJhbWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTU3LDcg
KzU3LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFdlYlZpZXdDbG9zZUluc2lkZURpZAogICAgICAg
ICB3ZWJWaWV3LmdldCgpLmZyYW1lTG9hZERlbGVnYXRlID0gZnJhbWVMb2FkRGVsZWdhdGUuZ2V0
KCk7CiAgICAgICAgIFt3ZWJWaWV3LmdldCgpLm1haW5GcmFtZSBsb2FkSFRNTFN0cmluZzpAIjxo
dG1sPjwvaHRtbD4iIGJhc2VVUkw6bmlsXTsKIAotICAgICAgICBVdGlsOjpydW4oJmRpZEZpbmlz
aExvYWQpOworICAgICAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICB9CiB9CiAKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdEaWRDcmVhdGVKYXZhU2Ny
aXB0Q29udGV4dC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9XZWJWaWV3RGlkQ3JlYXRlSmF2YVNjcmlwdENvbnRleHQubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdEaWRDcmVhdGVKYXZhU2Ny
aXB0Q29udGV4dC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTU4LDcgKzE1OCw3IEBAIFRFU1QoV2Vi
S2l0TGVnYWN5LCBEaWRDcmVhdGVKYXZhU2NyaXB0Q28KICAgICAgICAgTlNVUkwgKmFib3V0Qmxh
bmtVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl07CiAKICAgICAgICAg
W21haW5GcmFtZSBsb2FkSFRNTFN0cmluZzpib2R5U3RyaW5nIGJhc2VVUkw6YWJvdXRCbGFua1VS
TF07Ci0gICAgICAgIFV0aWw6OnJ1bigmZGlkQ29tcGxldGVUZXN0U3VjY2Vzc2Z1bGx5KTsKKyAg
ICAgICAgcnVuVW50aWwoZGlkQ29tcGxldGVUZXN0U3VjY2Vzc2Z1bGx5KTsKICAgICB9CiB9CiAK
QEAgLTE4MSw3ICsxODEsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgRGlkQ3JlYXRlSmF2YVNjcmlw
dENvCiAgICAgICAgIE5TVVJMICphYm91dEJsYW5rVVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJhYm91dDpibGFuayJdOwogCiAgICAgICAgIFttYWluRnJhbWUgbG9hZEhUTUxTdHJpbmc6Ym9k
eVN0cmluZyBiYXNlVVJMOmFib3V0QmxhbmtVUkxdOwotICAgICAgICBVdGlsOjpydW4oJmRpZENh
bGxXaW5kb3dDYWxsYmFjayk7CisgICAgICAgIHJ1blVudGlsKGRpZENhbGxXaW5kb3dDYWxsYmFj
ayk7CiAgICAgfQogfQogCkBAIC0yMDUsNyArMjA1LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIERp
ZENyZWF0ZUphdmFTY3JpcHRDbwogICAgICAgICBOU1VSTCAqYWJvdXRCbGFua1VSTCA9IFtOU1VS
TCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6YmxhbmsiXTsKIAogICAgICAgICBbbWFpbkZyYW1lIGxv
YWRIVE1MU3RyaW5nOmJvZHlTdHJpbmcgYmFzZVVSTDphYm91dEJsYW5rVVJMXTsKLSAgICAgICAg
VXRpbDo6cnVuKCZkaWRDb21wbGV0ZVRlc3RTdWNjZXNzZnVsbHkpOworICAgICAgICBydW5VbnRp
bChkaWRDb21wbGV0ZVRlc3RTdWNjZXNzZnVsbHkpOwogICAgIH0KIH0KIApAQCAtMjMxLDcgKzIz
MSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBEaWRDcmVhdGVKYXZhU2NyaXB0Q28KICAgICAgICAg
TlNVUkwgKmFib3V0QmxhbmtVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5r
Il07CiAKICAgICAgICAgW21haW5GcmFtZSBsb2FkSFRNTFN0cmluZzpib2R5U3RyaW5nIGJhc2VV
Ukw6YWJvdXRCbGFua1VSTF07Ci0gICAgICAgIFV0aWw6OnJ1bigmZGlkRmluZE15Q3VzdG9tUHJv
cGVydHkpOworICAgICAgICBydW5VbnRpbChkaWRGaW5kTXlDdXN0b21Qcm9wZXJ0eSk7CiAgICAg
fQogfQogCkBAIC0yNTksNyArMjU5LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIERpZENyZWF0ZUph
dmFTY3JpcHRDbwogICAgICAgICBOU1VSTCAqYWJvdXRCbGFua1VSTCA9IFtOU1VSTCBVUkxXaXRo
U3RyaW5nOkAiYWJvdXQ6YmxhbmsiXTsKIAogICAgICAgICBbbWFpbkZyYW1lIGxvYWRIVE1MU3Ry
aW5nOmJvZHlTdHJpbmcgYmFzZVVSTDphYm91dEJsYW5rVVJMXTsKLSAgICAgICAgVXRpbDo6cnVu
KCZkaWRGaW5kTXlDdXN0b21Qcm9wZXJ0eSk7CisgICAgICAgIHJ1blVudGlsKGRpZEZpbmRNeUN1
c3RvbVByb3BlcnR5KTsKICAgICB9CiB9CiAKQEAgLTI4MCwxMyArMjgwLDEzIEBAIFRFU1QoV2Vi
S2l0TGVnYWN5LCBEaWRDcmVhdGVKYXZhU2NyaXB0Q28KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl07CiAgICAgICAgIFttYWluRnJhbWUgbG9hZFJlcXVlc3Q6W05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp1cmwxXV07Ci0gICAgICAgIFV0aWw6OnJ1bigmZGlk
SW5zZXJ0TXlDdXN0b21Qcm9wZXJ0eSk7CisgICAgICAgIHJ1blVudGlsKGRpZEluc2VydE15Q3Vz
dG9tUHJvcGVydHkpOwogCiAgICAgICAgIE5TVVJMICp1cmwyID0gW1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkpTQ29udGV4dEJhY2tGb3J3YXJkQ2FjaGUyIiAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAgICAgICAgIFttYWluRnJh
bWUgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp1cmwyXV07Ci0gICAg
ICAgIFV0aWw6OnJ1bigmZGlkQ29tcGxldGVUZXN0U3VjY2Vzc2Z1bGx5KTsKKyAgICAgICAgcnVu
VW50aWwoZGlkQ29tcGxldGVUZXN0U3VjY2Vzc2Z1bGx5KTsKIAogICAgICAgICBkaWRDb21wbGV0
ZVRlc3RTdWNjZXNzZnVsbHkgPSBmYWxzZTsKICAgICAgICAgW1ttYWluRnJhbWUgamF2YVNjcmlw
dENvbnRleHRdIGV2YWx1YXRlU2NyaXB0OgpAQCAtMzI1LDcgKzMyNSw3IEBAIFRFU1QoV2ViS2l0
TGVnYWN5LCBSZXBvcnRFeGNlcHRpb25UZXN0KQogICAgICAgICBOU1VSTCAqYWJvdXRCbGFua1VS
TCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6YmxhbmsiXTsKICAgICAgICAgCiAgICAg
ICAgIFttYWluRnJhbWUgbG9hZEhUTUxTdHJpbmc6Ym9keVN0cmluZyBiYXNlVVJMOmFib3V0Qmxh
bmtVUkxdOwotICAgICAgICBVdGlsOjpydW4oJmRpZFJlcG9ydEV4Y2VwdGlvbik7CisgICAgICAg
IHJ1blVudGlsKGRpZFJlcG9ydEV4Y2VwdGlvbik7CiAgICAgfQogfQogCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdE
aWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdEaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJj
aHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ks
IERpZFJlbW92ZUZyYW1lRnJvbUhpZQogICAgIE5TVVJMICphYm91dEJsYW5rVVJMID0gW05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJdOwogCiAgICAgW21haW5GcmFtZSBsb2FkSFRN
TFN0cmluZzpib2R5V2l0aElGcmFtZVN0cmluZyBiYXNlVVJMOmFib3V0QmxhbmtVUkxdOwotICAg
IFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7
CiAgICAgCiAgICAgRVhQRUNUX0ZBTFNFKGRpZFJlbW92ZUZyYW1lKTsKICAgICBbd2ViVmlldy5n
ZXQoKSBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0RnJvbVN0cmluZzpAImRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScpKSJdOwpAQCAt
NzIsNyArNzIsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgRGlkUmVtb3ZlRnJhbWVGcm9tSGllCiAg
ICAgZGlkUmVtb3ZlRnJhbWUgPSBmYWxzZTsKIAogICAgIFttYWluRnJhbWUgbG9hZEhUTUxTdHJp
bmc6Ym9keVdpdGhJRnJhbWVTdHJpbmcgYmFzZVVSTDphYm91dEJsYW5rVVJMXTsKLSAgICBVdGls
OjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogCiAg
ICAgLy8gVGhlIGRlbGVnYXRlIG1ldGhvZCBpcyBub3QgY2FsbGVkIHdoZW4gdGhlIGZyYW1lIGlz
IHJlbW92ZWQgZHVlIHRvIG5hdmlnYXRpb24gaW4gYW4gYW5jZXN0b3IgZnJhbWUuCiAgICAgRVhQ
RUNUX0ZBTFNFKGRpZFJlbW92ZUZyYW1lKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL1dlYlZpZXdJY29uTG9hZGluZy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3SWNvbkxvYWRpbmcubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlZpZXdJY29uTG9hZGluZy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTcyLDcgKzE3Miw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBJY29u
TG9hZGluZ0RlbGVnYXRlRGUKICAgICAgICAgd2ViVmlldy5nZXQoKS5mcmFtZUxvYWREZWxlZ2F0
ZSA9IGZyYW1lTG9hZERlbGVnYXRlLmdldCgpOwogICAgICAgICBbd2ViVmlldy5nZXQoKS5tYWlu
RnJhbWUgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAImh0dHA6Ly90ZXN0c2VydmVyLzEvbWFpbiJdXV07CiAKLSAgICAgICAgVXRp
bDo6cnVuKCZtZXNzYWdlUmVjZWl2ZWQpOworICAgICAgICBydW5VbnRpbChtZXNzYWdlUmVjZWl2
ZWQpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKFtbZnJhbWVMb2FkRGVsZWdhdGUtPnJlY2VpdmVk
SWNvbi5nZXQoKSBUSUZGUmVwcmVzZW50YXRpb25dIGlzRXF1YWw6W2ltYWdlRnJvbURhdGEoZGVm
YXVsdEZhdmljb25EYXRhKCkpIFRJRkZSZXByZXNlbnRhdGlvbl1dKTsKICAgICAgICAgRVhQRUNU
X1RSVUUoW1t3ZWJWaWV3LmdldCgpLm1haW5GcmFtZUljb24gVElGRlJlcHJlc2VudGF0aW9uXSBp
c0VxdWFsOltpbWFnZUZyb21EYXRhKGRlZmF1bHRGYXZpY29uRGF0YSgpKSBUSUZGUmVwcmVzZW50
YXRpb25dXSk7CkBAIC0xODUsNyArMTg1LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIEljb25Mb2Fk
aW5nRGVsZWdhdGVEZQogICAgICAgICBjdXJyZW50TWFpbkhUTUwgPSBjdXN0b21GYXZpY29uSFRN
TDsKICAgICAgICAgW3dlYlZpZXcuZ2V0KCkubWFpbkZyYW1lIGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vdGVzdHNl
cnZlci8yL21haW4iXV1dOwogCi0gICAgICAgIFV0aWw6OnJ1bigmbWVzc2FnZVJlY2VpdmVkKTsK
KyAgICAgICAgcnVuVW50aWwobWVzc2FnZVJlY2VpdmVkKTsKIAogICAgICAgICBFWFBFQ1RfVFJV
RShbW2ZyYW1lTG9hZERlbGVnYXRlLT5yZWNlaXZlZEljb24uZ2V0KCkgVElGRlJlcHJlc2VudGF0
aW9uXSBpc0VxdWFsOltpbWFnZUZyb21EYXRhKGN1c3RvbUZhdmljb25EYXRhKCkpIFRJRkZSZXBy
ZXNlbnRhdGlvbl1dKTsKICAgICAgICAgRVhQRUNUX1RSVUUoW1t3ZWJWaWV3LmdldCgpLm1haW5G
cmFtZUljb24gVElGRlJlcHJlc2VudGF0aW9uXSBpc0VxdWFsOltpbWFnZUZyb21EYXRhKGN1c3Rv
bUZhdmljb25EYXRhKCkpIFRJRkZSZXByZXNlbnRhdGlvbl1dKTsKQEAgLTIxMyw3ICsyMTMsNyBA
QCBURVNUKFdlYktpdExlZ2FjeSwgSWNvbkxvYWRpbmdEZWxlZ2F0ZUN1CiAgICAgICAgIHdlYlZp
ZXcuZ2V0KCkuZnJhbWVMb2FkRGVsZWdhdGUgPSBmcmFtZUxvYWREZWxlZ2F0ZS5nZXQoKTsKICAg
ICAgICAgW3dlYlZpZXcuZ2V0KCkubWFpbkZyYW1lIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vdGVzdHNlcnZlci8x
L21haW4iXV1dOwogCi0gICAgICAgIFV0aWw6OnJ1bigmbWVzc2FnZVJlY2VpdmVkKTsKKyAgICAg
ICAgcnVuVW50aWwobWVzc2FnZVJlY2VpdmVkKTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShbW2Zy
YW1lTG9hZERlbGVnYXRlLT5yZWNlaXZlZEljb24uZ2V0KCkgVElGRlJlcHJlc2VudGF0aW9uXSBp
c0VxdWFsOltpbWFnZUZyb21EYXRhKGN1c3RvbUZhdmljb25EYXRhKCkpIFRJRkZSZXByZXNlbnRh
dGlvbl1dKTsKICAgICAgICAgRVhQRUNUX1RSVUUoW1t3ZWJWaWV3LmdldCgpLm1haW5GcmFtZUlj
b24gVElGRlJlcHJlc2VudGF0aW9uXSBpc0VxdWFsOltpbWFnZUZyb21EYXRhKGN1c3RvbUZhdmlj
b25EYXRhKCkpIFRJRkZSZXByZXNlbnRhdGlvbl1dKTsKQEAgLTIyNiw3ICsyMjYsNyBAQCBURVNU
KFdlYktpdExlZ2FjeSwgSWNvbkxvYWRpbmdEZWxlZ2F0ZUN1CiAgICAgICAgIGN1cnJlbnRNYWlu
SFRNTCA9IGRlZmF1bHRGYXZpY29uSFRNTDsKICAgICAgICAgW3dlYlZpZXcuZ2V0KCkubWFpbkZy
YW1lIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJodHRwOi8vdGVzdHNlcnZlci8yL21haW4iXV1dOwogCi0gICAgICAgIFV0aWw6
OnJ1bigmbWVzc2FnZVJlY2VpdmVkKTsKKyAgICAgICAgcnVuVW50aWwobWVzc2FnZVJlY2VpdmVk
KTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShbW2ZyYW1lTG9hZERlbGVnYXRlLT5yZWNlaXZlZElj
b24uZ2V0KCkgVElGRlJlcHJlc2VudGF0aW9uXSBpc0VxdWFsOltpbWFnZUZyb21EYXRhKGRlZmF1
bHRGYXZpY29uRGF0YSgpKSBUSUZGUmVwcmVzZW50YXRpb25dXSk7CiAgICAgICAgIEVYUEVDVF9U
UlVFKFtbd2ViVmlldy5nZXQoKS5tYWluRnJhbWVJY29uIFRJRkZSZXByZXNlbnRhdGlvbl0gaXNF
cXVhbDpbaW1hZ2VGcm9tRGF0YShkZWZhdWx0RmF2aWNvbkRhdGEoKSkgVElGRlJlcHJlc2VudGF0
aW9uXV0pOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW0JKHJl
dmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3
OSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBXaWxsUGVyZm9ybUNsaWVudFJlZGkKICAgICAgICAg
W3dlYlZpZXcgc2V0RnJhbWVMb2FkRGVsZWdhdGU6IFtXZWJLaXQxVGVzdERlbGVnYXRlIHNoYXJl
ZF1dOwogICAgICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOltXZWJLaXQxVGVzdERlbGVnYXRl
IHNoYXJlZF1dOwogICAgICAgICBbW3dlYlZpZXcgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwoKV1dOwotICAgICAgICBVdGlsOjpydW4o
JnRlc3RGaW5pc2hlZCk7CisgICAgICAgIHJ1blVudGlsKHRlc3RGaW5pc2hlZCk7CiAgICAgfQog
fQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsU2VuZFN1Ym1pdEV2
ZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxT
ZW5kU3VibWl0RXZlbnQubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dpbGxTZW5kU3VibWl0RXZlbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTY3
LDcgKzY3LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFdpbGxTZW5kU3VibWl0RXZlbnQpCiAKICAg
ICAgICAgW1t3ZWJWaWV3LmdldCgpIG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
YXV0by1zdWJtaXR0aW5nLWZvcm0iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6
QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CiAKLSAgICAgICAgVXRpbDo6cnVuKCZkaWRG
aW5pc2hMb2FkKTsKKyAgICAgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgfQogfQog
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaW5kb3dsZXNzV2ViVmlld1dp
dGhNZWRpYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9X
aW5kb3dsZXNzV2ViVmlld1dpdGhNZWRpYS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2luZG93bGVzc1dlYlZpZXdXaXRoTWVkaWEubW0JKHdv
cmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFdpbmRvd2xl
c3NXZWJWaWV3V2l0aAogCiAgICAgRVhQRUNUX0VRKG5pbCwgW3dlYlZpZXcuZ2V0KCkgd2luZG93
XSk7CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOyAgICAKKyAgICBydW5VbnRpbChk
aWRGaW5pc2hMb2FkKTsgICAgCiAKICAgICBzcGluTG9vcCgwLjI1LCBeewogICAgICAgICByZXR1
cm4gW1t3ZWJWaWV3LmdldCgpIHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHRGcm9tU3RyaW5n
OkAid2luZG93LmRpZFRyaWdnZXJMb2FkIl0gaXNFcXVhbFRvU3RyaW5nOkAidHJ1ZSJdOwpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxl
Z2F0ZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9U
ZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBA
IC0gKHZvaWQpd2FpdEZvckRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2EKICAgICAgICAgZmluaXNo
ZWQgPSB0cnVlOwogICAgIH07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlz
aGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZCk7CiAKICAgICBzZWxm
LmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uID0gbmlsOwogfQpAQCAtOTgsNyArOTgsNyBA
QCAtICh2b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uCiAgICAgICAgIGZpbmlzaGVkID0g
dHJ1ZTsKICAgICB9OwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWQpOwogCiAgICAgc2VsZi5kaWRG
aW5pc2hOYXZpZ2F0aW9uID0gbmlsOwogfQpAQCAtMTMzLDcgKzEzMyw3IEBAIC0gKHZvaWQpX3Rl
c3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb24KICAgICBbc2VsZiBfZG9BZnRlck5leHRQcmVz
ZW50YXRpb25VcGRhdGVXaXRob3V0V2FpdGluZ0ZvckFuaW1hdGVkUmVzaXplRm9yVGVzdGluZzpe
ewogICAgICAgICBwcmVzZW50YXRpb25VcGRhdGVIYXBwZW5lZCA9IHRydWU7CiAgICAgfV07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwcmVzZW50YXRpb25VcGRhdGVIYXBwZW5lZCk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocHJlc2VudGF0aW9uVXBkYXRlSGFwcGVuZWQp
OwogI2VuZGlmCiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2Vi
Vmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dl
YlZpZXcubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2Ev
VGVzdFdLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtOTUsNyArOTUsNyBAQCAtIChCT09M
KV9zeW5jaHJvbm91c2x5RXhlY3V0ZUVkaXRDb21tYW5kCiAgICAgICAgIGRvbmUgPSB0cnVlOwog
ICAgICAgICBzdWNjZXNzID0gY29tcGxldGlvblN1Y2Nlc3M7CiAgICAgfV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKICAgICByZXR1cm4gc3VjY2VzczsKIH0KIApAQCAtMTQxLDcgKzE0MSw3IEBAIC0gKGlk
KW9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6KE5TU3QKICAgICAgICAgaWYgKGVycm9yKQog
ICAgICAgICAgICAgTlNMb2coQCJFbmNvdW50ZXJlZCBlcnJvcjogJUAgd2hpbGUgZXZhbHVhdGlu
ZyBzY3JpcHQ6ICVAIiwgZXJyb3IsIHNjcmlwdCk7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc1dhaXRpbmdGb3JKYXZhU2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChpc1dhaXRpbmdGb3JKYXZhU2NyaXB0KTsKICAgICByZXR1cm4gZXZhbFJlc3Vs
dC5hdXRvcmVsZWFzZSgpOwogfQogCkBAIC0xNTYsNyArMTU2LDcgQEAgLSAoaWQpb2JqZWN0QnlF
dmFsdWF0aW5nSmF2YVNjcmlwdFdpdGhVcwogICAgICAgICBpZiAoZXJyb3IpCiAgICAgICAgICAg
ICBOU0xvZyhAIkVuY291bnRlcmVkIGVycm9yOiAlQCB3aGlsZSBldmFsdWF0aW5nIHNjcmlwdDog
JUAiLCBlcnJvciwgc2NyaXB0KTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmlzV2FpdGluZ0ZvckphdmFTY3JpcHQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGlzV2FpdGluZ0ZvckphdmFTY3JpcHQpOwogICAgIHJldHVybiBldmFsUmVzdWx0LmF1dG9yZWxl
YXNlKCk7CiB9CiAKQEAgLTM4Miw3ICszODIsNyBAQCAtICh2b2lkKXdhaXRGb3JNZXNzYWdlOihO
U1N0cmluZyAqKW1lc3NhCiAgICAgewogICAgICAgICBpc0RvbmVXYWl0aW5nID0gdHJ1ZTsKICAg
ICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZVdhaXRpbmcpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZVdhaXRpbmcpOwogfQogCiAtICh2b2lkKXBl
cmZvcm1BZnRlckxvYWRpbmc6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9ucyB7CkBAIC00MDQsNyAr
NDA0LDcgQEAgLSAodm9pZCl3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZQogICAgICAgICBk
b25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKIC0gKE5TU3RyaW5n
ICopc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6KE5TU3RyaW5nICopcHJvcGVydHlOYW1l
CkBAIC00ODUsNyArNDg1LDcgQEAgLSAoUmV0YWluUHRyPE5TQXJyYXk+KXNlbGVjdGlvblJlY3Rz
QWZ0ZQogICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9u
ZSk7CiAgICAgcmV0dXJuIHNlbGVjdGlvblJlY3RzOwogfQogCkBAIC01MTQsNyArNTE0LDcgQEAg
LSAoX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKilhY3RpdmF0ZWRFbAogICAgICAgICBmaW5pc2hl
ZCA9IHRydWU7CiAgICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlz
aGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZCk7CiAgICAgcmV0dXJu
IGluZm8uYXV0b3JlbGVhc2UoKTsKIH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9VdGlsaXRpZXNDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL1V0aWxpdGllc0NvY29hLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL2NvY29hL1V0aWxpdGllc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsy
OSw5IEBACiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBuYW1lc3BhY2UgVXRpbCB7CiAKLXZv
aWQgcnVuKGJvb2wqIGRvbmUpCit2b2lkIHJ1blVudGlsKGNvbnN0IGJvb2wmIGRvbmUpCiB7Ci0g
ICAgd2hpbGUgKCEqZG9uZSkKKyAgICB3aGlsZSAoIWRvbmUpCiAgICAgICAgIFtbTlNSdW5Mb29w
IGN1cnJlbnRSdW5Mb29wXSBydW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGJlZm9yZURhdGU6
W05TRGF0ZSBkaXN0YW50UGFzdF1dOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL2dl
bmVyaWMvVXRpbGl0aWVzR2VuZXJpYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9nZW5lcmljL1V0aWxpdGllc0dlbmVyaWMuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL2dlbmVyaWMvVXRpbGl0aWVzR2VuZXJpYy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDkgKzMxLDkgQEAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIG5hbWVz
cGFjZSBVdGlsIHsKIAotdm9pZCBydW4oYm9vbCogZG9uZSkKK3ZvaWQgcnVuKGNvbnN0IGJvb2wm
IGRvbmUpCiB7Ci0gICAgd2hpbGUgKCEqZG9uZSkKKyAgICB3aGlsZSAoIWRvbmUpCiAgICAgICAg
IFdURjo6UnVuTG9vcDo6aXRlcmF0ZSgpOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L2lvcy9EcmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL2lvcy9EcmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbQkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvRHJhZ0FuZERyb3BTaW11bGF0b3JJT1MubW0J
KHdvcmtpbmcgY29weSkKQEAgLTQ1Myw3ICs0NTMsNyBAQCAtICh2b2lkKXJ1bkZyb206KENHUG9p
bnQpc3RhcnRMb2NhdGlvbiB0CiAgICAgICAgIH1dOwogICAgIH0KIAotICAgIFV0aWw6OnJ1bigm
X2lzRG9uZVdpdGhDdXJyZW50UnVuKTsKKyAgICBydW5VbnRpbChfaXNEb25lV2l0aEN1cnJlbnRS
dW4pOwogICAgIFtfd2ViVmlldyBjbGVhck1lc3NhZ2VIYW5kbGVyczpkcmFnQW5kRHJvcEV2ZW50
TmFtZXMoKV07CiAgICAgX2ZpbmFsU2VsZWN0aW9uUmVjdHMgPSBbX3dlYlZpZXcgc2VsZWN0aW9u
UmVjdHNBZnRlclByZXNlbnRhdGlvblVwZGF0ZV07CiAKQEAgLTY1MSw3ICs2NTEsNyBAQCAtIChD
R1JlY3QpbGFzdEtub3duRHJhZ0NhcmV0UmVjdAogCiAtICh2b2lkKWVuc3VyZUlucHV0U2Vzc2lv
bgogewotICAgIFV0aWw6OnJ1bigmX2hhc1N0YXJ0ZWRJbnB1dFNlc3Npb24pOworICAgIHJ1blVu
dGlsKF9oYXNTdGFydGVkSW5wdXRTZXNzaW9uKTsKIH0KIAogLSAoTlNBcnJheTxfV0tBdHRhY2ht
ZW50ICo+ICopaW5zZXJ0ZWRBdHRhY2htZW50cwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9t
YWMvRHJhZ0FuZERyb3BTaW11bGF0b3JNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9tYWMvRHJhZ0FuZERyb3BTaW11bGF0b3JNYWMubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL0RyYWdBbmREcm9wU2ltdWxhdG9yTWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3IEBAIC0gKHZvaWQpd2FpdEZvclBlbmRpbmdNb3Vz
ZUV2ZW50cwogICAgIFtzZWxmIF9kb0FmdGVyUHJvY2Vzc2luZ0FsbFBlbmRpbmdNb3VzZUV2ZW50
czpeewogICAgICAgICBkb25lUHJvY2Vzc01vdXNlRXZlbnRzID0gdHJ1ZTsKICAgICB9XTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVQcm9jZXNzTW91c2VFdmVudHMpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVQcm9jZXNzTW91c2VFdmVudHMpOwogfQogCiBA
ZW5kCkBAIC0xNzIsNyArMTcyLDcgQEAgLSAodm9pZClydW5Gcm9tOihDR1BvaW50KWZsaXBwZWRT
dGFydExvYwogICAgICAgICBOU1BvaW50IHN0YXJ0TG9jYXRpb25JblZpZXcgPSBbX3dlYlZpZXcg
Y29udmVydFBvaW50Ol9zdGFydExvY2F0aW9uSW5XaW5kb3cgZnJvbVZpZXc6bmlsXTsKICAgICAg
ICAgTlNJbWFnZSAqZHJhZ0ltYWdlID0gc2VsZi5leHRlcm5hbERyYWdJbWFnZSA/OiBkZWZhdWx0
RXh0ZXJuYWxEcmFnSW1hZ2UoKTsKICAgICAgICAgW3NlbGYgcGVyZm9ybURyYWdJbldlYlZpZXc6
X3dlYlZpZXcuZ2V0KCkgYXRMb2NhdGlvbjpzdGFydExvY2F0aW9uSW5WaWV3IHdpdGhJbWFnZTpk
cmFnSW1hZ2UgcGFzdGVib2FyZDpwYXN0ZWJvYXJkIHNvdXJjZTpuaWxdOwotICAgICAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJl9kb25lV2FpdGluZ0ZvckRyb3ApOworICAgICAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChfZG9uZVdhaXRpbmdGb3JEcm9wKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTg4LDEyICsxODgsMTIgQEAgLSAodm9pZClydW5Gcm9tOihDR1BvaW50
KWZsaXBwZWRTdGFydExvYwogICAgIFtfd2ViVmlldyBtb3VzZURyYWdUb1BvaW50OltzZWxmIGxv
Y2F0aW9uSW5WaWV3Rm9yQ3VycmVudFByb2dyZXNzXV07CiAgICAgW193ZWJWaWV3IHdhaXRGb3JQ
ZW5kaW5nTW91c2VFdmVudHNdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZfZG9u
ZVdhaXRpbmdGb3JEcmFnZ2luZ1Nlc3Npb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KF9kb25lV2FpdGluZ0ZvckRyYWdnaW5nU2Vzc2lvbik7CiAKICAgICBbX3dlYlZpZXcgbW91c2VV
cEF0UG9pbnQ6X2VuZExvY2F0aW9uSW5XaW5kb3ddOwogICAgIFtfd2ViVmlldyB3YWl0Rm9yUGVu
ZGluZ01vdXNlRXZlbnRzXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmX2RvbmVX
YWl0aW5nRm9yRHJvcCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoX2RvbmVXYWl0aW5n
Rm9yRHJvcCk7CiB9CiAKIC0gKHZvaWQpYmVnaW5EcmFnZ2luZ1Nlc3Npb25JbldlYlZpZXc6KERy
YWdBbmREcm9wVGVzdFdLV2ViVmlldyAqKXdlYlZpZXcgd2l0aEl0ZW1zOihOU0FycmF5PE5TRHJh
Z2dpbmdJdGVtICo+ICopaXRlbXMgc291cmNlOihpZDxOU0RyYWdnaW5nU291cmNlPilzb3VyY2UK
QEAgLTQ0Myw3ICs0NDMsNyBAQCAtIChOU0FycmF5PE5TVVJMICo+ICopcmVjZWl2ZVByb21pc2Vk
RmlsCiAgICAgICAgIFtwcm92aWRlci5kZWxlZ2F0ZSBmaWxlUHJvbWlzZVByb3ZpZGVyOnByb3Zp
ZGVyIHdyaXRlUHJvbWlzZVRvVVJMOmRlc3RpbmF0aW9uVVJMIGNvbXBsZXRpb25IYW5kbGVyOl4o
TlNFcnJvciAqKSB7CiAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKICAgICAgICAgfV07Ci0gICAg
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogICAgICAgICBbZGVzdGluYXRpb25VUkxzIGFkZE9iamVjdDpk
ZXN0aW5hdGlvblVSTF07CiAgICAgICAgIFtfZmlsZVByb21pc2VEZXN0aW5hdGlvblVSTHMgYWRk
T2JqZWN0OmRlc3RpbmF0aW9uVVJMXTsKICAgICB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L21hYy9XZWJLaXRBZ25vc3RpY1Rlc3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9tYWMvV2ViS2l0QWdub3N0aWNUZXN0Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL21hYy9XZWJLaXRBZ25vc3RpY1Rlc3QubW0JKHdvcmtpbmcgY29weSkK
QEAgLTE0Miw3ICsxNDIsNyBAQCB2b2lkIFdlYktpdEFnbm9zdGljVGVzdDo6Z29CYWNrKFdLVmll
dyAqCiAKIHZvaWQgV2ViS2l0QWdub3N0aWNUZXN0Ojp3YWl0Rm9yTG9hZFRvRmluaXNoKCkKIHsK
LSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExv
YWQpOwogICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKIH0KIApAQCAtMTUzLDcgKzE1Myw3IEBA
IHZvaWQgV2ViS2l0QWdub3N0aWNUZXN0Ojp3YWl0Rm9yTmV4dFByZXMKICAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeKCkgewogICAgICAgICBkb25lID0gdHJ1
ZTsKICAgICB9KTsKLSAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGlsKGRvbmUpOwog
fQogCiB2b2lkIFdlYktpdEFnbm9zdGljVGVzdDo6d2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRh
dGUoV0tWaWV3ICp2aWV3KQpAQCAtMTYyLDcgKzE2Miw3IEBAIHZvaWQgV2ViS2l0QWdub3N0aWNU
ZXN0Ojp3YWl0Rm9yTmV4dFByZXMKICAgICBbdmlldyBfZG9BZnRlck5leHRQcmVzZW50YXRpb25V
cGRhdGU6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVXRpbDo6cnVu
KCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVXRpbGl0aWVzV2luLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL3dpbi9VdGlsaXRpZXNXaW4uY3BwCShy
ZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL3dpbi9VdGlsaXRpZXNXaW4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw5ICszMSw5IEBACiBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSSB7CiBuYW1lc3BhY2UgVXRpbCB7CiAKLXZvaWQgcnVuKGJvb2wqIGRvbmUpCit2b2lkIHJ1
bihjb25zdCBib29sJiBkb25lKQogewotICAgIHdoaWxlICghKmRvbmUpIHsKKyAgICB3aGlsZSAo
IWRvbmUpIHsKICAgICAgICAgTVNHIG1lc3NhZ2U7CiAgICAgICAgIEJPT0wgcmVzdWx0ID0gR2V0
TWVzc2FnZSgmbWVzc2FnZSwgMCwgMCwgMCk7CiAgICAgICAgIGlmICghcmVzdWx0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370261</attachid>
            <date>2019-05-20 10:33:43 -0700</date>
            <delta_ts>2019-07-18 16:33:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198044-20190520103342.patch</filename>
            <type>text/plain</type>
            <size>662633</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI0NTUxNykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDc0NyBAQAorMjAxOS0wNS0yMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgorCisgICAgICAgIFJlcGxhY2UgVXRpbDo6cnVuIHdpdGggcnVuVW50aWwgdGhh
dCB0YWtlcyBhIGJvb2wgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTgwNDQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIG1ha2VzIHRoZSBzeW50
YXggbmljZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0VkaXRpbmdUZXN0SGFybmVzcy5t
bToKKyAgICAgICAgKC1bRWRpdGluZ1Rlc3RIYXJuZXNzIF9leGVjQ29tbWFuZDphcmd1bWVudDpl
eHBlY3RFbnRyaWVzOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvSmF2YVNjcmlwdFRlc3Qu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6cnVuSlNUZXN0KToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL0N1c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0Lm1tOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
UmVmUHRyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1J1bkxvb3AuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Fib3J0YWJs
ZVRhc2tRdWV1ZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvTGluZUJyZWFraW5nLm1tOgorICAgICAgICAodGVzdEFGZXdTdHJpbmdzKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lv
bi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYkNvcmVOU1VSTFNlc3Npb25UZXN0OjpT
ZXRVcCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Fib3V0QmxhbmtMb2FkLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Nh
bkhhbmRsZVJlcXVlc3QuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFn
ZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZVRoZW5UZXJtaW5hdGUuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
Q29va2llTWFuYWdlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0RlZmVycmVkVmlld0luV2luZG93U3RhdGVDaGFuZ2UubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRB
c3NvY2lhdGVGb3JtQ29udHJvbHMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGlkTm90SGFuZGxlS2V5RG93
bi5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hl
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHA6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9Eb3dubG9hZERlY2lkZURlc3RpbmF0aW9uQ3Jhc2guY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRW51bWVyYXRlTWVkaWFEZXZpY2VzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VwaGVtZXJhbFNl
c3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FdmFsdWF0
ZUphdmFTY3JpcHQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRXZlbnRNb2RpZmllcnMuY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRmFpbGVkTG9hZC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9GaW5kLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0ZpbmRNYXRjaGVzLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmlyc3RNZWFuaW5nZnVsUGFpbnRNaWxlc3Rv
bmUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lV2l0aERl
ZmVycmVkU2NyaXB0Lm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvRm9yY2VSZXBhaW50LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZyYW1lSGFuZGxl
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0ZyYW1lTUlNRVR5cGVIVE1MLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Zy
YW1lTUlNRVR5cGVQTkcuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2VvbG9jYXRpb24uY3BwOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2suY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dl
dFVzZXJNZWRpYVJlcHJvbXB0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSGl0VGVzdFJlc3VsdE5vZGVIYW5k
bGUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVCYXNpYy5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVGcmFtZUhpdFRlc3QuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5q
ZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zLmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9MYXlvdXRNaWxlc3RvbmVzV2l0aEFsbENvbnRlbnRJbkZyYW1lLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0xvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpsb2FkQWx0ZXJuYXRlSFRNTFN0cmluZyk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENh
bGxiYWNrLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0xvYWRQYWdlT25DcmFzaC5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZW51VHlwZXNGb3JN
b3VzZUV2ZW50cy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpidWlsZEFuZFBlcmZvcm1U
ZXN0KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Nb2RhbEFsZXJ0c1NQ
SS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9Nb3VzZU1vdmVBZnRlckNyYXNoLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L05hdmlnYXRpb25DbGllbnREZWZhdWx0Q3J5cHRvLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzQ3Jhc2hXaXRoUGVuZGluZ0Nvbm5lY3Rpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9OZXdGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTmV3Rmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0RmFpbHMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTmV3Rmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0Rm9ySW1hZ2VzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L05ld0ZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZyYW1lcy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Ob0hpc3RvcnlJdGVtU2Nyb2xs
VG9GcmFnbWVudC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VMb2FkQmFzaWMuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvUGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZS5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9QYXJlbnRGcmFtZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYXN0ZWJvYXJkTm90aWZpY2F0
aW9ucy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BlbmRpbmdBUElSZXF1ZXN0VVJMLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1ByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcml2YXRlQnJvd3Np
bmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Qcm9jZXNzRGlk
VGVybWluYXRlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1JlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1Jlc2l6ZVJldmVyc2VQYWdpbmF0ZWRXZWJWaWV3LmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L1Jlc2l6ZVdpbmRvd0FmdGVyQ3Jhc2guY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzcG9uc2l2ZW5lc3NU
aW1lckNyYXNoLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzdG9yZVNlc3Npb25TdGF0ZS5jcHA6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpjcmVhdGVTZXNzaW9uU3RhdGVEYXRhKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L1Jlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGEuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6Y3JlYXRlU2Vzc2lvblN0YXRlRGF0YUNvbnRhaW5pbmdGb3JtRGF0YSk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9TY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Nob3Vs
ZEtlZXBDdXJyZW50QmFja0ZvcndhcmRMaXN0SXRlbUluTGlzdC5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9T
cGFjZWJhclNjcm9sbGluZy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TdG9wTG9hZGluZ0R1cmluZ0RpZEZh
aWxQcm92aXNpb25hbExvYWQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVGVybWluYXRlVHdpY2UuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OldlYktpdDJUZXh0RmllbGRCZWdpbkFuZEVkaXRFZGl0aW5nVGVzdDo6
ZXhlY3V0ZUphdmFTY3JpcHRBbmRDaGVja0RpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVXNl
ck1lc3NhZ2UuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViS2l0MlVzZXJNZXNzYWdl
Um91bmRUcmlwVGVzdDo6U2V0VXApOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViS2l0MlVz
ZXJNZXNzYWdlUm91bmRUcmlwVGVzdDo6cm91bmRUcmlwKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9WaWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tOgorICAgICAg
ICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tCYWNrRm9y
d2FyZExpc3QubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNv
cHlTZXNzaW9uU3RhdGVXaXRoRmlsdGVyaW5nLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OmNyZWF0ZVNlc3Npb25TdGF0ZXMpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlR2V0U2NhbGVGYWN0b3JO
b3RaZXJvLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNyZWF0ZVNlc3Npb25TdGF0ZSk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9XS1BhZ2VJc1BsYXlpbmdBdWRpby5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1Ro
dW1ibmFpbFZpZXcubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XZWJBcmNoaXZlLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L1dlYkNvcmVTdGF0aXN0aWNzV2l0aE5vV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XaWxs
TG9hZC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJLaXQyV2lsbExvYWRUZXN0Ojp0
ZXN0V2lsbExvYWRVUkxSZXF1ZXN0UmV0dXJuVmFsdWVzKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OldlYktpdDJXaWxsTG9hZFRlc3Q6OnRlc3RXaWxsTG9hZERhdGFSZXF1ZXN0UmV0dXJuVmFs
dWVzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XaWxsU2VuZFN1Ym1p
dEV2ZW50LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9z
ZWRSYW5nZVdpdGhJbWFnZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudURvd25sb2Fk
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvbWFjL0NvbnRleHRNZW51SW1nV2l0aFZpZGVvLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvbWFjL0N1c3RvbUJ1bmRsZVBhcmFtZXRlci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9FZGl0
b3JDb21tYW5kcy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Gb3JjZUxpZ2h0QXBwZWFyYW5jZUluQnVu
ZGxlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0dldEJhY2tpbmdTY2FsZUZhY3Rvci5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L21hYy9HZXRQSURBZnRlckFib3J0ZWRQcm9jZXNzTGF1bmNoLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L21hYy9JbmplY3RlZEJ1bmRsZUFwcGxlRXZlbnQuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL1Jl
c3RvcmVTdGF0ZUFmdGVyVGVybWluYXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FWRm91bmRh
dGlvblByZWZlcmVuY2UubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpBVkZvdW5kYXRpb25Q
cmVmOjp0ZXN0V2l0aFByZWZlcmVuY2UpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvQWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2VkVVJMcy5tbToKKyAgICAgICAg
KFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW06CisgICAgICAgIChydW5UZXN0KToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FuaW1hdGVkUmVzaXplLm1tOgorICAg
ICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9B
cHBsZVBheS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXBwbGljYXRpb25NYW5pZmVzdC5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvQXN5bmNQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2UubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0F0dHJTdHlsZS5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXV0b0xheW91dEludGVncmF0aW9uLm1tOgor
ICAgICAgICAoLVtBdXRvTGF5b3V0V0tXZWJWaWV3IHdhaXRGb3JDb250ZW50U2l6ZUNoYW5nZVJl
c2V0dGluZ1dpZHRoOl0pOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVFZGl0aW5nRGVsZWdhdGUubW06CisgICAgICAgIChU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZVBh
cmFtZXRlcnMubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0J1bmRsZVJhbmdlSGFuZGxlLm1tOgorICAgICAgICAoVEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2xvc2VXZWJWaWV3QWZ0ZXJFbnRlckZ1
bGxzY3JlZW4ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Nsb3NlV2ViVmlld0R1cmluZ0VudGVyRnVs
bHNjcmVlbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29tbWFuZEJhY2tGb3J3YXJkLm1tOgorICAg
ICAgICAoV2ViS2l0Ml9Db21tYW5kQmFja0ZvcndhcmRUZXN0V0tWaWV3Ojpsb2FkRmlsZXMpOgor
ICAgICAgICAoVEVTVF9GKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0NvbnRlbnRGaWx0ZXJpbmcubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKGRvd25s
b2FkVGVzdCk6CisgICAgICAgIChsb2FkQWx0ZXJuYXRlVGVzdCk6CisgICAgICAgICgtW0xhemls
eUxvYWRQbGF0Zm9ybUZyYW1ld29ya3NDb250cm9sbGVyIGV4cGVjdFBhcmVudGFsQ29udHJvbHNM
b2FkZWQ6bmV0d29ya0V4dGVuc2lvbkxvYWRlZDpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0NvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbi5tbToKKyAgICAg
ICAgKG1ha2VDb250ZW50UnVsZUxpc3QpOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db29raWVBY2NlcHRQb2xpY3kubW06CisgICAg
ICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Nv
b2tpZVByaXZhdGVCcm93c2luZy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ3VzdG9tVXNlckFnZW50Lm1tOgorICAgICAgICAo
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EYXRhRGV0
ZWN0aW9uLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgc3luY2hyb25vdXNseURldGVjdERhdGFX
aXRoVHlwZXM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzeW5jaHJvbm91c2x5UmVtb3ZlRGF0
YURldGVjdGVkTGlua3NdKToKKyAgICAgICAgKGV4cGVjdExpbmtDb3VudCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgIChydW5EZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uRm9ySHlwZXJsaW5rVGhhdFJlZGlyZWN0cyk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EZXZpY2VPcmllbnRhdGlvbi5tbToKKyAgICAg
ICAgKHJ1bkRldmljZU9yaWVudGF0aW9uVGVzdCk6CisgICAgICAgIChURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9u
VXBkYXRlQWZ0ZXJDcmFzaC5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbToKKyAgICAg
ICAgKC1bVGVzdFdLV2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDpd
KToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBzeW5jaHJvbm91c2x5QWRqdXN0U2VsZWN0aW9u
V2l0aERlbHRhOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1
ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Eb3VibGVEZWZlcnNMb2FkaW5nLm1tOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW06CisgICAgICAgIChydW5UZXN0
KToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAoLVtDYW5jZWxEb3dubG9hZFdoaWxlRGVjaWRp
bmdEZXN0aW5hdGlvbkRlbGVnYXRlIF9kb3dubG9hZDpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdn
ZXN0ZWRGaWxlbmFtZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bRG93bmxvYWRB
dHRyaWJ1dGVUZXN0RGVsZWdhdGUgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dKToKKyAgICAg
ICAgKC1bRG93bmxvYWRBdHRyaWJ1dGVUZXN0RGVsZWdhdGUgd2FpdEZvckRvd25sb2FkRGlkU3Rh
cnRdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmRvd25sb2FkQXRSYXRlKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkUHJvZ3Jlc3MubW06Cisg
ICAgICAgICgtW0Rvd25sb2FkUHJvZ3Jlc3NUZXN0UnVubmVyIHN1YnNjcmliZUFuZFdhaXRGb3JQ
cm9ncmVzc10pOgorICAgICAgICAoLVtEb3dubG9hZFByb2dyZXNzVGVzdFJ1bm5lciB3YWl0VG9M
b3NlUHJvZ3Jlc3NdKToKKyAgICAgICAgKC1bRG93bmxvYWRQcm9ncmVzc1Rlc3RSdW5uZXIgc3Rh
cnREb3dubG9hZDpleHBlY3RlZExlbmd0aDpdKToKKyAgICAgICAgKC1bRG93bmxvYWRQcm9ncmVz
c1Rlc3RSdW5uZXIgd2FpdEZvckRvd25sb2FkRGlkQ3JlYXRlRGVzdGluYXRpb25dKToKKyAgICAg
ICAgKC1bRG93bmxvYWRQcm9ncmVzc1Rlc3RSdW5uZXIgd2FpdEZvckRvd25sb2FkRmluaXNoZWRd
KToKKyAgICAgICAgKC1bRG93bmxvYWRQcm9ncmVzc1Rlc3RSdW5uZXIgd2FpdEZvckRvd25sb2Fk
Q2FuY2VsZWRdKToKKyAgICAgICAgKC1bRG93bmxvYWRQcm9ncmVzc1Rlc3RSdW5uZXIgd2FpdEZv
ckRvd25sb2FkRmFpbGVkXSk6CisgICAgICAgICgtW0Rvd25sb2FkUHJvZ3Jlc3NUZXN0UnVubmVy
IHdhaXRGb3JVcGRhdGVkQ29tcGxldGVkVW5pdENvdW50XSk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EcmFnQW5kRHJvcFRlc3RzLm1tOgorICAgICAgICAoVEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EdXBsaWNhdGVD
b21wbGV0aW9uSGFuZGxlckNhbGxzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FeGl0RnVsbHNjcmVlbk9uRW50ZXJQaVAubW06
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW06CisgICAgICAgIChmaW5kTWF0Y2hlcyk6
CisgICAgICAgIChyZXBsYWNlTWF0Y2hlcyk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpeGVkTGF5b3V0U2l6ZS5tbToKKyAgICAg
ICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRnVs
bHNjcmVlbkRlbGVnYXRlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GdWxsc2NyZWVuTGF5b3V0Q29u
c3RyYWludHMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQu
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0dlb2xvY2F0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9H
ZXREaXNwbGF5TWVkaWEubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpHZXREaXNwbGF5TWVk
aWFUZXN0Ojpwcm9tcHRGb3JDYXB0dXJlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0dldFJlc291cmNlRGF0YS5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSURCRGVsZXRlUmVjb3ZlcnkubW06
CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0lEQkluZGV4VXBncmFkZVRvVjIubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ljb25Mb2FkaW5nRGVsZWdhdGUubW06Cisg
ICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0luZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW06CisgICAgICAgIChURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQkZpbGVOYW1lLm1t
OgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQk11bHRpUHJvY2Vzcy5tbToKKyAgICAg
ICAgKGdldE5leHRNZXNzYWdlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNlLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xv
bmVCYWNrd2FyZENvbXBhdGliaWxpdHkubW06CisgICAgICAgIChnZXROZXh0TWVzc2FnZSk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5k
SW1taW5lbnRseS5tbToKKyAgICAgICAgKHJ1blRlc3RBbmRDaGVja1Jlc3VsdCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJUZW1wRmlsZVNpemUu
bW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0luZGV4ZWREQlVzZXJEZWxldGUubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0pJVEVuYWJsZWQubW06CisgICAgICAg
IChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0phdmFT
Y3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkQWx0ZXJuYXRlSFRNTFN0cmluZy5tbToK
KyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvTG9hZEZpbGVUaGVuUmVsb2FkLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkSW52YWxpZFVSTFJlcXVlc3QubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZUNsZWFyLm1tOgorICAgICAgICAoVEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VEYXRh
YmFzZVRyYWNrZXIubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZU51bGxFbnRyaWVzLm1tOgorICAgICAgICAo
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0
b3JhZ2VQZXJzaXN0ZW5jZS5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUXVpcmtUZXN0Lm1tOgorICAgICAg
ICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9NZWRp
YUJ1ZmZlcmluZ1BvbGljeS5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTWVzc2FnZVBvcnRQcm92aWRlcnMubW06CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL01vZGFsQWxlcnRzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tOgorICAgICAgICAoVEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9u
QWN0aW9uLm1tOgorICAgICAgICAoLVtOYXZpZ2F0aW9uQWN0aW9uVGVzdERlbGVnYXRlIHdhaXRG
b3JOYXZpZ2F0aW9uQWN0aW9uQ2FsbGJhY2tdKToKKyAgICAgICAgKC1bTmF2aWdhdGlvbkFjdGlv
blRlc3REZWxlZ2F0ZSB3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl0pOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmV0d29ya1Byb2Nlc3NDcmFzaE5vblBlcnNp
c3RlbnREYXRhU3RvcmUubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL05vd1BsYXlpbmcubW06CisgICAgICAgIChnZXROb3dQbGF5
aW5nQ2xpZW50KToKKyAgICAgICAgKE5vd1BsYXlpbmdUZXN0OjpydW5TY3JpcHRXaXRoVXNlckdl
c3R1cmUpOgorICAgICAgICAoTm93UGxheWluZ1Rlc3Q6OnJ1blNjcmlwdFdpdGhvdXRVc2VyR2Vz
dHVyZSk6CisgICAgICAgIChOb3dQbGF5aW5nVGVzdDo6ZXhlY3V0ZUFuZFdhaXRGb3JQbGF5aW5n
KToKKyAgICAgICAgKE5vd1BsYXlpbmdUZXN0OjpleGVjdXRlQW5kV2FpdEZvcldlYlZpZXdUb0Jl
Y29tZU5vd1BsYXlpbmcpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvTm93UGxheWluZ0NvbnRyb2xzVGVzdHMubW06CisgICAgICAgICgtW05vd1BsYXlpbmdUZXN0
V2ViVmlldyBoYXNBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbl0pOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvT2JzZXJ2ZWRSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0Fm
dGVyQ3Jhc2gubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL09wZW5BbmRDbG9zZVdpbmRvdy5tbToKKyAgICAgICAgKFRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGFyc2VyWWllbGRUb2tl
blRlc3RzLm1tOgorICAgICAgICAod2FpdEZvckRlbGF5KToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Bhc3RlSW1hZ2UubW06CisgICAgICAgICgtW1Rlc3RXS1dl
YlZpZXcgd2FpdEZvck1lc3NhZ2U6YWZ0ZXJFdmFsdWF0aW5nU2NyaXB0Ol0pOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGljdHVyZUluUGljdHVyZURlbGVnYXRl
Lm1tOgorICAgICAgICAod2FpdFVudGlsT25Mb2FkSXNDb21wbGV0ZWQpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9QbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMubW06CisgICAgICAgIChURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZWZlcmVuY2VzLm1tOgorICAg
ICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
cmVmZXJyZWRBdWRpb0J1ZmZlclNpemUubW06CisgICAgICAgIChQcmVmZXJyZWRBdWRpb0J1ZmZl
clNpemU6OnJ1blBsYXlpbmdUZXN0V2l0aFBhZ2VOYW1lZCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVwYXJlRm9yTW92ZVRvV2luZG93Lm1tOgorICAgICAg
ICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9j
ZXNzU3VzcGVuZE1lZGlhQnVmZmVyaW5nLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb3Zpc2lvbmFs
VVJMTm90Q2hhbmdlLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm94eS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUXVpY2tMb29r
Lm1tOgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tOgorICAg
ICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9S
ZW5kZXJlZEltYWdlV2l0aE9wdGlvbnMubW06CisgICAgICAgIChydW5UZXN0V2l0aFdpZHRoKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmluZ1Byb2dy
ZXNzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9SZXBhcmVudFdlYlZpZXdUaW1lb3V0Lm1tOgorICAgICAgICAoVEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0
Q29udGV4dC5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0VGV4
dElucHV0Q29udGV4dHNJblJlY3Q6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzeW5jaHJvbm91
c2x5Rm9jdXNUZXh0SW5wdXRDb250ZXh0Ol0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUmVxdWlyZXNVc2VyQWN0aW9uRm9yUGxheWJhY2subW06CisgICAgICAg
IChSZXF1aXJlc1VzZXJBY3Rpb25Gb3JQbGF5YmFja1Rlc3Q6OnRlc3RWaWRlb1dpdGhBdWRpbyk6
CisgICAgICAgIChSZXF1aXJlc1VzZXJBY3Rpb25Gb3JQbGF5YmFja1Rlc3Q6OnRlc3RWaWRlb1dp
dGhvdXRBdWRpbyk6CisgICAgICAgIChSZXF1aXJlc1VzZXJBY3Rpb25Gb3JQbGF5YmFja1Rlc3Q6
OnRlc3RBdWRpb09ubHkpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzcG9uc2l2ZW5lc3NUaW1lci5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseS5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUmVzdG9yZVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9uLm1t
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y3JlYXRlU2Vzc2lvblN0YXRlRGF0YSk6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1J1bk9wZW5QYW5lbC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2FmZUJyb3dz
aW5nLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TY2hlbWVSZWdpc3RyeS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
U2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnMubW06CisgICAgICAgIChURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nocmlua1RvRml0Lm1t
OgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9TbmFwc2hvdFN0b3JlLm1tOgorICAgICAgICAoLVtTbmFwc2hvdFRlc3RXS1dlYlZpZXcg
c3luY2hyb25vdXNseUZvcmNlUmVwYWludF0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvU3RvcFN1c3BlbmRSZXN1bWVBbGxNZWRpYS5tbToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvU3RvcmFnZVF1b3RhLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvU3RvcmVCbG9iVGhlbkRlbGV0ZS5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAg
ICAgKFRFU1QpOgorICAgICAgICAodGVzdERpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3
b3JkQXBwZWFyYW5jZUFmdGVyRXZhbHVhdGluZ0phdmFTY3JpcHQpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlckNvbnRlbnRDb250cm9sbGVyLm1tOgorICAg
ICAgICAoVEVTVCk6CisgICAgICAgIChleHBlY3RTY3JpcHRFdmFsdWF0ZXNUb0NvbG9yKToKKyAg
ICAgICAgKHdhaXRGb3JNZXNzYWdlcyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Vc2VyQ29udGVudFdvcmxkLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VySW5pdGlhdGVkQWN0aW9uSW5O
YXZpZ2F0aW9uQWN0aW9uLm1tOgorICAgICAgICAoVXNlckluaXRpYXRlZEFjdGlvblRlc3Q6Omxv
YWRUZXN0KToKKyAgICAgICAgKFRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbToKKyAgICAgICAgKE1lZGlhQ2FwdHVy
ZURpc2FibGVkVGVzdDo6bG9hZFRlc3RBbmRXYWl0Rm9yTWVzc2FnZSk6CisgICAgICAgIChURVNU
X0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlck1lZGlh
U2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tOgorICAgICAgICAoTWVkaWFDYXB0dXJlU2ltdWxhdGVG
YWlsZWRTYW5kYm94Ojpsb2FkVGVzdEFuZFdhaXRGb3JNZXNzYWdlKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tOgorICAg
ICAgICAoLVtWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFu
YWdlcjphZnRlclJlY2VpdmluZ01lc3NhZ2U6XSk6CisgICAgICAgICgtW1ZpZGVvQ29udHJvbHNN
YW5hZ2VyVGVzdFdlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6
XSk6CisgICAgICAgICgtW1ZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcgY29udHJvbGxl
ZEVsZW1lbnRJRF0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbToKKyAg
ICAgICAgKC1bVGVzdFdLV2ViVmlldyBzeW5jaHJvbm91c2x5SW5zZXJ0QXR0YWNobWVudFdpdGhG
aWxlV3JhcHBlcjpjb250ZW50VHlwZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBzeW5j
aHJvbm91c2x5SW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlbmFtZTpjb250ZW50VHlwZTpkYXRhOl0p
OgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IGF0dGFjaG1lbnRFbGVtZW50TWlkUG9pbnRdKToK
KyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBhdHRhY2htZW50RWxlbWVudFNpemVdKToKKyAgICAg
ICAgKC1bVGVzdFdLV2ViVmlldyBpbWFnZUVsZW1lbnRTaXplXSk6CisgICAgICAgICgtW19XS0F0
dGFjaG1lbnQgc3luY2hyb25vdXNseVNldEZpbGVXcmFwcGVyOm5ld0NvbnRlbnRUeXBlOmVycm9y
Ol0pOgorICAgICAgICAoLVtfV0tBdHRhY2htZW50IHN5bmNocm9ub3VzbHlTZXREYXRhOm5ld0Nv
bnRlbnRUeXBlOm5ld0ZpbGVuYW1lOmVycm9yOl0pOgorICAgICAgICAoLVtOU0l0ZW1Qcm92aWRl
ciBleHBlY3RUeXBlOndpdGhEYXRhOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRFeHRl
bnNpb25TdG9yZS5tbToKKyAgICAgICAgKFRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRWaWV3RWRpdGluZ0FjdGlvbnMubW06CisgICAg
ICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
SFRUUENvb2tpZVN0b3JlLm1tOgorICAgICAgICAocnVuVGVzdFdpdGhXZWJzaXRlRGF0YVN0b3Jl
KToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAocnVuV0tIVFRQQ29va2llU3RvcmVXaXRob3V0
UHJvY2Vzc1Bvb2wpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tOYXZpZ2F0aW9uUmVzcG9uc2UubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKC1bTmF2
aWdhdGlvblJlc3BvbnNlVGVzdERlbGVnYXRlIHdhaXRGb3JOYXZpZ2F0aW9uUmVzcG9uc2VDYWxs
YmFja10pOgorICAgICAgICAoLVtOYXZpZ2F0aW9uUmVzcG9uc2VUZXN0RGVsZWdhdGUgd2FpdEZv
ck5hdmlnYXRpb25GaW5pc2hlZENhbGxiYWNrXSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlld1Jlc2l6ZUNyYXNoLm1t
OgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1BERlZpZXdTdGFibGVQcmVzZW50YXRpb25VcGRhdGVDYWxsYmFjay5tbToKKyAgICAg
ICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tS
ZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm8ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLVVJMU2No
ZW1lSGFuZGxlci0xLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgIChjaGVja0NhbGxTZXF1
ZW5jZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZp
ZXdDYW5kaWRhdGVUZXN0cy5tbToKKyAgICAgICAgKC1bQ2FuZGlkYXRlVGVzdFdlYlZpZXcgaW5z
ZXJ0Q2FuZGlkYXRlc0FuZFdhaXRGb3JSZXNwb25zZTpyYW5nZTpdKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06Cisg
ICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLV2ViVmlld0RlZmF1bHROYXZpZ2F0aW9uRGVsZWdhdGUubW06CisgICAgICAgIChURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0RpYWdu
b3N0aWNMb2dnaW5nLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW06CisgICAg
ICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
V2ViVmlld0ZpbmRTdHJpbmcubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0ZpcnN0UmVz
cG9uZGVyVGVzdHMubW06CisgICAgICAgICgtW0ZpcnN0UmVzcG9uZGVyVGVzdGluZ1ZpZXcgaW5p
dFdpdGhGcmFtZTpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLV2ViVmlld0dldENvbnRlbnRzLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdTbmFwc2hvdC5tbToKKyAgICAg
ICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tX
ZWJzaXRlRGF0YXN0b3JlLm1tOgorICAgICAgICAoLVtOYXZpZ2F0aW9uVGVzdERlbGVnYXRlIHdh
aXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkNvbnRlbnRQ
cm9jZXNzRGlkVGVybWluYXRlLm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJDcnlwdG9NYXN0ZXJLZXkubW06CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dlYkdMUG9saWN5Lm1tOgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgIChU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlByb2Nl
c3NLaWxsSURCQ2xlYW51cC5tbToKKyAgICAgICAgKGdldE5leHRNZXNzYWdlKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21Q
YXRocy5tbToKKyAgICAgICAgKGdldE5leHRNZXNzYWdlKToKKyAgICAgICAgKHJ1bldlYnNpdGVE
YXRhU3RvcmVDdXN0b21QYXRocyk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbToKKyAgICAgICAgKFRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLSW5wdXRE
ZWxlZ2F0ZS5tbToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5tbToKKyAgICAgICAg
KFRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvaW9z
L0F1ZGlvU2Vzc2lvbkNhdGVnb3J5SU9TLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvaW9zL1Njcm9s
bGluZ0RvZXNOb3RQYXVzZU1lZGlhLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvaW9zL1NuYXBzaG90
VmlhUmVuZGVySW5Db250ZXh0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvbWFjL0FjY2Vzc2luZ1Bh
c3RlZEltYWdlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvbWFjL0Nsb3NpbmdXZWJWaWV3Lm1tOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRMZWdhY3kvbWFjL0RlYWxsb2NXZWJWaWV3SW5FdmVudExpc3RlbmVyLm1tOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRMZWdhY3kvbWFjL0Rvd25sb2FkVGhyZWFkLm1tOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRPYmpD
L0N1c3RvbVByb3RvY29sc0ludmFsaWRTY2hlbWUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdE9iakMvQ3VzdG9t
UHJvdG9jb2xzVGVzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnJ1blRlc3QpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRPYmpDL1ByZXZlbnRJbWFnZUxvYWRXaXRoQXV0b1Jlc2l6aW5nLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRPYmpDL1VzZXJDb250ZW50VGVzdC5tbToKKyAgICAgICAgKFRFU1RfRik6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRPYmpDL1dLQnJvd3NpbmdDb250ZXh0TG9hZERl
bGVnYXRlVGVzdC5tbToKKyAgICAgICAgKFRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9pb3MvQWNjZXNzaWJpbGl0eVRlc3RzSU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgcmVjdHNBdFNlbGVjdGlvbk9mZnNldDp3aXRoVGV4dDpdKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9BY3Rpb25TaGVldFRlc3RzLm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpwcmVzZW50QWN0aW9uU2hlZXRB
bmRDaG9vc2VBY3Rpb24pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RyYWdB
bmREcm9wVGVzdHNJT1MubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9Gb2N1c1ByZXNlcnZhdGlvblRlc3RzLm1tOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9pb3MvS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1tOgorICAgICAgICAod2ViVmlld1dpdGhB
dXRvZm9jdXNlZElucHV0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1JlbmRlcmluZ1Byb2dyZXNzVGVzdHMubW06Cisg
ICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9TY3JvbGxW
aWV3SW5zZXRUZXN0cy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1NldFRpbWVvdXRGdW5jdGlvbi5tbToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
aW9zL1VJUGFzdGVib2FyZFRlc3RzLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvV0tTY3JvbGxWaWV3RGVsZWdhdGUu
bW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL2lvcy9XS1Njcm9sbFZpZXdUZXN0cy5tbToKKyAgICAgICAgKFRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1dLV2ViVmlld0F1dG9maWxsVGVzdHMubW06
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9BZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5tbToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OnJ1blRlc3QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0JhY2tGb3J3YXJkTGlzdC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NhbmNlbExvYWRGcm9tUmVzb3VyY2VMb2Fk
RGVsZWdhdGUubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9DYW5kaWRhdGVUZXN0cy5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nsb3Nl
TmV3V2luZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVsZWdhdGUubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZW50
RmlsdGVyaW5nLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6bG9hZEFsdGVybmF0ZVRlc3Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVS
TC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRhZ3MubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9Dcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVBY2Nlc3MubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9ET01IVE1M
VGFibGVDZWxsQ2VsbEFib3ZlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRE9NSFRNTFZpZGVvRWxlbWVudFdyYXBw
ZXIubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9ET01Ob2RlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRE9NUmFuZ2VPZlN0cmluZy5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0RldmljZVNjYWxlRmFjdG9ySW5EYXNoYm9hcmRSZWdpb25zLm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvRWxlbWVudEF0UG9pbnRJbldlYkZyYW1lLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRmlyc3RSZXNwb25k
ZXJTY3JvbGxpbmdQb3NpdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU3VwcHJlc3Np
b24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9Gb250TWFuYWdlclRlc3RzLm1tOgorICAgICAgICAoLVtUZXN0V0tX
ZWJWaWV3IHR5cGluZ0F0dHJpYnV0ZXNdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9GcmFnbWVudE5hdmlnYXRpb24ubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRp
YWxGcmFtZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkZ1bGxzY3JlZW5ab29tSW5pdGlh
bEZyYW1lOjpydW5UZXN0KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9IVE1M
Q29sbGVjdGlvbk5hbWVkSXRlbS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hUTUxGb3JtQ29sbGVjdGlvbk5hbWVk
SXRlbS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0luc3BlY3RvckJhci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0lzTmF2aWdhdGlv
bkFjdGlvblRydXN0ZWQubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9KU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFtZS5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0xlZ2FjeURyYWdBbmREcm9wVGVzdHMubW06CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjp3ZWJWaWV3QWZ0ZXJQZXJmb3JtaW5nRHJhZ09wZXJhdGlvbik6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTGltaXRUaXRsZVNpemUubW06CisgICAgICAgIChURVNU
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Mb2FkSW52YWxpZFVSTFJlcXVl
c3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9Mb2FkV2ViQXJjaGl2ZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL01lZGlhUGxheWJh
Y2tTbGVlcEFzc2VydGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL01lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJl
c291cmNlTG9hZERlbGVnYXRlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTWVtb3J5Q2FjaGVQcnVuZVdpdGhpblJl
c291cmNlTG9hZERlbGVnYXRlLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTmF2aWdhdG9yTGFuZ3VhZ2UubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9Ob1BvbGljeURlbGVnYXRlUmVzcG9uc2UubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9QYWdlVmlzaWJp
bGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQ
YWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXM6OnJ1blRlc3QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1JlbmRlcmVkSW1hZ2VGcm9tRE9NTm9kZS5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL1JlbmRlcmVkSW1hZ2VGcm9tRE9NUmFuZ2UubW06CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TZXREb2N1bWVu
dFVSSS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL1NpbXBsaWZ5TWFya3VwLm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3RhcnRMb2Fk
SW5EaWRGYWlsUHJvdmlzaW9uYWxMb2FkLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3RvcExvYWRpbmdGcm9tRGlk
RmluaXNoTG9hZGluZy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1N0b3BMb2FkaW5nRnJvbURpZFJlY2VpdmVSZXNw
b25zZS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL1dLV2ViVmlld01hY0VkaXRpbmdUZXN0cy5tbToKKyAgICAgICAg
KFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlNjcmlwdE9iamVj
dERlc2NyaXB0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0Nsb3NlSW5zaWRlRGlkRmluaXNoTG9h
ZEZvckZyYW1lLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0RpZENyZWF0ZUphdmFTY3JpcHRDb250ZXh0
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL1dlYlZpZXdJY29uTG9hZGluZy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RUb1VSTENyYXNoLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFNlbmRTdWJtaXRFdmVudC5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlhLm1tOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9VdGlsaXRpZXMuaDoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW06Cisg
ICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2FpdEZvckRpZFN0YXJ0UHJvdmlzaW9u
YWxOYXZpZ2F0aW9uXSk6CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2FpdEZv
ckRpZEZpbmlzaE5hdmlnYXRpb25dKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF90ZXN0X3dhaXRG
b3JEaWRGaW5pc2hOYXZpZ2F0aW9uXSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9U
ZXN0V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3N5bmNocm9ub3VzbHlFeGVj
dXRlRWRpdENvbW1hbmQ6YXJndW1lbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBvYmplY3RC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgb2JqZWN0QnlF
dmFsdWF0aW5nSmF2YVNjcmlwdFdpdGhVc2VyR2VzdHVyZTpdKToKKyAgICAgICAgKC1bVGVzdFdL
V2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyB3YWl0
Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHNl
bGVjdGlvblJlY3RzQWZ0ZXJQcmVzZW50YXRpb25VcGRhdGVdKToKKyAgICAgICAgKC1bVGVzdFdL
V2ViVmlldyBhY3RpdmF0ZWRFbGVtZW50QXRQb3NpdGlvbjpdKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL2NvY29hL1V0aWxpdGllc0NvY29hLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuVW50aWwpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2dlbmVyaWMvVXRpbGl0aWVzR2VuZXJpYy5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4pOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvaW9zL0RyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tOgorICAgICAgICAoLVtEcmFn
QW5kRHJvcFNpbXVsYXRvciBydW5Gcm9tOnRvOmFkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9u
czpdKToKKyAgICAgICAgKC1bRHJhZ0FuZERyb3BTaW11bGF0b3IgZW5zdXJlSW5wdXRTZXNzaW9u
XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvRHJhZ0FuZERyb3BTaW11bGF0b3JNYWMu
bW06CisgICAgICAgICgtW0RyYWdBbmREcm9wVGVzdFdLV2ViVmlldyB3YWl0Rm9yUGVuZGluZ01v
dXNlRXZlbnRzXSk6CisgICAgICAgICgtW0RyYWdBbmREcm9wU2ltdWxhdG9yIHJ1bkZyb206dG86
XSk6CisgICAgICAgICgtW0RyYWdBbmREcm9wU2ltdWxhdG9yIHJlY2VpdmVQcm9taXNlZEZpbGVz
XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvV2ViS2l0QWdub3N0aWNUZXN0Lm1tOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViS2l0QWdub3N0aWNUZXN0Ojp3YWl0Rm9yTG9hZFRv
RmluaXNoKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYktpdEFnbm9zdGljVGVzdDo6d2Fp
dEZvck5leHRQcmVzZW50YXRpb25VcGRhdGUpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvd2lu
L1V0aWxpdGllc1dpbi5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4pOgor
CiAyMDE5LTA1LTIwICBMdWRvdmljbyBkZSBOaXR0aXMgIDxsdWRvdmljby5kZW5pdHRpc0Bjb2xs
YWJvcmEuY29tPgogCiAgICAgICAgIFtXUEVdW1F0XSBVc2UgQysrMTcgaW5zdGVhZCBvZiBDKysx
NApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9FZGl0aW5nVGVzdEhhcm5lc3MubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9FZGl0aW5nVGVzdEhhcm5lc3MubW0JKHJldmlz
aW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvRWRpdGluZ1Rlc3RIYXJuZXNzLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xODgsNyArMTg4LDcgQEAgLSAodm9pZClfZXhlY0NvbW1hbmQ6
KE5TU3RyaW5nICopY29tbWFuZAogICAgICAgICByZXN1bHQgPSBzdWNjZXNzOwogICAgICAgICBk
b25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgW193ZWJWaWV3IHdh
aXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9KYXZhU2NyaXB0VGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9K
YXZhU2NyaXB0VGVzdC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvSmF2YVNjcmlwdFRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Miw3ICs3Miw3IEBAIHN0
YXRpYyB2b2lkIGphdmFTY3JpcHRDYWxsYmFjayhXS1NlcmlhbGkKIHsKICAgICBKYXZhU2NyaXB0
Q2FsbGJhY2tDb250ZXh0IGNvbnRleHQ7CiAgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEluTWFpbkZy
YW1lKHBhZ2UsIFV0aWw6OnRvV0soc2NyaXB0KS5nZXQoKSwgJmNvbnRleHQsIGphdmFTY3JpcHRD
YWxsYmFjayk7Ci0gICAgVXRpbDo6cnVuKCZjb250ZXh0LmRpZEZpbmlzaCk7CisgICAgcnVuVW50
aWwoY29udGV4dC5kaWRGaW5pc2gpOwogCiAgICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBKU1N0cmlu
Z0dldE1heGltdW1VVEY4Q1N0cmluZ1NpemUoY29udGV4dC5hY3R1YWxTdHJpbmcuZ2V0KCkpOwog
ICAgIGF1dG8gYnVmZmVyID0gc3RkOjptYWtlX3VuaXF1ZTxjaGFyW10+KGJ1ZmZlclNpemUpOwpJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9VdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1V0aWxpdGllcy5oCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1V0aWxpdGllcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMCArMjYsMTMg
QEAKICNwcmFnbWEgb25jZQogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Ci1uYW1lc3BhY2Ug
VXRpbCB7CisKKyNkZWZpbmUgSEFWRV9SVU5fVU5USUwgMSAvLyBUZW1wb3JhcnkgdG8gaGVscCBu
b3QgYnJlYWsgYnVpbGQgd2hpbGUgY2hhbmdpbmcgdG8gcnVuVW50aWwuCiAKIC8vIFJ1bnMgYSBw
bGF0Zm9ybSBydW5sb29wIHVudGlsIHRoZSAnZG9uZScgZmxhZyBpcyB0cnVlLgotdm9pZCBydW4o
Ym9vbCogZG9uZSk7Cit2b2lkIHJ1blVudGlsKGNvbnN0IGJvb2wmIGRvbmUpOworCituYW1lc3Bh
Y2UgVXRpbCB7CiAKIC8vIFJ1bnMgYSBwbGF0Zm9ybSBydW5sb29wIGBjb3VudGAgbnVtYmVyIG9m
IHNwaW5zLgogdm9pZCBzcGluUnVuTG9vcCh1aW50NjRfdCBjb3VudCA9IDEpOwpJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9DdXN0b21Qcm90b2NvbHNTeW5jWEhSVGVzdC5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0N1c3RvbVByb3RvY29sc1N5bmNY
SFJUZXN0Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L0N1c3RvbVByb3RvY29sc1N5bmNYSFJUZXN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2
NSw3IEBAIFRFU1QoV2ViS2l0MkN1c3RvbVByb3RvY29sc1Rlc3QsIFN5bmNYSFIKIAogICAgIFdL
UGFnZUxvYWRVUkwod2tWaWV3LmdldCgpLnBhZ2VSZWYsIFV0aWw6OmNyZWF0ZVVSTEZvclJlc291
cmNlKCJjdXN0b20tcHJvdG9jb2wtc3luYy14aHIiLCAiaHRtbCIpKTsKIAotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbCh0ZXN0RmluaXNoZWQpOwogICAgIFtUZXN0UHJvdG9jb2wgdW5yZWdpc3Rlcl07CiB9CiAK
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZlB0ci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcAkocmV2aXNpb24g
MjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUmVmUHRyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTQ5LDkgKzU0OSw2IEBAIFRFU1QoV1RGX1JlZlB0ciwgUmVsZWFzZU5v
bk51bGxCZWZvcmVEZXIKICAgICBFWFBFQ1RfU1RSRVEoInJlZihhKSBzbG90PW51bGwgZGVyZWYo
YSkgIiwgdGFrZUxvZ1N0cigpLmNfc3RyKCkpOwogfQogCi0vLyBGSVhNRTogRW5hYmxlIHRoZXNl
IHRlc3RzIG9uY2UgV2luIHBsYXRmb3JtIHN1cHBvcnRzIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bgotI2lmISBQTEFURk9STShXSU4pCi0KIHN0YXRpYyBib29sIGRvbmU7CiBzdGF0aWMgYm9vbCBp
c0Rlc3Ryb3llZEluTWFpblRocmVhZDsKIHN0cnVjdCBUaHJlYWRTYWZlUmVmQ291bnRlZE9iamVj
dCA6IFRocmVhZFNhZmVSZWZDb3VudGVkPFRocmVhZFNhZmVSZWZDb3VudGVkT2JqZWN0PiB7CkBA
IC01NzgsNyArNTc1LDcgQEAgVEVTVChXVEZfUmVmUHRyLCBSZWxlYXNlSW5Ob25NYWluVGhyZWFk
KQogewogICAgIGRvbmUgPSBmYWxzZTsKICAgICBUaHJlYWQ6OmNyZWF0ZSgiIiwgW29iamVjdCA9
IFRocmVhZFNhZmVSZWZDb3VudGVkT2JqZWN0OjpjcmVhdGUoKV0geyB9KTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogCiAgICAgRVhQRUNUX0ZBTFNFKGlzRGVzdHJveWVkSW5NYWluVGhyZWFkKTsKIH0KQEAg
LTU4OCwxMSArNTg1LDkgQEAgVEVTVChXVEZfUmVmUHRyLCBSZWxlYXNlSW5Ob25NYWluVGhyZWFk
RAogICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogICAgIGRvbmUgPSBmYWxz
ZTsKICAgICBUaHJlYWQ6OmNyZWF0ZSgiIiwgW29iamVjdCA9IE1haW5UaHJlYWRTYWZlUmVmQ291
bnRlZE9iamVjdDo6Y3JlYXRlKCldIHsgfSk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIAogICAgIEVYUEVD
VF9UUlVFKGlzRGVzdHJveWVkSW5NYWluVGhyZWFkKTsKIH0KIAotI2VuZGlmCi0KIH0gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1J1bkxvb3AuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1J1bkxvb3AuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9SdW5Mb29wLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBURVNU
KFdURl9SdW5Mb29wLCBEZWFkbG9jaykKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNo
KFtjYXB0dXJlXSB7IH0pOwogICAgIH0KIAotICAgIFV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsK
KyAgICBydW5VbnRpbCh0ZXN0RmluaXNoZWQpOwogfQogCiBjbGFzcyBEZXJpdmVkT25lU2hvdFRp
bWVyIDogcHVibGljIFJ1bkxvb3A6OlRpbWVyPERlcml2ZWRPbmVTaG90VGltZXI+IHsKQEAgLTgx
LDcgKzgxLDcgQEAgVEVTVChXVEZfUnVuTG9vcCwgT25lU2hvdFRpbWVyKQogICAgIGJvb2wgdGVz
dEZpbmlzaGVkID0gZmFsc2U7CiAgICAgRGVyaXZlZE9uZVNob3RUaW1lciB0aW1lcih0ZXN0Rmlu
aXNoZWQpOwogICAgIHRpbWVyLnN0YXJ0T25lU2hvdCgxMDBfbXMpOwotICAgIFV0aWw6OnJ1bigm
dGVzdEZpbmlzaGVkKTsKKyAgICBydW5VbnRpbCh0ZXN0RmluaXNoZWQpOwogfQogCiBjbGFzcyBE
ZXJpdmVkUmVwZWF0aW5nVGltZXIgOiBwdWJsaWMgUnVuTG9vcDo6VGltZXI8RGVyaXZlZFJlcGVh
dGluZ1RpbWVyPiB7CkBAIC0xMTMsNyArMTEzLDcgQEAgVEVTVChXVEZfUnVuTG9vcCwgUmVwZWF0
aW5nVGltZXIpCiAgICAgYm9vbCB0ZXN0RmluaXNoZWQgPSBmYWxzZTsKICAgICBEZXJpdmVkUmVw
ZWF0aW5nVGltZXIgdGltZXIodGVzdEZpbmlzaGVkKTsKICAgICB0aW1lci5zdGFydFJlcGVhdGlu
ZygxMF9tcyk7Ci0gICAgVXRpbDo6cnVuKCZ0ZXN0RmluaXNoZWQpOworICAgIHJ1blVudGlsKHRl
c3RGaW5pc2hlZCk7CiAgICAgQVNTRVJUX0ZBTFNFKHRpbWVyLmlzQWN0aXZlKCkpOwogfQogCklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQWJvcnRhYmxlVGFza1F1ZXVl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQWJv
cnRhYmxlVGFza1F1ZXVlLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0Fib3J0YWJsZVRhc2tRdWV1ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU5LDcgKzU5LDcgQEAgVEVTVChBYm9ydGFibGVUYXNrUXVldWUsIEFzeW5jVGFza3MpCiAg
ICAgICAgIFdURjo6VGhyZWFkOjpjcmVhdGUoImF0cS1iYWNrZ3JvdW5kIiwgV1RGTW92ZShiYWNr
Z3JvdW5kVGhyZWFkRnVuY3Rpb24pKS0+ZGV0YWNoKCk7CiAgICAgfSk7CiAKLSAgICBVdGlsOjpy
dW4oJnRlc3RGaW5pc2hlZCk7CisgICAgcnVuVW50aWwodGVzdEZpbmlzaGVkKTsKIH0KIAogc3Ry
dWN0IEZhbmN5UmVzcG9uc2UgewpAQCAtMTI3LDcgKzEyNyw3IEBAIFRFU1QoQWJvcnRhYmxlVGFz
a1F1ZXVlLCBTeW5jVGFza3MpCiAgICAgICAgIFdURjo6VGhyZWFkOjpjcmVhdGUoImF0cS1iYWNr
Z3JvdW5kIiwgV1RGTW92ZShiYWNrZ3JvdW5kVGhyZWFkRnVuY3Rpb24pKS0+ZGV0YWNoKCk7CiAg
ICAgfSk7CiAKLSAgICBVdGlsOjpydW4oJnRlc3RGaW5pc2hlZCk7CisgICAgcnVuVW50aWwodGVz
dEZpbmlzaGVkKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFRocmVhZEVudW0+CkBAIC0yMzMs
NyArMjMzLDcgQEAgVEVTVChBYm9ydGFibGVUYXNrUXVldWUsIEFib3J0KQogICAgICAgICBtYWlu
VGhyZWFkQ29udGV4dC55aWVsZFRvVGhyZWFkKFRlc3RUaHJlYWQ6OkJhY2tncm91bmQpOwogICAg
IH0pOwogCi0gICAgVXRpbDo6cnVuKCZ0ZXN0RmluaXNoZWQpOworICAgIHJ1blVudGlsKHRlc3RG
aW5pc2hlZCk7CiB9CiAKIFRFU1QoQWJvcnRhYmxlVGFza1F1ZXVlLCBBYm9ydEJlZm9yZVN5bmNU
YXNrUnVuKQpAQCAtMjY4LDcgKzI2OCw3IEBAIFRFU1QoQWJvcnRhYmxlVGFza1F1ZXVlLCBBYm9y
dEJlZm9yZVN5bmMKICAgICAgICAgdGFza1F1ZXVlLnN0YXJ0QWJvcnRpbmcoKTsKICAgICB9KTsK
IAotICAgIFV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICBydW5VbnRpbCh0ZXN0RmluaXNo
ZWQpOwogfQogCiBURVNUKEFib3J0YWJsZVRhc2tRdWV1ZSwgQWJvcnRlZEJ5U3luY1Rhc2tIYW5k
bGVyKQpAQCAtMzEwLDcgKzMxMCw3IEBAIFRFU1QoQWJvcnRhYmxlVGFza1F1ZXVlLCBBYm9ydGVk
QnlTeW5jVGEKICAgICAgICAgV1RGOjpUaHJlYWQ6OmNyZWF0ZSgiYXRxLWJhY2tncm91bmQiLCBX
VEZNb3ZlKGJhY2tncm91bmRUaHJlYWRGdW5jdGlvbikpLT5kZXRhY2goKTsKICAgICB9KTsKIAot
ICAgIFV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICBydW5VbnRpbCh0ZXN0RmluaXNoZWQp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvRE5TLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvRE5TLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ROUy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4
LDcgKzU4LDcgQEAgVEVTVChETlNUZXN0LCBjYW5jZWxSZXNvbHZlRE5TKQogICAgIGRvbmUgPSBm
YWxzZTsKICAgICByZXNvbHZlRE5TKGhvc3RuYW1lLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiAgICAgc3RvcFJlc29sdmVETlMoaWRlbnRpZmllcik7Ci0gICAgVXRp
bDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKIH0KIAogVEVTVChETlNUZXN0LCBj
YW5ub3RSZXNvbHZlRE5TKQpAQCAtNzksNyArNzksNyBAQCBURVNUKEROU1Rlc3QsIGNhbm5vdFJl
c29sdmVETlMpCiAKICAgICBkb25lID0gZmFsc2U7CiAgICAgcmVzb2x2ZUROUyhob3N0bmFtZSwg
aWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIFV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiB9CiAKIFRFU1QoRE5TVGVzdCwgcmVzb2x2ZURO
UykKQEAgLTk5LDcgKzk5LDcgQEAgVEVTVChETlNUZXN0LCByZXNvbHZlRE5TKQogCiAgICAgZG9u
ZSA9IGZhbHNlOwogICAgIHJlc29sdmVETlMoaG9zdG5hbWUsIGlkZW50aWZpZXIsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGls
KGRvbmUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAJKHJldmlz
aW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9u
aXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MSw3ICsxNzEsNyBAQCBURVNUX0YoRmlsZU1v
bml0b3JUZXN0LCBEZXRlY3RDaGFuZ2UpCiAgICAgICAgICAgICBkaWRGaW5pc2ggPSB0cnVlOwog
ICAgIH0pOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2gpOworICAgIHJ1blVudGlsKGRpZEZp
bmlzaCk7CiAKICAgICBFWFBFQ1RfVFJVRShvYnNlcnZlZEZpbGVNb2RpZmljYXRpb24pOwogICAg
IEVYUEVDVF9GQUxTRShvYnNlcnZlZEZpbGVEZWxldGlvbik7CkBAIC0yMTMsNyArMjEzLDcgQEAg
VEVTVF9GKEZpbGVNb25pdG9yVGVzdCwgRGV0ZWN0TXVsdGlwbGVDaAogICAgICAgICAgICAgZGlk
RmluaXNoID0gdHJ1ZTsKICAgICB9KTsKIAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoKTsKKyAg
ICBydW5VbnRpbChkaWRGaW5pc2gpOwogCiAgICAgRVhQRUNUX1RSVUUob2JzZXJ2ZWRGaWxlTW9k
aWZpY2F0aW9uKTsKICAgICBFWFBFQ1RfRkFMU0Uob2JzZXJ2ZWRGaWxlRGVsZXRpb24pOwpAQCAt
MjMxLDcgKzIzMSw3IEBAIFRFU1RfRihGaWxlTW9uaXRvclRlc3QsIERldGVjdE11bHRpcGxlQ2gK
ICAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CiAgICAgfSk7CiAKLSAgICBVdGlsOjpydW4o
JmRpZEZpbmlzaCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoKTsKIAogICAgIEVYUEVDVF9UUlVF
KG9ic2VydmVkRmlsZU1vZGlmaWNhdGlvbik7CiAgICAgRVhQRUNUX0ZBTFNFKG9ic2VydmVkRmls
ZURlbGV0aW9uKTsKQEAgLTI3Myw3ICsyNzMsNyBAQCBURVNUX0YoRmlsZU1vbml0b3JUZXN0LCBE
ZXRlY3REZWxldGlvbikKICAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CiAgICAgfSk7CiAK
LSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoKTsKIAog
ICAgIEVYUEVDVF9GQUxTRShvYnNlcnZlZEZpbGVNb2RpZmljYXRpb24pOwogICAgIEVYUEVDVF9U
UlVFKG9ic2VydmVkRmlsZURlbGV0aW9uKTsKQEAgLTMxMiw3ICszMTIsNyBAQCBURVNUX0YoRmls
ZU1vbml0b3JUZXN0LCBEZXRlY3RDaGFuZ2VBbmRUCiAgICAgICAgICAgICBkaWRGaW5pc2ggPSB0
cnVlOwogICAgIH0pOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2gpOworICAgIHJ1blVudGls
KGRpZEZpbmlzaCk7CiAKICAgICBFWFBFQ1RfVFJVRShvYnNlcnZlZEZpbGVNb2RpZmljYXRpb24p
OwogICAgIEVYUEVDVF9GQUxTRShvYnNlcnZlZEZpbGVEZWxldGlvbik7CkBAIC0zMzAsNyArMzMw
LDcgQEAgVEVTVF9GKEZpbGVNb25pdG9yVGVzdCwgRGV0ZWN0Q2hhbmdlQW5kVAogICAgICAgICAg
ICAgZGlkRmluaXNoID0gdHJ1ZTsKICAgICB9KTsKIAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNo
KTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2gpOwogCiAgICAgRVhQRUNUX0ZBTFNFKG9ic2VydmVk
RmlsZU1vZGlmaWNhdGlvbik7CiAgICAgRVhQRUNUX1RSVUUob2JzZXJ2ZWRGaWxlRGVsZXRpb24p
OwpAQCAtMzY5LDcgKzM2OSw3IEBAIFRFU1RfRihGaWxlTW9uaXRvclRlc3QsIERldGVjdERlbGV0
ZUJ1dE4KICAgICAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CiAgICAgfSk7CiAKLSAgICBVdGls
OjpydW4oJmRpZEZpbmlzaCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoKTsKIAogICAgIEVYUEVD
VF9GQUxTRShvYnNlcnZlZEZpbGVNb2RpZmljYXRpb24pOwogICAgIEVYUEVDVF9UUlVFKG9ic2Vy
dmVkRmlsZURlbGV0aW9uKTsKQEAgLTQwMCw3ICs0MDAsNyBAQCBURVNUX0YoRmlsZU1vbml0b3JU
ZXN0LCBEZXRlY3REZWxldGVCdXROCiAgICAgICAgIGRpZEZpbmlzaCA9IHRydWU7CiAgICAgfSk7
CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoKTsK
IAogICAgIEVYUEVDVF9GQUxTRShvYnNlcnZlZEZpbGVNb2RpZmljYXRpb24pOwogICAgIEVYUEVD
VF9GQUxTRShvYnNlcnZlZEZpbGVEZWxldGlvbik7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvTGluZUJyZWFraW5nLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9MaW5lQnJlYWtpbmcubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9MaW5lQnJlYWtpbmcubW0JKHdv
cmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIHZvaWQgdGVzdEFGZXdTdHJpbmdz
KFZlY3RvcjxWZWN0bwogICAgICAgICAgICAgICAgICAgICAgICAgd2Via2l0TG9jYXRpb25zLmFw
cGVuZChmbG9vcihbdiBmbG9hdFZhbHVlXSArIDAuNSkpOwogICAgICAgICAgICAgICAgICAgICBk
aWRFdmFsdWF0ZUphdmFTY3JpcHQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH1dOwotICAgICAg
ICAgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRXZhbHVhdGVKYXZhU2NyaXB0
KTsKKyAgICAgICAgICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRFdmFsdWF0ZUph
dmFTY3JpcHQpOwogCiAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgaWN1TG9jYXRpb25zID0g
YnJlYWtpbmdMb2NhdGlvbnNGcm9tSUNVKHRlc3RDb2RlUG9pbnRzLCBsb2NhbGUsIGxpbmVCcmVh
a1ZhbHVlKTsKICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoaWN1TG9jYXRpb25zLnNpemUoKSwg
d2Via2l0TG9jYXRpb25zLnNpemUoKSk7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5t
bQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTEyMSw3ICsx
MjEsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgZGlkTG9hZE1haW5SZXNvdXJjZSA9IGZhbHNlOwog
ICAgICAgICB2aWV3Lm1haW5GcmFtZVVSTCA9IGRvY3VtZW50VVJMLmFic29sdXRlU3RyaW5nOwot
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZExvYWRNYWluUmVzb3VyY2UpOwor
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRMb2FkTWFpblJlc291cmNlKTsKIAog
ICAgICAgICBkZWxlZ2F0ZSA9IFtbVGVzdE5TVVJMU2Vzc2lvbkRhdGFEZWxlZ2F0ZSBhbGxvY10g
aW5pdF07CiAgICAgICAgIGZyYW1lID0gW3ZpZXcgX21haW5Db3JlRnJhbWVdOwpAQCAtMTQ3LDkg
KzE0Nyw5IEBAIFRFU1RfRihXZWJDb3JlTlNVUkxTZXNzaW9uVGVzdCwgQmFzaWNPcGUKICAgICBO
U1VSTFNlc3Npb25EYXRhVGFzayAqdGFzayA9IFtzZXNzaW9uIGRhdGFUYXNrV2l0aFVSTDpyZXNv
dXJjZVVSTF07CiAgICAgW3Rhc2sgcmVzdW1lXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZGlkUmVjaWV2ZVJlc3BvbnNlKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRpZFJlY2lldmVEYXRhKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENvbXBs
ZXRlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRSZWNpZXZlUmVzcG9uc2UpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZFJlY2lldmVEYXRhKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkaWRDb21wbGV0ZSk7CiAKICAgICBkaWRJbnZhbGlkYXRlID0gZmFs
c2U7CiAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBURVNUX0YoV2ViQ29yZU5TVVJMU2Vzc2lvblRlc3Qs
IEJhc2ljT3BlCiAgICAgW3Rhc2sgcmVzdW1lXTsKICAgICBbc2Vzc2lvbiBmaW5pc2hUYXNrc0Fu
ZEludmFsaWRhdGVdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRJbnZhbGlk
YXRlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRJbnZhbGlkYXRlKTsKIAogICAg
IFtzZXNzaW9uIHJlbGVhc2VdOwogfQpAQCAtMTY3LDcgKzE2Nyw3IEBAIFRFU1RfRihXZWJDb3Jl
TlNVUkxTZXNzaW9uVGVzdCwgSW52YWxpZGEKICAgICBXZWJDb3JlTlNVUkxTZXNzaW9uKiBzZXNz
aW9uID0gW1tXZWJDb3JlTlNVUkxTZXNzaW9uIGFsbG9jXSBpbml0V2l0aFJlc291cmNlTG9hZGVy
Oipsb2FkZXIgZGVsZWdhdGU6ZGVsZWdhdGUgZGVsZWdhdGVRdWV1ZTpbTlNPcGVyYXRpb25RdWV1
ZSBtYWluUXVldWVdXTsKICAgICBkaWRJbnZhbGlkYXRlID0gZmFsc2U7CiAgICAgW3Nlc3Npb24g
ZmluaXNoVGFza3NBbmRJbnZhbGlkYXRlXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRpZEludmFsaWRhdGUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEludmFsaWRh
dGUpOwogICAgIFtzZXNzaW9uIHJlbGVhc2VdOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9BYm91dEJsYW5rTG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQWJvdXRCbGFua0xvYWQuY3BwCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9BYm91dEJsYW5rTG9h
ZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAgVEVTVChXZWJLaXQsIEFib3V0
QmxhbmtMb2FkKQogCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhX
S1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWJvdXQ6YmxhbmsiKSkuZ2V0KCkpOwogCi0gICAg
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
Q2FuSGFuZGxlUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvQ2FuSGFuZGxlUmVxdWVzdC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0NhbkhhbmRsZVJlcXVlc3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02OSw3ICs2OSw3IEBAIFRFU1QoV2ViS2l0LCBDYW5IYW5kbGVSZXF1ZXN0
KQogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRl
VVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJodG1sIikpLmdldCgpKTsKIAogICAgIFdLQ29udGV4
dFBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShjb250ZXh0LmdldCgpLCBVdGlsOjp0b1dLKCJD
aGVja0NhbkhhbmRsZVJlcXVlc3QiKS5nZXQoKSwgMCk7Ci0gICAgVXRpbDo6cnVuKCZkaWRSZWNl
aXZlTWVzc2FnZSk7CisgICAgcnVuVW50aWwoZGlkUmVjZWl2ZU1lc3NhZ2UpOwogICAgIEVYUEVD
VF9UUlVFKGNhbkhhbmRsZVJlcXVlc3QpOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZUZyb21XaXRoaW5DcmVhdGVQ
YWdlLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0
LDcgKzg0LDcgQEAgVEVTVChXZWJLaXQsIENsb3NlRnJvbVdpdGhpbkNyZWF0ZVBhZ2UpCiAgICAg
V0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVz
b3VyY2UoImNsb3NlLWZyb20td2l0aGluLWNyZWF0ZS1wYWdlIiwgImh0bWwiKSk7CiAgICAgV0tQ
YWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigm
dGVzdERvbmUpOworICAgIHJ1blVudGlsKHRlc3REb25lKTsKIAogICAgIG9wZW5lZFdlYlZpZXcg
PSBudWxscHRyOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ2xv
c2VUaGVuVGVybWluYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9DbG9zZVRoZW5UZXJtaW5hdGUuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9DbG9zZVRoZW5UZXJtaW5hdGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIFRFU1QoV2ViS2l0LCBDbG9zZVRoZW5UZXJt
aW5hdGUpCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3Jl
YXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwo
d2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJmxvYWRlZCk7Cisg
ICAgcnVuVW50aWwobG9hZGVkKTsKIAogICAgIFdLUGFnZUNsb3NlKHdlYlZpZXcucGFnZSgpKTsK
ICAgICBXS1BhZ2VUZXJtaW5hdGUod2ViVmlldy5wYWdlKCkpOwpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvQ29va2llTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvQ29va2llTWFuYWdlci5jcHAJKHJldmlzaW9u
IDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Nvb2tpZU1hbmFn
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSw3ICs4NSw3IEBAIFRFU1QoV2ViS2l0LCBDb29r
aWVNYW5hZ2VyKQogCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhX
S1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWJvdXQ6YmxhbmsiKSkuZ2V0KCkpOwogCi0gICAg
VXRpbDo6cnVuKCZ0ZXN0RG9uZSk7CisgICAgcnVuVW50aWwodGVzdERvbmUpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwCShy
ZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01X
aW5kb3dFeHRlbnNpb25CYXNpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNCwyNiArMTA0LDI2
IEBAIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNpb24KICAgICBXS1JldGFp
blB0cjxXS1VSTFJlZj4gdXJsMSA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2Uo
InNpbXBsZS1pZnJhbWUiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFn
ZSgpLCB1cmwxLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIHJ1blVu
dGlsKGZpbmlzaGVkKTsKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogICAgIAogICAgIC8vIE1ha2Ug
c3VyZSB0aG9zZSBmaXJzdCA0IGV4dGVuc2lvbnMgYXJlIGRpc2Nvbm5lY3RlZCwgYW5kIDIgbmV3
IG9uZXMgYXJlIGluc3RhbGxlZC4KICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsMiA9IGFk
b3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJodG1sIikpOwogICAg
IFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybDIuZ2V0KCkpOwogCi0gICAgVXRpbDo6
cnVuKCZmaW5pc2hlZCk7CisgICAgcnVuVW50aWwoZmluaXNoZWQpOwogICAgIGZpbmlzaGVkID0g
ZmFsc2U7CiAKICAgICAvLyBNYWtlIHN1cmUgdGhvc2UgdHdvIGFyZSBkaXNjb25uZWN0ZWQsIGFu
ZCB0aGUgZmlyc3QgZm91ciBhcmUgcmVjb25uZWN0ZWQuCiAgICAgV0tQYWdlR29CYWNrKHdlYlZp
ZXcucGFnZSgpKTsKIAotICAgIFV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIHJ1blVudGlsKGZp
bmlzaGVkKTsKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogCiAgICAgLy8gTWFrZSBzdXJlIHRoZSAy
IGRpc2Nvbm5lY3RlZCBleHRlbnNpb25zIGluIHRoZSBwYWdlIGNhY2hlIGFuZCB0aGUgNCBhY3Rp
dmUgZXh0ZW5zaW9ucyBhcmUgYWxsIHJlbW92ZWQuCiAgICAgV0tQYWdlQ2xvc2Uod2ViVmlldy5w
YWdlKCkpOwogCi0gICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgcnVuVW50aWwoZmluaXNo
ZWQpOwogICAgICAgICAKICAgICBjb25zdCBzaXplX3QgZXhwZWN0ZWRTaXplID0gc2l6ZW9mKGV4
cGVjdGVkTWVzc2FnZXMpIC8gc2l6ZW9mKGNvbnN0IGNoYXIqKTsKICAgICBFWFBFQ1RfRVEoZXhw
ZWN0ZWRTaXplLCBtZXNzYWdlcy5zaXplKCkpOwpAQCAtMTYxLDExICsxNjEsMTEgQEAgVEVTVChX
ZWJLaXQsIERPTVdpbmRvd0V4dGVuc2lvbkNyYXNoT25SZQogICAgIFdLUmV0YWluUHRyPFdLVVJM
UmVmPiB1cmwxID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlLWlm
cmFtZSIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybDEu
Z2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgcnVuVW50aWwoZmluaXNo
ZWQpOwogICAgIGZpbmlzaGVkID0gZmFsc2U7CiAKICAgICBXS1BhZ2VSZWxvYWQod2ViVmlldy5w
YWdlKCkpOwotICAgIFV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIHJ1blVudGlsKGZpbmlzaGVk
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5z
aW9uTm9DYWNoZS5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDQsMjUgKzEwNCwyNSBAQCBURVNUKFdlYktpdCwgRElTQUJMRURfRE9NV2luZG93RXh0
ZW5zaW9uCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybDEgPSBhZG9wdFdLKFV0aWw6OmNy
ZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUtaWZyYW1lIiwgImh0bWwiKSk7CiAgICAgV0tQYWdl
TG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsMS5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJmZp
bmlzaGVkKTsKKyAgICBydW5VbnRpbChmaW5pc2hlZCk7CiAgICAgZmluaXNoZWQgPSBmYWxzZTsK
IAogICAgIC8vIE1ha2Ugc3VyZSB0aG9zZSBmaXJzdCA0IGV4dGVuc2lvbnMgYXJlIGRlc3Ryb3ll
ZCwgYW5kIDIgbmV3IG9uZXMgYXJlIGluc3RhbGxlZC4KICAgICBXS1JldGFpblB0cjxXS1VSTFJl
Zj4gdXJsMiA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJo
dG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybDIuZ2V0KCkpOwog
Ci0gICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgcnVuVW50aWwoZmluaXNoZWQpOwogICAg
IGZpbmlzaGVkID0gZmFsc2U7CiAKICAgICAvLyBNYWtlIHN1cmUgdGhvc2UgMiBhcmUgZGVzdHJv
eWVkLCBhbmQgdGhlIGZpcnN0IDQgYXJlIHJlY3JlYXRlZC4KICAgICBXS1BhZ2VHb0JhY2sod2Vi
Vmlldy5wYWdlKCkpOwogCi0gICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgcnVuVW50aWwo
ZmluaXNoZWQpOwogICAgIGZpbmlzaGVkID0gZmFsc2U7CiAKICAgICBXS1BhZ2VDbG9zZSh3ZWJW
aWV3LnBhZ2UoKSk7CiAKLSAgICBVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBydW5VbnRpbChm
aW5pc2hlZCk7CiAKICAgICBjb25zdCBzaXplX3QgZXhwZWN0ZWRTaXplID0gc2l6ZW9mKGV4cGVj
dGVkTWVzc2FnZXMpIC8gc2l6ZW9mKGNvbnN0IGNoYXIqKTsKICAgICBFWFBFQ1RfRVEoZXhwZWN0
ZWRTaXplLCBtZXNzYWdlcy5zaXplKCkpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvRGVmZXJyZWRWaWV3SW5XaW5kb3dTdGF0ZUNoYW5nZS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EZWZlcnJlZFZpZXdJbldpbmRvd1N0
YXRlQ2hhbmdlLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9EZWZlcnJlZFZpZXdJbldpbmRvd1N0YXRlQ2hhbmdlLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC02Miw3ICs2Miw3IEBAIFRFU1QoV2ViS2l0LCBEZWZlcnJlZFZpZXdJbldpbmRvd1N0
YXRlQ2gKIAogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNy
ZWF0ZVVSTEZvclJlc291cmNlKCJsb3RzLW9mLXRleHQiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VM
b2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmlu
aXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgZGlkRmluaXNoTG9h
ZCA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0pTX0ZBTFNFKHdlYlZpZXcucGFnZSgpLCAiZG9jdW1l
bnQuaGlkZGVuIik7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRB
c3NvY2lhdGVGb3JtQ29udHJvbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0RpZEFzc29jaWF0ZUZvcm1Db250cm9scy5jcHAJKHJldmlzaW9uIDI0
NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RpZEFzc29jaWF0ZUZv
cm1Db250cm9scy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDcgKzgyLDcgQEAgVEVTVChXZWJL
aXQsIERpZEFzc29jaWF0ZUZvcm1Db250cm9scykKIAogICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJW
aWV3KGNvbnRleHQuZ2V0KCkpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFk
b3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImFzc29jaWF0ZS1mb3JtLWNvbnRyb2xz
IiwgImh0bWwiKSkuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkUmVjZWl2ZUFsbE1lc3NhZ2Vz
KTsKKyAgICBydW5VbnRpbChkaWRSZWNlaXZlQWxsTWVzc2FnZXMpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9EaWROb3RIYW5kbGVLZXlEb3duLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9EaWROb3RIYW5kbGVLZXlEb3duLmNwcAkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGlkTm90SGFuZGxlS2V5RG93
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAgVEVTVChXZWJLaXQsIERpZE5v
dEhhbmRsZUtleURvd24pCiAKICAgICB3ZWJWaWV3LnNpbXVsYXRlU3BhY2ViYXJLZXlQcmVzcygp
OwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hUZXN0KTsKKyAgICBydW5VbnRpbChkaWRGaW5p
c2hUZXN0KTsKICAgICBFWFBFQ1RfVFJVRShkaWROb3RIYW5kbGVLZXlEb3duRXZlbnQpOwogfQog
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZy
b21IaWVhcmNoeUluUGFnZUNhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlLmNw
cAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
RGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTgyLDIwICs4MiwyMCBAQCBURVNUKFdlYktpdCwgRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJj
aHlJCiAKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5w
YWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoIm1hbnktaWZyYW1lcyIs
ICJodG1sIikpLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBydW5VbnRp
bChmaW5pc2hlZCk7CiAKICAgICAvLyBQZXJmb3JtIGEgY291cGxlIG9mIGxvYWRzIHNvICJtYW55
LWlmcmFtZXMiIGdldHMga2lja2VkIG91dCBvZiB0aGUgUGFnZUNhY2hlLgogICAgIGZpbmlzaGVk
ID0gZmFsc2U7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGls
OjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwgImh0bWwiKSkuZ2V0KCkpOwotICAgIFV0
aWw6OnJ1bigmZmluaXNoZWQpOworICAgIHJ1blVudGlsKGZpbmlzaGVkKTsKIAogICAgIGZpbmlz
aGVkID0gZmFsc2U7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhV
dGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlMiIsICJodG1sIikpLmdldCgpKTsKLSAg
ICBVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBydW5VbnRpbChmaW5pc2hlZCk7CiAKICAgICBm
aW5pc2hlZCA9IGZhbHNlOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0
V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZTMiLCAiaHRtbCIpKS5nZXQoKSk7
Ci0gICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgcnVuVW50aWwoZmluaXNoZWQpOwogCiAg
ICAgRVhQRUNUX0VRKGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeUNvdW50LCAxMCk7CiB9Cklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Eb2N1bWVudFN0YXJ0VXNlclNj
cmlwdEFsZXJ0Q3Jhc2guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAJKHJldmlzaW9u
IDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RvY3VtZW50U3Rh
cnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcg
QEAgVEVTVChXZWJLaXQsIERvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcgogICAgIFdLUmV0YWlu
UHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJz
aW1wbGUiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwu
Z2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvRG93bmxvYWREZWNpZGVEZXN0aW5hdGlvbkNyYXNoLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Eb3dubG9hZERlY2lkZURl
c3RpbmF0aW9uQ3Jhc2guY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9Eb3dubG9hZERlY2lkZURlc3RpbmF0aW9uQ3Jhc2guY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04Miw3ICs4Miw3IEBAIFRFU1QoV2ViS2l0LCBEb3dubG9hZERlY2lkZURl
c3RpbmF0aW9uQ3IKICAgICAvLyB0byBiZSBlcXVhbCBhZnRlciB0aGUgRGVjaWRlRGVzdGluYXRp
b25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUgbWVzc2FnZSBoYXMgYmVlbiBoYW5kbGVkLgogICAgIFdL
UGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVz
b3VyY2UoIjE4LWNoYXJhY3RlcnMiLCAiaHRtbCIpKS5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4o
JmRpZERlY2lkZURlc3RpbmF0aW9uKTsKKyAgICBydW5VbnRpbChkaWREZWNpZGVEZXN0aW5hdGlv
bik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VudW1lcmF0ZU1lZGlhRGV2aWNlcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRW51bWVyYXRlTWVkaWFEZXZp
Y2VzLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRW51bWVyYXRlTWVkaWFEZXZpY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksMTIg
KzY5LDEyIEBAIFRFU1QoV2ViS2l0LCBFbnVtZXJhdGVEZXZpY2VzKQogCiAgICAgLy8gTG9hZCBh
bmQga2lsbCB0aGUgcGFnZS4KICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwu
Z2V0KCkpOwotICAgIFV0aWw6OnJ1bigmbG9hZGVkRmlyc3RUaW1lKTsKKyAgICBydW5VbnRpbChs
b2FkZWRGaXJzdFRpbWUpOwogICAgIFdLUGFnZVRlcm1pbmF0ZSh3ZWJWaWV3LnBhZ2UoKSk7CiAK
ICAgICAvLyBMb2FkIGl0IGFnYWluIHRvIG1ha2Ugc3VyZSB0aGUgdXNlciBtZWRpYSBwcm9jZXNz
IG1hbmFnZXIgZG9lc24ndCBhc3NlcnQuCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2Uo
KSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmxvYWRlZFNlY29uZFRpbWUpOworICAgIHJ1
blVudGlsKGxvYWRlZFNlY29uZFRpbWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FcGhlbWVyYWxTZXNz
aW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0VwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3Rv
cnlDYWxsYmFjay5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0VwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcgKzg2LDcgQEAgVEVTVChXZWJLaXQsIEVwaGVtZXJh
bFNlc3Npb25QdXNoU3RhdGVObwogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9w
dFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJwdXNoLXN0YXRlIiwgImh0bWwiKSk7CiAg
ICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAotICAgIFV0aWw6
OnJ1bigmdGVzdERvbmUpOworICAgIHJ1blVudGlsKHRlc3REb25lKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvRXZhbHVhdGVKYXZhU2NyaXB0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9FdmFsdWF0ZUphdmFTY3JpcHQuY3BwCShyZXZpc2lvbiAyNDU1MTYp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9FdmFsdWF0ZUphdmFTY3JpcHQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIFRFU1QoV2ViS2l0LCBFdmFsdWF0
ZUphdmFTY3JpcHRUaGF0VGhyb3cKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gamF2YVNj
cmlwdFN0cmluZyA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInRocm93
ICdIZWxsbyciKSk7CiAgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHdlYlZpZXcu
cGFnZSgpLCBqYXZhU2NyaXB0U3RyaW5nLmdldCgpLCByZWludGVycHJldF9jYXN0PHZvaWQqPigw
eDEyMzQ1NzgpLCBkaWRSdW5KYXZhU2NyaXB0KTsKIAotICAgIFV0aWw6OnJ1bigmdGVzdERvbmUp
OworICAgIHJ1blVudGlsKHRlc3REb25lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRXZlbnRNb2RpZmll
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0V2
ZW50TW9kaWZpZXJzLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvRXZlbnRNb2RpZmllcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSwx
MCArNzEsMTAgQEAgVEVTVChXZWJLaXQsIEV2ZW50TW9kaWZpZXJzKQogICAgIAogICAgIFdLUmV0
YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNl
KCJzaW1wbGUiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1
cmwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwo
ZGlkRmluaXNoTG9hZCk7CiAgICAgCiAgICAgd2ViVmlldy5zaW11bGF0ZU1vdXNlTW92ZSgxMCwg
MTAsIGtXS0V2ZW50TW9kaWZpZXJzQ29udHJvbEtleSk7Ci0gICAgVXRpbDo6cnVuKCZtb3VzZU1v
dmVDYWxsYmFja0ZpbmlzaGVkKTsKKyAgICBydW5VbnRpbChtb3VzZU1vdmVDYWxsYmFja0Zpbmlz
aGVkKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmFpbGVkTG9hZC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmFpbGVkTG9hZC5jcHAJKHJldmlzaW9uIDI0
NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZhaWxlZExvYWQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIFRFU1QoV2ViS2l0LCBGYWlsZWRMb2Fk
KQogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OlVSTEZvck5v
bkV4aXN0ZW50UmVzb3VyY2UoKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwg
dXJsLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmdGVzdERvbmUpOworICAgIHJ1blVudGlsKHRl
c3REb25lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmluZC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRmluZC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZpbmQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03MywxMiArNzMsMTIgQEAgVEVTVChXZWJLaXQsIEZpbmQpCiAgICAgV0tSZXRhaW5QdHI8
V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImZpbmQi
LCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkp
OwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5p
c2hMb2FkKTsKIAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBmaW5kU3RyaW5nID0gYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSGVsbG8iKSk7CiAgICAgV0tQYWdl
Q291bnRTdHJpbmdNYXRjaGVzKHdlYlZpZXcucGFnZSgpLCBmaW5kU3RyaW5nLmdldCgpLCB0cnVl
LCAxMDApOwogCi0gICAgVXRpbDo6cnVuKCZkaWRDYWxsQ291bnRTdHJpbmdNYXRjaGVzKTsKKyAg
ICBydW5VbnRpbChkaWRDYWxsQ291bnRTdHJpbmdNYXRjaGVzKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
RmluZE1hdGNoZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRmluZE1hdGNoZXMubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0ZpbmRNYXRjaGVzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMs
MTcgKzE0MywxNyBAQCBURVNUKFdlYktpdCwgRmluZE1hdGNoZXMpCiAgICAgV0tSZXRhaW5QdHI8
V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImZpbmRS
YW5nZXMiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwu
Z2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChk
aWRGaW5pc2hMb2FkKTsKIAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBmaW5kU3RyaW5n
ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSGVsbG8iKSk7CiAKICAg
ICBXS1BhZ2VGaW5kU3RyaW5nTWF0Y2hlcyh3ZWJWaWV3LnBhZ2UoKSwgZmluZFN0cmluZy5nZXQo
KSwgZmluZE9wdGlvbnMsIDEwMCk7Ci0gICAgVXRpbDo6cnVuKCZkaWRDYWxsRmluZFN0cmluZ01h
dGNoZXMpOworICAgIHJ1blVudGlsKGRpZENhbGxGaW5kU3RyaW5nTWF0Y2hlcyk7CiAKICAgICBk
aWRDYWxsRmluZFN0cmluZ01hdGNoZXMgPSBmYWxzZTsKICAgICBmaW5kT3B0aW9ucyB8PSBrV0tG
aW5kT3B0aW9uc0JhY2t3YXJkczsKICAgICBXS1BhZ2VGaW5kU3RyaW5nTWF0Y2hlcyh3ZWJWaWV3
LnBhZ2UoKSwgZmluZFN0cmluZy5nZXQoKSwgZmluZE9wdGlvbnMsIDEwMCk7Ci0gICAgVXRpbDo6
cnVuKCZkaWRDYWxsRmluZFN0cmluZ01hdGNoZXMpOworICAgIHJ1blVudGlsKGRpZENhbGxGaW5k
U3RyaW5nTWF0Y2hlcyk7CiAKICAgICB3ZWJraXQxVmlldyA9IGFkb3B0TlMoW1tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTIwLCAyMDApIGZyYW1lTmFtZTpu
aWwgZ3JvdXBOYW1lOm5pbF0pOwogICAgIFJldGFpblB0cjxGaW5kTWF0Y2hlc1dLMUZyYW1lTG9h
ZERlbGVnYXRlPiBmcmFtZUxvYWREZWxlZ2F0ZSA9IGFkb3B0TlMoW0ZpbmRNYXRjaGVzV0sxRnJh
bWVMb2FkRGVsZWdhdGUgbmV3XSk7CkBAIC0xNjEsMTYgKzE2MSwxNiBAQCBURVNUKFdlYktpdCwg
RmluZE1hdGNoZXMpCiAgICAgd2Via2l0MVZpZXcuZ2V0KCkuZnJhbWVMb2FkRGVsZWdhdGUgPSBm
cmFtZUxvYWREZWxlZ2F0ZS5nZXQoKTsKICAgICBbd2Via2l0MVZpZXcuZ2V0KCkubWFpbkZyYW1l
IGxvYWRIVE1MU3RyaW5nOkAiVGVzdCBzZWFyY2guIEhlbGxvIDxzcGFuIGlkPVwidGFyZ2V0XCI+
SGVsbG88L3NwYW4+IEhlbGxvISIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0
OmJsYW5rIl1dOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkV0sxKTsKKyAgICBydW5V
bnRpbChkaWRGaW5pc2hMb2FkV0sxKTsKIAogICAgIFdLUGFnZUdldEltYWdlRm9yRmluZE1hdGNo
KHdlYlZpZXcucGFnZSgpLCAwKTsKLSAgICBVdGlsOjpydW4oJmRpZENhbGxHZXRJbWFnZSk7Cisg
ICAgcnVuVW50aWwoZGlkQ2FsbEdldEltYWdlKTsKIAogICAgIGRpZENhbGxGaW5kU3RyaW5nTWF0
Y2hlcyA9IGZhbHNlOwogICAgIGZpbmRPcHRpb25zICY9IH5rV0tGaW5kT3B0aW9uc0JhY2t3YXJk
czsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gZmluZE90aGVyU3RyaW5nID0gYWRvcHRX
SyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiY3JhenkiKSk7CiAgICAgV0tQYWdlRmlu
ZFN0cmluZ01hdGNoZXMod2ViVmlldy5wYWdlKCksIGZpbmRPdGhlclN0cmluZy5nZXQoKSwgZmlu
ZE9wdGlvbnMsIDEwMCk7Ci0gICAgVXRpbDo6cnVuKCZkaWRDYWxsRmluZFN0cmluZ01hdGNoZXMp
OworICAgIHJ1blVudGlsKGRpZENhbGxGaW5kU3RyaW5nTWF0Y2hlcyk7CiAKICAgICBXS1BhZ2VI
aWRlRmluZFVJKHdlYlZpZXcucGFnZSgpKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0ZpcnN0TWVhbmluZ2Z1bFBhaW50TWlsZXN0b25lLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9GaXJzdE1lYW5pbmdmdWxQYWlu
dE1pbGVzdG9uZS5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0ZpcnN0TWVhbmluZ2Z1bFBhaW50TWlsZXN0b25lLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjEsNyArNjEsNyBAQCBURVNUKFdlYktpdCwgRmlyc3RNZWFuaW5nZnVsUGFpbnQp
CiAKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9wdFdLKFV0aWw6OmNyZWF0
ZVVSTEZvclJlc291cmNlKCJsb3RzLW9mLXRleHQiLCAiaHRtbCIpKS5nZXQoKSk7CiAKLSAgICBV
dGlsOjpydW4oJmRpZFVubG9ja0Zpc3RNZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmUpOworICAgIHJ1
blVudGlsKGRpZFVubG9ja0Zpc3RNZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmUpOwogICAgIEVYUEVD
VF9UUlVFKGRpZFVubG9ja0Zpc3RNZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmUpOwogfQogCkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9GaXJzdFZpc3VhbGx5Tm9uRW1wdHlN
aWxlc3RvbmVXaXRoRGVmZXJyZWRTY3JpcHQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0b25lV2l0aERl
ZmVycmVkU2NyaXB0Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9GaXJzdFZpc3VhbGx5Tm9uRW1wdHlNaWxlc3RvbmVXaXRoRGVmZXJyZWRT
Y3JpcHQubW0JKHdvcmtpbmcgY29weSkKQEAgLTY4LDYgKzY4LDYgQEAgVEVTVChXZWJLaXQsIEZp
cnN0VmlzdWFsbHlOb25FbXB0eU1pbGVzdAogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAiZGVmZXJyZWQtc2NyaXB0LWxvYWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwocmVjZWl2ZWRNZXNzYWdlKTsKICAgICBFWFBFQ1RfVFJVRShkaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXQpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvRm9yY2VSZXBhaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9Gb3JjZVJlcGFpbnQuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Gb3JjZVJlcGFpbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02NSw4ICs2NSw4IEBAIFRFU1QoV2ViS2l0LCBGb3JjZVJlcGFpbnQpCiAgICAgV0tSZXRh
aW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2Uo
InNpbXBsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZyIsICJodG1sIikpOwogICAgIFdLUGFnZUxv
YWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJnRlc3Qx
RG9uZSk7Ci0gICAgVXRpbDo6cnVuKCZ0ZXN0MkRvbmUpOworICAgIHJ1blVudGlsKHRlc3QxRG9u
ZSk7CisgICAgcnVuVW50aWwodGVzdDJEb25lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRnJhbWVIYW5k
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Zy
YW1lSGFuZGxlLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvRnJhbWVIYW5kbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3
IEBAIFRFU1QoV2ViS2l0LCBGcmFtZUhhbmRsZSkKICAgICBXS1BhZ2VTZXRQYWdlTmF2aWdhdGlv
bkNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJmxvYWRlckNsaWVudC5iYXNlKTsKIAogICAgIFdLUGFn
ZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJp
bmcoImFib3V0OmJsYW5rIikpLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1
blVudGlsKGRvbmUpOwogCiAgICAgYXV0byBmcmFtZSA9IFdLUGFnZUdldE1haW5GcmFtZSh3ZWJW
aWV3LnBhZ2UoKSk7CiAgICAgYXV0byBmcmFtZUluZm8gPSBhZG9wdFdLKFdLRnJhbWVDcmVhdGVG
cmFtZUluZm8oZnJhbWUpKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0ZyYW1lTUlNRVR5cGVIVE1MLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9GcmFtZU1JTUVUeXBlSFRNTC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZyYW1lTUlNRVR5cGVIVE1MLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzQsNyArNzQsNyBAQCBURVNUKFdlYktpdCwgRnJhbWVNSU1FVHlw
ZUhUTUwpCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3Jl
YXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwo
d2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJnRlc3REb25lKTsK
KyAgICBydW5VbnRpbCh0ZXN0RG9uZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0ZyYW1lTUlNRVR5cGVQ
TkcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0Zy
YW1lTUlNRVR5cGVQTkcuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9GcmFtZU1JTUVUeXBlUE5HLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzMsNyArNzMsNyBAQCBURVNUKFdlYktpdCwgRnJhbWVNSU1FVHlwZVBORykKICAgICBXS1JldGFp
blB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgi
aWNvbiIsICJwbmciKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdl
dCgpKTsKIAotICAgIFV0aWw6OnJ1bigmdGVzdERvbmUpOworICAgIHJ1blVudGlsKHRlc3REb25l
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvR2VvbG9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dlb2xvY2F0aW9uLmNwcAkocmV2aXNpb24gMjQ1
NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2VvbG9jYXRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNyArMTcyLDcgQEAgVEVTVChXZWJLaXQsIEdlb2xvY2F0
aW9uQmFzaWMpCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6
Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uIiwgImh0
bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAot
ICAgIFV0aWw6OnJ1bigmc3RhdGVUcmFja2VyLmZpbmlzaGVkKTsKKyAgICBydW5VbnRpbChzdGF0
ZVRyYWNrZXIuZmluaXNoZWQpOwogICAgIGNsZWFyR2VvbG9jYXRpb25Qcm92aWRlcihjb250ZXh0
LmdldCgpKTsKIH0KIApAQCAtMjE0LDcgKzIxNCw3IEBAIFRFU1QoV2ViS2l0LCBHZW9sb2NhdGlv
bkJhc2ljV2l0aEhpZ2hBY2MKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRX
SyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRp
b25XaXRoSGlnaEFjY3VyYWN5IiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3
LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmc3RhdGVUcmFja2VyLmZpbmlz
aGVkKTsKKyAgICBydW5VbnRpbChzdGF0ZVRyYWNrZXIuZmluaXNoZWQpOwogICAgIGNsZWFyR2Vv
bG9jYXRpb25Qcm92aWRlcihjb250ZXh0LmdldCgpKTsKIH0KIApAQCAtMjY1LDE5ICsyNjUsMTkg
QEAgVEVTVChXZWJLaXQsIEdlb2xvY2F0aW9uVHJhbnNpdGlvblRvSGlnaAogICAgIHNldHVwVmll
dyhsb3dBY2N1cmFjeVdlYlZpZXcpOwogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiBsb3dBY2N1
cmFjeVVSTCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImdlb2xvY2F0aW9u
V2F0Y2hQb3NpdGlvbiIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwobG93QWNjdXJhY3lX
ZWJWaWV3LnBhZ2UoKSwgbG93QWNjdXJhY3lVUkwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmc3Rh
dGVUcmFja2VyLmZpbmlzaGVkRmlyc3RTdGVwKTsKKyAgICBydW5VbnRpbChzdGF0ZVRyYWNrZXIu
ZmluaXNoZWRGaXJzdFN0ZXApOwogCiAgICAgUGxhdGZvcm1XZWJWaWV3IGhpZ2hBY2N1cmFjeVdl
YlZpZXcobG93QWNjdXJhY3lXZWJWaWV3LnBhZ2UoKSk7CiAgICAgc2V0dXBWaWV3KGhpZ2hBY2N1
cmFjeVdlYlZpZXcpOwogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiBoaWdoQWNjdXJhY3lVUkwg
PSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJnZW9sb2NhdGlvbldhdGNoUG9z
aXRpb25XaXRoSGlnaEFjY3VyYWN5IiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTChoaWdo
QWNjdXJhY3lXZWJWaWV3LnBhZ2UoKSwgaGlnaEFjY3VyYWN5VVJMLmdldCgpKTsKLSAgICBVdGls
OjpydW4oJnN0YXRlVHJhY2tlci5lbmFibGVkSGlnaEFjY3VyYWN5KTsKKyAgICBydW5VbnRpbChz
dGF0ZVRyYWNrZXIuZW5hYmxlZEhpZ2hBY2N1cmFjeSk7CiAgICAgCiAgICAgV0tSZXRhaW5QdHI8
V0tVUkxSZWY+IHJlc2V0VXJsID0gYWRvcHRXSyhXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygi
YWJvdXQ6YmxhbmsiKSk7CiAgICAgV0tQYWdlTG9hZFVSTChoaWdoQWNjdXJhY3lXZWJWaWV3LnBh
Z2UoKSwgcmVzZXRVcmwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmc3RhdGVUcmFja2VyLmVuYWJs
ZWRIaWdoQWNjdXJhY3kpOworICAgIHJ1blVudGlsKHN0YXRlVHJhY2tlci5lbmFibGVkSGlnaEFj
Y3VyYWN5KTsKICAgICBXS1BhZ2VMb2FkVVJMKGxvd0FjY3VyYWN5V2ViVmlldy5wYWdlKCksIHJl
c2V0VXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJnN0YXRlVHJhY2tlci5maW5pc2hlZCk7Cisg
ICAgcnVuVW50aWwoc3RhdGVUcmFja2VyLmZpbmlzaGVkKTsKIAogICAgIGNsZWFyR2VvbG9jYXRp
b25Qcm92aWRlcihjb250ZXh0LmdldCgpKTsKIH0KQEAgLTMzOCw3ICszMzgsNyBAQCBURVNUKFdl
YktpdCwgR2VvbG9jYXRpb25UcmFuc2l0aW9uVG9Mb3dBCiAgICAgc2V0dXBWaWV3KGhpZ2hBY2N1
cmFjeVdlYlZpZXcpOwogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiBoaWdoQWNjdXJhY3lVUkwg
PSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJnZW9sb2NhdGlvbldhdGNoUG9z
aXRpb25XaXRoSGlnaEFjY3VyYWN5IiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTChoaWdo
QWNjdXJhY3lXZWJWaWV3LnBhZ2UoKSwgaGlnaEFjY3VyYWN5VVJMLmdldCgpKTsKLSAgICBVdGls
OjpydW4oJnN0YXRlVHJhY2tlci5maW5pc2hlZEZpcnN0U3RlcCk7CisgICAgcnVuVW50aWwoc3Rh
dGVUcmFja2VyLmZpbmlzaGVkRmlyc3RTdGVwKTsKIAogICAgIFBsYXRmb3JtV2ViVmlldyBsb3dB
Y2N1cmFjeVdlYlZpZXcoY29udGV4dC5nZXQoKSk7CiAgICAgc2V0dXBWaWV3KGxvd0FjY3VyYWN5
V2ViVmlldyk7CkBAIC0zNTUsMTYgKzM1NSwxNiBAQCBURVNUKFdlYktpdCwgR2VvbG9jYXRpb25U
cmFuc2l0aW9uVG9Mb3dBCiAKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gbG93QWNjdXJhY3lV
UkwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJnZW9sb2NhdGlvbldhdGNo
UG9zaXRpb24iLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKGxvd0FjY3VyYWN5V2ViVmll
dy5wYWdlKCksIGxvd0FjY3VyYWN5VVJMLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJnNlY29uZFN0
ZXBDb250ZXh0LmRpZFJ1bik7CisgICAgcnVuVW50aWwoc2Vjb25kU3RlcENvbnRleHQuZGlkUnVu
KTsKICAgICBFWFBFQ1RfRVEoc2Vjb25kU3RlcENvbnRleHQuYWxlcnRUZXh0LCAiU1VDQ0VTUyIp
OwogCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHJlc2V0VXJsID0gYWRvcHRXSyhXS1VSTENy
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiYWJvdXQ6YmxhbmsiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCho
aWdoQWNjdXJhY3lXZWJWaWV3LnBhZ2UoKSwgcmVzZXRVcmwuZ2V0KCkpOwogCi0gICAgVXRpbDo6
cnVuKCZzdGF0ZVRyYWNrZXIuZGlzYWJsZWRIaWdoQWNjdXJhY3kpOworICAgIHJ1blVudGlsKHN0
YXRlVHJhY2tlci5kaXNhYmxlZEhpZ2hBY2N1cmFjeSk7CiAKICAgICBXS1BhZ2VMb2FkVVJMKGxv
d0FjY3VyYWN5V2ViVmlldy5wYWdlKCksIHJlc2V0VXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4o
JnN0YXRlVHJhY2tlci5maW5pc2hlZCk7CisgICAgcnVuVW50aWwoc3RhdGVUcmFja2VyLmZpbmlz
aGVkKTsKIAogICAgIGNsZWFyR2VvbG9jYXRpb25Qcm92aWRlcihjb250ZXh0LmdldCgpKTsKIH0K
QEAgLTM4OSw3ICszODksNyBAQCBURVNUKFdlYktpdCwgR2VvbG9jYXRpb25XYXRjaE11bHRpcHJv
Y2VzCiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHZpZXcxLnBhZ2UoKSwgJnVpQ2xpZW50LmJh
c2UpOwogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0
ZVVSTEZvclJlc291cmNlKCJnZW9sb2NhdGlvbldhdGNoUG9zaXRpb24iLCAiaHRtbCIpKTsKICAg
ICBXS1BhZ2VMb2FkVVJMKHZpZXcxLnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4o
JnRlc3RDb250ZXh0LmRpZFJ1bik7CisgICAgcnVuVW50aWwodGVzdENvbnRleHQuZGlkUnVuKTsK
ICAgICBFWFBFQ1RfRVEodGVzdENvbnRleHQuYWxlcnRUZXh0LCAiU1VDQ0VTUyIpOwogICAgIFdL
UGFnZVNldFBhZ2VVSUNsaWVudCh2aWV3MS5wYWdlKCksIG51bGxwdHIpOwogCkBAIC0zOTksNyAr
Mzk5LDcgQEAgVEVTVChXZWJLaXQsIEdlb2xvY2F0aW9uV2F0Y2hNdWx0aXByb2NlcwogICAgIFBs
YXRmb3JtV2ViVmlldyB2aWV3Mihjb250ZXh0LmdldCgpKTsKICAgICBXS1BhZ2VTZXRQYWdlVUlD
bGllbnQodmlldzIucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CiAgICAgV0tQYWdlTG9hZFVSTCh2
aWV3Mi5wYWdlKCksIHVybC5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZ0ZXN0Q29udGV4dC5kaWRS
dW4pOworICAgIHJ1blVudGlsKHRlc3RDb250ZXh0LmRpZFJ1bik7CiAgICAgRVhQRUNUX0VRKHRl
c3RDb250ZXh0LmFsZXJ0VGV4dCwgIlNVQ0NFU1MiKTsKIAogICAgIGNsZWFyR2VvbG9jYXRpb25Q
cm92aWRlcihjb250ZXh0LmdldCgpKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0dldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRJbmpl
Y3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFjay5jcHAJKHJldmlzaW9uIDI0
NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldEluamVjdGVkQnVu
ZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjQsNyArNjQsNyBAQCBURVNUKFdlYktpdCwgR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphCiAg
ICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9y
UmVzb3VyY2UoInNpbXBsZSIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5w
YWdlKCksIHVybC5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGls
KGRvbmUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYU5h
dmlnYXRpb24ubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0dldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTc5
LDcgKzc5LDcgQEAgVEVTVChXZWJLaXQsIE5hdmlnYXRlRHVyaW5nR2V0VXNlck1lZGlhUAogCiAg
ICAgc2hvdWxkUmVsZWFzZUluRW51bWVyYXRlID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFRl
c3RQYWdlTmFtZWQ6QCJnZXRVc2VyTWVkaWEiXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJm9rVG9Qcm9jZWVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChva1RvUHJvY2Vl
ZCk7CiB9CiAKIFRFU1QoV2ViS2l0LCBOYXZpZ2F0ZUR1cmluZ0RldmljZUVudW1lcmF0aW9uKQpA
QCAtOTYsNyArOTYsNyBAQCBURVNUKFdlYktpdCwgTmF2aWdhdGVEdXJpbmdEZXZpY2VFbnVtZXJh
CiAKICAgICBzaG91bGRSZWxlYXNlSW5FbnVtZXJhdGUgPSB0cnVlOwogICAgIFt3ZWJWaWV3IGxv
YWRUZXN0UGFnZU5hbWVkOkAiZW51bWVyYXRlTWVkaWFEZXZpY2VzIl07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZva1RvUHJvY2VlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwob2tUb1Byb2NlZWQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWFSZXByb21wdC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2Vy
TWVkaWFSZXByb21wdC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhUmVwcm9tcHQubW0JKHdvcmtpbmcgY29weSkKQEAg
LTkyLDcgKzkyLDcgQEAgVEVTVChXZWJLaXQyLCBHZXRVc2VyTWVkaWFSZXByb21wdCkKIAogICAg
IHdhc1Byb21wdGVkID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJn
ZXRVc2VyTWVkaWEiXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJndhc1Byb21wdGVk
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbCh3YXNQcm9tcHRlZCk7CiAKICAgICBFWFBF
Q1RfVFJVRShbd2ViVmlldyBoYXZlU3RyZWFtOllFU10pOwogCkBAIC0xMTMsNyArMTEzLDcgQEAg
VEVTVChXZWJLaXQyLCBHZXRVc2VyTWVkaWFSZXByb21wdCkKIAogICAgIHdhc1Byb21wdGVkID0g
ZmFsc2U7CiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInByb21w
dEZvckNhcHR1cmUoKSJdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmd2FzUHJvbXB0
ZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHdhc1Byb21wdGVkKTsKICAgICBFWFBF
Q1RfVFJVRShbd2ViVmlldyBoYXZlU3RyZWFtOllFU10pOwogfQogCkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9IaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSGl0VGVzdFJlc3VsdE5v
ZGVIYW5kbGUuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9IaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTgxLDExICs4MSwxMSBAQCBURVNUKFdlYktpdCwgSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUpCiAg
ICAgc2V0UGFnZUxvYWRlckNsaWVudCh3ZWJWaWV3LnBhZ2UoKSk7CiAKICAgICBXS1BhZ2VMb2Fk
VVJMKHdlYlZpZXcucGFnZSgpLCBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJz
aW1wbGUiLCAiaHRtbCIpKS5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsK
KyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7
CiAKICAgICB3ZWJWaWV3LnNpbXVsYXRlUmlnaHRDbGljaygxMCwgMTApOwotICAgIFV0aWw6OnJ1
bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVk
QnVuZGxlQmFzaWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0luamVjdGVkQnVuZGxlQmFzaWMuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZUJhc2ljLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNyBAQCBURVNUKFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVC
YXNpYykKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVh
dGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3
ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAg
cnVuVW50aWwoZG9uZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92
ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0Jl
aGF2aW9yLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsNyBAQCBURVNUKFdlYktpdCwgSW5qZWN0ZWRC
dW5kbGVOb0Rpc2FibGVPdmVyCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0
V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoIm92ZXJyaWRlLWJ1aWx0aW5zLXRlc3QiLCAi
aHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwog
Ci0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKIH0KIAogc3RhdGlj
IHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0RGlzYWJsZWQoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5n
UmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
QEAgLTEwMiw3ICsxMDIsNyBAQCBURVNUKFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3Zl
cnJpCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRl
VVJMRm9yUmVzb3VyY2UoIm92ZXJyaWRlLWJ1aWx0aW5zLXRlc3QiLCAiaHRtbCIpKTsKICAgICBX
S1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVu
KCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRC
dW5kbGVGcmFtZUhpdFRlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0LmNwcAkocmV2aXNpb24gMjQ1
NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVG
cmFtZUhpdFRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIFRFU1QoV2Vi
S2l0LCBJbmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVzdCkKIAogICAgIFdLUGFnZUxvYWRVUkwod2Vi
Vmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImxpbmstd2l0
aC10aXRsZSIsICJodG1sIikpLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAg
cnVuVW50aWwoZG9uZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlSW5pdGlhbGl6
YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2lucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRh
Q2FsbGJhY2tXaW5zLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJh
Y2tXaW5zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNyBAQCBURVNUKFdlYktpdCwg
SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVy
bCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJodG1sIikp
OwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAKLSAgICBV
dGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGlsKGRvbmUpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9J
bmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRv
d1Jvb3RzT3Blbi5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKFdlYktpdCwgSW5qZWN0ZWRCdW5k
bGVNYWtlQWxsU2hhZG93CiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0so
VXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImNsb3NlZC1zaGFkb3ctdHJlZS10ZXN0IiwgImh0
bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAot
ICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiB9CiAgICAgCiB9IC8v
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9MYXlvdXRNaWxlc3RvbmVzV2l0aEFsbENvbnRlbnRJbkZyYW1lLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9MYXlvdXRNaWxlc3RvbmVz
V2l0aEFsbENvbnRlbnRJbkZyYW1lLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5G
cmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAgVEVTVChXZWJLaXQsIExh
eW91dE1pbGVzdG9uZXNXaXRoQWxsQ29udAogICAgIFdLUGFnZUxpc3RlbkZvckxheW91dE1pbGVz
dG9uZXMod2ViVmlldy5wYWdlKCksIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXQpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCks
IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImFsbC1jb250ZW50LWluLW9uZS1p
ZnJhbWUiLCAiaHRtbCIpKS5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dCk7CisgICAgcnVuVW50aWwoZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0KTsKICAgICBFWFBFQ1RfVFJVRShkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQp
OwogfQogCkBAIC05MywyNiArOTMsMjYgQEAgVEVTVChXZWJLaXQsIEZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dAogICAgIFdLUGFnZUxpc3RlbkZvckxheW91dE1pbGVzdG9uZXMod2ViVmlldy5w
YWdlKCksIFdLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXQpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6
Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZS10YWxsIiwgImh0bWwiKSkuZ2V0KCkpOwogCi0g
ICAgVXRpbDo6cnVuKCZkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOworICAgIHJ1blVu
dGlsKGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCk7CiAgICAgRVhQRUNUX1RSVUUoZGlk
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KTsKICAgICBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXQgPSBmYWxzZTsKLSAgICBVdGlsOjpydW4oJmRpZE5hdmlnYXRlKTsKKyAgICBydW5V
bnRpbChkaWROYXZpZ2F0ZSk7CiAgICAgRVhQRUNUX1RSVUUoZGlkTmF2aWdhdGUpOwogICAgIGRp
ZE5hdmlnYXRlID0gZmFsc2U7CiAKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBh
ZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJsYXJnZS1yZWQtc3F1YXJlLWltYWdl
IiwgImh0bWwiKSkuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0KTsKKyAgICBydW5VbnRpbChkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQp
OwogICAgIEVYUEVDVF9UUlVFKGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCk7CiAgICAg
ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0ID0gZmFsc2U7Ci0gICAgVXRpbDo6cnVuKCZk
aWROYXZpZ2F0ZSk7CisgICAgcnVuVW50aWwoZGlkTmF2aWdhdGUpOwogICAgIEVYUEVDVF9UUlVF
KGRpZE5hdmlnYXRlKTsKICAgICBkaWROYXZpZ2F0ZSA9IGZhbHNlOwogCiAgICAgV0tQYWdlR29C
YWNrKHdlYlZpZXcucGFnZSgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dCk7CisgICAgcnVuVW50aWwoZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
KTsKICAgICBFWFBFQ1RfVFJVRShkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOwogICAg
IGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCA9IGZhbHNlOwotICAgIFV0aWw6OnJ1bigm
ZGlkTmF2aWdhdGUpOworICAgIHJ1blVudGlsKGRpZE5hdmlnYXRlKTsKICAgICBFWFBFQ1RfVFJV
RShkaWROYXZpZ2F0ZSk7CiAgICAgZGlkTmF2aWdhdGUgPSBmYWxzZTsKIH0KQEAgLTEzNSw3ICsx
MzUsNyBAQCBURVNUKFdlYktpdCwgRmlyc3RWaXN1YWxseU5vbkVtcHR5TWlsZXN0CiAgICAgV0tQ
YWdlTGlzdGVuRm9yTGF5b3V0TWlsZXN0b25lcyh3ZWJWaWV3LnBhZ2UoKSwgV0tQYWdlUmVuZGVy
aW5nUHJvZ3Jlc3NFdmVudEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCk7CiAgICAgV0tQYWdl
TG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJj
ZSgiYXN5bmMtc2NyaXB0LWxvYWQiLCAiaHRtbCIpKS5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4o
JmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCk7CisgICAgcnVuVW50aWwoZGlkRmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0KTsKICAgICBFWFBFQ1RfVFJVRShkaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXQpOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9Mb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0xvYWRBbHRlcm5hdGVI
VE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0xvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0
aE5vbkRpcmVjdG9yeVVSTC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcgQEAgc3Rh
dGljIHZvaWQgbG9hZEFsdGVybmF0ZUhUTUxTdHJpbmcoV0tVUgogICAgIFdLUGFnZUxvYWRBbHRl
cm5hdGVIVE1MU3RyaW5nKHdlYlZpZXcucGFnZSgpLCBhbHRlcm5hdGVIVE1MU3RyaW5nLmdldCgp
LCBiYXNlVVJMLCB1bnJlYWNoYWJsZVVSTCk7CiAKICAgICAvLyBJZiB3ZSBjYW4gZmluaXNoIGxv
YWRpbmcgdGhlIGh0bWwgd2l0aG91dCByZXN1bHRpbmcgaW4gYW4gaW52YWxpZCBtZXNzYWdlIGJl
aW5nIHNlbnQgZnJvbSB0aGUgV2ViUHJvY2VzcywgdGhpcyB0ZXN0IHBhc3Nlcy4KLSAgICBVdGls
OjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogfQog
CiBURVNUKFdlYktpdCwgTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJM
KQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTG9hZENhbmNlbGVkTm9T
ZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9Mb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2suY3Bw
CShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9M
b2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04Miw3ICs4Miw3IEBAIFRFU1QoV2ViS2l0LCBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWMK
IAogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVS
TEZvclJlc291cmNlKCJzaW1wbGUtaWZyYW1lIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVS
TCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmxvYWRlZEFsbEZy
YW1lcyk7CisgICAgcnVuVW50aWwobG9hZGVkQWxsRnJhbWVzKTsKICAgICAKICAgICAvLyBXZSBz
aG91bGRuJ3QgaGF2ZSBwZXJmb3JtZWQgYSBzZXJ2ZXIgcmVkaXJlY3Qgd2hlbiB0aGUgaWZyYW1l
IGxvYWQgd2FzIGNhbmNlbGxlZC4KICAgICBFWFBFQ1RfRkFMU0UocGVyZm9ybWVkU2VydmVyUmVk
aXJlY3QpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTG9hZFBhZ2VP
bkNyYXNoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9Mb2FkUGFnZU9uQ3Jhc2guY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9Mb2FkUGFnZU9uQ3Jhc2guY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC05OSwxMCArOTksMTAgQEAgVEVTVChXZWJLaXQsIExvYWRQYWdlQWZ0ZXJDcmFzaCkKIHsKICAg
ICBXZWJLaXQyQ3Jhc2hMb2FkZXIgaGVscGVyOwogICAgIGhlbHBlci5sb2FkVXJsKCk7Ci0gICAg
VXRpbDo6cnVuKCZoZWxwZXIuZmlyc3RTdWNjZXNzZnVsTG9hZCk7CisgICAgcnVuVW50aWwoaGVs
cGVyLmZpcnN0U3VjY2Vzc2Z1bExvYWQpOwogICAgIGhlbHBlci50ZXJtaW5hdGVXZWJQcm9jZXNz
KCk7CiAgICAgaGVscGVyLmxvYWRVcmwoKTsKLSAgICBVdGlsOjpydW4oJmhlbHBlci5zZWNvbmRT
dWNjZXNzZnVsTG9hZCk7CisgICAgcnVuVW50aWwoaGVscGVyLnNlY29uZFN1Y2Nlc3NmdWxMb2Fk
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tE
ZXRhY2hlZC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03
Nyw3ICs3Nyw3IEBAIFRFU1QoV2ViS2l0LCBNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQpCiAgICAg
aGFzUmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9h
ZFRlc3RQYWdlTmFtZWQ6QCJtZWRpYXN0cmVhbXRyYWNrLWRldGFjaGVkIl07CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmhhc1JlY2lldmVkQ29ycmVjdENhcHR1cmVTdGF0ZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaGFzUmVjaWV2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRl
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvTWVudVR5cGVzRm9yTW91c2VFdmVudHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lbnVUeXBlc0Zvck1vdXNl
RXZlbnRzLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvTWVudVR5cGVzRm9yTW91c2VFdmVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
OSw3ICs1OSw3IEBAIHN0YXRpYyB2b2lkIGJ1aWxkQW5kUGVyZm9ybVRlc3QoV0tFdmVudE0KIAog
ICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZv
clJlc291cmNlKCJtb3VzZS1idXR0b24tbGlzdGVuZXIiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VM
b2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmlu
aXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAKICAgICBkaWRGaW5pc2hM
b2FkID0gZmFsc2U7CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01v
ZGFsQWxlcnRzU1BJLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9Nb2RhbEFsZXJ0c1NQSS5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01vZGFsQWxlcnRzU1BJLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTM2LDcgKzEzNiw3IEBAIFRFU1QoV2ViS2l0LCBNb2RhbEFsZXJ0c1NQSSkKICAgICBX
S1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNv
dXJjZSgibW9kYWwtYWxlcnRzLWluLW5ldy1hYm91dC1ibGFuay13aW5kb3ciLCAiaHRtbCIpKTsK
ICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCi0gICAgVXRp
bDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTW91
c2VNb3ZlQWZ0ZXJDcmFzaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01vdXNlTW92ZUFmdGVyQ3Jhc2guY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIFRFU1QoV2ViS2l0LCBNb3VzZU1vdmVB
ZnRlckNyYXNoKQogCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRp
bDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoIm1vdXNlLW1vdmUtbGlzdGVuZXIiLCAiaHRtbCIpKTsK
ICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwotICAgIFV0aWw6
OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAKICAg
ICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAKQEAgLTc3LDcgKzc3LDcgQEAgVEVTVChXZWJLaXQs
IE1vdXNlTW92ZUFmdGVyQ3Jhc2gpCiAgICAgV0tQYWdlUmVsb2FkKHdlYlZpZXcucGFnZSgpKTsK
IAogICAgIC8vIFdhaXQgdW50aWwgd2UgbG9hZCB0aGUgcGFnZSBhIHNlY29uZCB0aW1lLgotICAg
IFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7
CiAKICAgICBFWFBFQ1RfSlNfRkFMU0Uod2ViVmlldy5wYWdlKCksICJkaWRNb3ZlTW91c2UoKSIp
OwogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9OYXZpZ2F0aW9uQ2xp
ZW50RGVmYXVsdENyeXB0by5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTmF2aWdhdGlvbkNsaWVudERlZmF1bHRDcnlwdG8uY3BwCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9OYXZpZ2F0aW9uQ2xp
ZW50RGVmYXVsdENyeXB0by5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDExICs3OSwxMSBAQCBU
RVNUKFdlYktpdCwgTmF2aWdhdGlvbkNsaWVudERlZmF1bHRDcnlwCiAgICAgV0tSZXRhaW5QdHI8
V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoIm5hdmln
YXRpb24tY2xpZW50LWRlZmF1bHQtY3J5cHRvIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVS
TCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmcmVjZWl2ZWRB
bGVydCk7CisgICAgcnVuVW50aWwocmVjZWl2ZWRBbGVydCk7CiAgICAgRVhQRUNUX1RSVUUoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhsYXN0QWxlcnQuZ2V0KCksICJzdWNjZXNzZnVsbHkg
c3RvcmVkIGtleSIpKTsKIAogICAgIHJlY2VpdmVkQWxlcnQgPSBmYWxzZTsKLSAgICBVdGlsOjpy
dW4oJnJlY2VpdmVkQWxlcnQpOworICAgIHJ1blVudGlsKHJlY2VpdmVkQWxlcnQpOwogICAgIEVY
UEVDVF9UUlVFKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobGFzdEFsZXJ0LmdldCgpLCAi
cmV0cmlldmVkIHZhbGlkIGtleSIpKTsKIH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTmV0d29ya1Byb2Nlc3NDcmFzaFdpdGhQZW5kaW5nQ29ubmVjdGlvbi5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzc0NyYXNoV2l0aFBlbmRpbmdDb25uZWN0aW9uLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9OZXR3b3JrUHJvY2Vzc0NyYXNoV2l0aFBl
bmRpbmdDb25uZWN0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05MCw3ICs5MCw3IEBAIFRFU1Qo
V2ViS2l0LCBOZXR3b3JrUHJvY2Vzc0NyYXNoV2l0aFBlbmQKICAgICBwaWRfdCBpbml0aWFsTmV0
d29ya1Byb2Nlc3NJZGVudGlmaWZlciA9IFtwcm9jZXNzUG9vbC5nZXQoKSBfbmV0d29ya1Byb2Nl
c3NJZGVudGlmaWVyXTsKICAgICBFWFBFQ1RfTkUoaW5pdGlhbE5ldHdvcmtQcm9jZXNzSWRlbnRp
ZmlmZXIsIDApOwogICAgIGtpbGwoaW5pdGlhbE5ldHdvcmtQcm9jZXNzSWRlbnRpZmlmZXIsIFNJ
R0tJTEwpOwotICAgIFV0aWw6OnJ1bigmbmV0d29ya1Byb2Nlc3NDcmFzaGVkKTsKKyAgICBydW5V
bnRpbChuZXR3b3JrUHJvY2Vzc0NyYXNoZWQpOwogICAgIG5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCA9
IGZhbHNlOwogCiAgICAgW3dlYlZpZXcxLmdldCgpIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNp
bXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl1dXTsKQEAgLTEwNSw3ICsxMDUsNyBAQCBURVNUKFdlYktpdCwgTmV0d29ya1By
b2Nlc3NDcmFzaFdpdGhQZW5kCiAgICAgW3dlYlZpZXcyLmdldCgpIGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKICAgICBVdGlsOjpzbGVlcCgwLjUpOyAvLyBXYWl0IGZv
ciB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHRvIHNlbmQgQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MKICAgICBraWxsKHJlbGF1bmNoZWROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIs
IFNJR0tJTEwpOwotICAgIFV0aWw6OnJ1bigmbmV0d29ya1Byb2Nlc3NDcmFzaGVkKTsKKyAgICBy
dW5VbnRpbChuZXR3b3JrUHJvY2Vzc0NyYXNoZWQpOwogCiAgICAgYXV0byBuYXZpZ2F0aW9uRGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwog
ICAgIGxvYWRlZE9yQ3Jhc2hlZCA9IGZhbHNlOwpAQCAtMTE4LDcgKzExOCw3IEBAIFRFU1QoV2Vi
S2l0LCBOZXR3b3JrUHJvY2Vzc0NyYXNoV2l0aFBlbmQKICAgICAgICAgd2ViUHJvY2Vzc0NyYXNo
ZWQgPSB0cnVlOwogICAgIH1dOwogICAgIFt3ZWJWaWV3MiBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6
bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmxvYWRlZE9yQ3Jhc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwobG9hZGVkT3JD
cmFzaGVkKTsKICAgICBFWFBFQ1RfVFJVRShsb2FkZWQpOwogICAgIEVYUEVDVF9GQUxTRSh3ZWJQ
cm9jZXNzQ3Jhc2hlZCk7CiB9CkBAIC0xNTMsNyArMTUzLDcgQEAgVEVTVChXZWJLaXQsIE5ldHdv
cmtQcm9jZXNzUmVsYXVuY2hPbkxhdQogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0
ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJzaW1wbGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZsb2FkZWQp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGxvYWRlZCk7CiAKICAgICBFWFBFQ1RfVFJV
RShuZXR3b3JrUHJvY2Vzc0NyYXNoZWQpOwogICAgIEVYUEVDVF9GQUxTRSh3ZWJQcm9jZXNzQ3Jh
c2hlZCk7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9OZXdGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dC5jcHAJKHJldmlz
aW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L05ld0ZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcg
QEAgVEVTVChXZWJLaXQsIERJU0FCTEVEX05ld0ZpcnN0VmlzdWFsbHlObwogICAgIC8vIG9iamVj
dHMgdGFrZSB1cCBtb3JlIHRoYW4gMTAlIG9mIHRoZSB2aWV3LgogICAgIFdLUGFnZUxvYWRVUkwo
d2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImxvdHMt
b2YtdGV4dCIsICJodG1sIikpLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmZGlkVW5sb2NrQWxs
TGF5b3V0TWlsZXN0b25lcyk7CisgICAgcnVuVW50aWwoZGlkVW5sb2NrQWxsTGF5b3V0TWlsZXN0
b25lcyk7CiAgICAgRVhQRUNUX1RSVUUoZGlkVW5sb2NrQWxsTGF5b3V0TWlsZXN0b25lcyk7CiB9
CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L05ld0ZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEZhaWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlscy5jcHAJ
KHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L05l
d0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZhaWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
ODAsOCArODAsOCBAQCBURVNUKFdlYktpdCwgTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5CiAg
ICAgLy8gb2JqZWN0cyB0YWtlIHVwIGxlc3MgdGhhbiAxMCUgb2YgdGhlIHZpZXcuCiAgICAgV0tQ
YWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNv
dXJjZSgic2ltcGxlIiwgImh0bWwiKSkuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZ0ZXN0MURv
bmUpOwotICAgIFV0aWw6OnJ1bigmdGVzdDJEb25lKTsKKyAgICBydW5VbnRpbCh0ZXN0MURvbmUp
OworICAgIHJ1blVudGlsKHRlc3QyRG9uZSk7CiAKICAgICAvLyBCeSB0aGUgdGltZSB0aGUgZm9y
Y2VkIHJlcGFpbnQgaGFzIGZpbmlzaGVkLCB0aGUgY291bnRlciB3b3VsZCBoYXZlIGJlZW4gaGl0
IAogICAgIC8vIGlmIGl0IHdhcyBzaXplZCByZWFzb25hYmx5IGZvciB0aGUgcGFnZS4KSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvckltYWdlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzLmNwcAko
cmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTmV3
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODQsNyArODQsNyBAQCBURVNUKFdlYktpdCwgRElTQUJMRURfTmV3Rmlyc3RWaXN1YWxseU5v
CiAgICAgLy8gb2JqZWN0cyB0YWtlIHVwIG1vcmUgdGhhbiAxMCUgb2YgdGhlIHZpZXcuCiAgICAg
V0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JS
ZXNvdXJjZSgibG90cy1vZi1pbWFnZXMiLCAiaHRtbCIpKS5nZXQoKSk7CiAKLSAgICBVdGlsOjpy
dW4oJmRpZFVubG9ja0FsbExheW91dE1pbGVzdG9uZXMpOworICAgIHJ1blVudGlsKGRpZFVubG9j
a0FsbExheW91dE1pbGVzdG9uZXMpOwogICAgIEVYUEVDVF9UUlVFKGRpZFVubG9ja0FsbExheW91
dE1pbGVzdG9uZXMpOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZyYW1lcy5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTg0LDggKzg0LDggQEAgVEVTVChXZWJLaXQsIE5ld0ZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheQogCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRv
cHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgibG90cy1vZi1pZnJhbWVzIiwgImh0bWwi
KSkuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZ0ZXN0MURvbmUpOwotICAgIFV0aWw6OnJ1bigm
dGVzdDJEb25lKTsKKyAgICBydW5VbnRpbCh0ZXN0MURvbmUpOworICAgIHJ1blVudGlsKHRlc3Qy
RG9uZSk7CiAKICAgICAvLyBCeSB0aGUgdGltZSB0aGUgZm9yY2VkIHJlcGFpbnQgaGFzIGZpbmlz
aGVkLCB0aGUgY291bnRlciB3b3VsZCBoYXZlIGJlZW4gaGl0IAogICAgIC8vIGlmIGl0IHdhcyBz
aXplZCByZWFzb25hYmx5IGZvciB0aGUgcGFnZS4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L05vSGlzdG9yeUl0ZW1TY3JvbGxUb0ZyYWdtZW50Lm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L05vSGlzdG9yeUl0ZW1TY3JvbGxU
b0ZyYWdtZW50Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9Ob0hpc3RvcnlJdGVtU2Nyb2xsVG9GcmFnbWVudC5tbQkod29ya2luZyBjb3B5
KQpAQCAtODgsNyArODgsNyBAQCBURVNUKFdlYktpdCwgTm9IaXN0b3J5SXRlbVNjcm9sbFRvRnJh
Z21lCiAgICAgTlNTdHJpbmcgKnRlc3RGaWxlQ29udGVudHMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0
aENvbnRlbnRzT2ZVUkw6cmVzb3VyY2VVUkwgZW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2Rpbmcg
ZXJyb3I6bmlsXTsKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6dGVz
dEZpbGVDb250ZW50c107CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnRlc3REb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbCh0ZXN0RG9uZSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1BhZ2VMb2FkQmFzaWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L1BhZ2VMb2FkQmFzaWMuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdlTG9hZEJhc2ljLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTM1LDcgKzEzNSw3IEBAIFRFU1QoV2ViS2l0LCBQYWdlTG9hZEJhc2ljKQogICAg
IEFTU0VSVF9OT1RfTlVMTChhY3RpdmVVcmwuZ2V0KCkpOwogICAgIEVYUEVDVF9UUlVFKFdLVVJM
SXNFcXVhbChhY3RpdmVVcmwuZ2V0KCksIHVybC5nZXQoKSkpOwogCi0gICAgVXRpbDo6cnVuKCZ0
ZXN0MURvbmUpOworICAgIHJ1blVudGlsKHRlc3QxRG9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0LCBQ
YWdlUmVsb2FkKQpAQCAtMTg4LDcgKzE4OCw3IEBAIFRFU1QoV2ViS2l0LCBQYWdlTG9hZFR3aWNl
QW5kUmVsb2FkKQogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybDEuZ2V0KCkp
OwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybDIuZ2V0KCkpOwogCi0gICAg
VXRpbDo6cnVuKCZ0ZXN0MURvbmUpOworICAgIHJ1blVudGlsKHRlc3QxRG9uZSk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1BhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1BhZ2VMb2Fk
RGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwCShyZXZpc2lvbiAyNDU1MTYp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYWdlTG9hZERpZENoYW5nZUxv
Y2F0aW9uV2l0aGluUGFnZUZvckZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsMTIgKzcy
LDEyIEBAIFRFU1QoV2ViS2l0LCBQYWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2kKIAogICAgIFdL
UmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291
cmNlKCJmaWxlLXdpdGgtYW5jaG9yIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJW
aWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOwor
ICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+
IGluaXRpYWxVUkwgPSBhZG9wdFdLKFdLRnJhbWVDb3B5VVJMKFdLUGFnZUdldE1haW5GcmFtZSh3
ZWJWaWV3LnBhZ2UoKSkpKTsKIAogICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh3
ZWJWaWV3LnBhZ2UoKSwgVXRpbDo6dG9XSygiY2xpY2tMaW5rKCkiKS5nZXQoKSwgMCwgbnVsbEph
dmFTY3JpcHRDYWxsYmFjayk7Ci0gICAgVXRpbDo6cnVuKCZkaWRDaGFuZ2VMb2NhdGlvbldpdGhp
blBhZ2UpOworICAgIHJ1blVudGlsKGRpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZSk7CiAKICAg
ICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsQWZ0ZXJBbmNob3JDbGljayA9IGFkb3B0V0soV0tG
cmFtZUNvcHlVUkwoV0tQYWdlR2V0TWFpbkZyYW1lKHdlYlZpZXcucGFnZSgpKSkpOwogCkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QYXJlbnRGcmFtZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGFyZW50RnJhbWUuY3Bw
CShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Q
YXJlbnRGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAgVEVTVChXZWJL
aXQsIFBhcmVudEZyYW1lKQogCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRv
cHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlLWlmcmFtZSIsICJodG1sIikp
LmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmZGlkUmVjZWl2ZU1lc3NhZ2UpOworICAgIHJ1blVu
dGlsKGRpZFJlY2VpdmVNZXNzYWdlKTsKICAgICBFWFBFQ1RfVFJVRShpc1BhcmVudEZyYW1lQ2hl
Y2tTdWNjZXNzZnVsKTsKIH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvUGFzdGVib2FyZE5vdGlmaWNhdGlvbnMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvUGFzdGVib2FyZE5vdGlmaWNhdGlvbnMubW0JKHJldmlzaW9u
IDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Bhc3RlYm9hcmRO
b3RpZmljYXRpb25zLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NCw3ICs3NCw3IEBAIFRFU1QoV2Vi
S2l0LCBQYXN0ZWJvYXJkTm90aWZpY2F0aW9ucykKICAgICBXS1BhZ2VHcm91cFNldFByZWZlcmVu
Y2VzKHBhZ2VHcm91cCwgcHJlZmVyZW5jZXMuZ2V0KCkpOwogCiAgICAgV0tQYWdlTG9hZFVSTCh3
ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgiZXhlY0Nv
cHkiLCAiaHRtbCIpKS5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgcnVu
VW50aWwoZmluaXNoZWQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QZW5kaW5nQVBJUmVxdWVzdFVSTC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUGVuZGlu
Z0FQSVJlcXVlc3RVUkwuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9QZW5kaW5nQVBJUmVxdWVzdFVSTC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU3LDE0ICs1NywxNCBAQCBURVNUKFdlYktpdCwgUGVuZGluZ0FQSVJlcXVlc3RVUkwpCiAg
ICAgYWN0aXZlVVJMID0gYWRvcHRXSyhXS1BhZ2VDb3B5QWN0aXZlVVJMKHdlYlZpZXcucGFnZSgp
KSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGFjdGl2ZVVSTC5nZXQoKSk7CiAgICAgRVhQRUNUX1RS
VUUoV0tVUkxJc0VxdWFsKGFjdGl2ZVVSTC5nZXQoKSwgdXJsLmdldCgpKSk7Ci0gICAgVXRpbDo6
cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAg
ICBXS1BhZ2VSZWxvYWQod2ViVmlldy5wYWdlKCkpOwogICAgIGFjdGl2ZVVSTCA9IGFkb3B0V0so
V0tQYWdlQ29weUFjdGl2ZVVSTCh3ZWJWaWV3LnBhZ2UoKSkpOwogICAgIEFTU0VSVF9OT1RfTlVM
TChhY3RpdmVVUkwuZ2V0KCkpOwogICAgIEVYUEVDVF9UUlVFKFdLVVJMSXNFcXVhbChhY3RpdmVV
UkwuZ2V0KCksIHVybC5nZXQoKSkpOwotICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50
aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IGh0bWxTdHJpbmcgPSBVdGlsOjp0b1dLKCI8Ym9keT5IZWxsbywgV29ybGQ8L2JvZHk+Iik7
CkBAIC03MywxNCArNzMsMTQgQEAgVEVTVChXZWJLaXQsIFBlbmRpbmdBUElSZXF1ZXN0VVJMKQog
ICAgIGFjdGl2ZVVSTCA9IGFkb3B0V0soV0tQYWdlQ29weUFjdGl2ZVVSTCh3ZWJWaWV3LnBhZ2Uo
KSkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChhY3RpdmVVUkwuZ2V0KCkpOwogICAgIEVYUEVDVF9U
UlVFKFdLVVJMSXNFcXVhbChhY3RpdmVVUkwuZ2V0KCksIGJsYW5rVVJMLmdldCgpKSk7Ci0gICAg
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7
CiAKICAgICBXS1BhZ2VSZWxvYWQod2ViVmlldy5wYWdlKCkpOwogICAgIGFjdGl2ZVVSTCA9IGFk
b3B0V0soV0tQYWdlQ29weUFjdGl2ZVVSTCh3ZWJWaWV3LnBhZ2UoKSkpOwogICAgIEFTU0VSVF9O
T1RfTlVMTChhY3RpdmVVUkwuZ2V0KCkpOwogICAgIEVYUEVDVF9UUlVFKFdLVVJMSXNFcXVhbChh
Y3RpdmVVUkwuZ2V0KCksIGJsYW5rVVJMLmdldCgpKSk7Ci0gICAgVXRpbDo6cnVuKCZkb25lKTsK
KyAgICBydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICB1cmwgPSBhZG9w
dFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUyIiwgImh0bWwiKSk7CkBAIC04
OCwxNCArODgsMTQgQEAgVEVTVChXZWJLaXQsIFBlbmRpbmdBUElSZXF1ZXN0VVJMKQogICAgIGFj
dGl2ZVVSTCA9IGFkb3B0V0soV0tQYWdlQ29weUFjdGl2ZVVSTCh3ZWJWaWV3LnBhZ2UoKSkpOwog
ICAgIEFTU0VSVF9OT1RfTlVMTChhY3RpdmVVUkwuZ2V0KCkpOwogICAgIEVYUEVDVF9UUlVFKFdL
VVJMSXNFcXVhbChhY3RpdmVVUkwuZ2V0KCksIHVybC5nZXQoKSkpOwotICAgIFV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgV0tQ
YWdlUmVsb2FkKHdlYlZpZXcucGFnZSgpKTsKICAgICBhY3RpdmVVUkwgPSBhZG9wdFdLKFdLUGFn
ZUNvcHlBY3RpdmVVUkwod2ViVmlldy5wYWdlKCkpKTsKICAgICBBU1NFUlRfTk9UX05VTEwoYWN0
aXZlVVJMLmdldCgpKTsKICAgICBFWFBFQ1RfVFJVRShXS1VSTElzRXF1YWwoYWN0aXZlVVJMLmdl
dCgpLCB1cmwuZ2V0KCkpKTsKLSAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGlsKGRv
bmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFdLUmV0YWluUHRyPFdLRGF0YVJlZj4gZGF0
YSA9IGFkb3B0V0soV0tEYXRhQ3JlYXRlKG51bGxwdHIsIDApKTsKQEAgLTEwMyw0MiArMTAzLDQy
IEBAIFRFU1QoV2ViS2l0LCBQZW5kaW5nQVBJUmVxdWVzdFVSTCkKICAgICBhY3RpdmVVUkwgPSBh
ZG9wdFdLKFdLUGFnZUNvcHlBY3RpdmVVUkwod2ViVmlldy5wYWdlKCkpKTsKICAgICBBU1NFUlRf
Tk9UX05VTEwoYWN0aXZlVVJMLmdldCgpKTsKICAgICBFWFBFQ1RfVFJVRShXS1VSTElzRXF1YWwo
YWN0aXZlVVJMLmdldCgpLCBibGFua1VSTC5nZXQoKSkpOwotICAgIFV0aWw6OnJ1bigmZG9uZSk7
CisgICAgcnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgV0tQYWdlUmVs
b2FkKHdlYlZpZXcucGFnZSgpKTsKICAgICBhY3RpdmVVUkwgPSBhZG9wdFdLKFdLUGFnZUNvcHlB
Y3RpdmVVUkwod2ViVmlldy5wYWdlKCkpKTsKICAgICBBU1NFUlRfTk9UX05VTEwoYWN0aXZlVVJM
LmdldCgpKTsKICAgICBFWFBFQ1RfVFJVRShXS1VSTElzRXF1YWwoYWN0aXZlVVJMLmdldCgpLCBi
bGFua1VSTC5nZXQoKSkpOwotICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9u
ZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgV0tQYWdlTG9hZERhdGEod2ViVmlldy5wYWdl
KCksIGRhdGEuZ2V0KCksIG51bGxwdHIsIG51bGxwdHIsIHVybC5nZXQoKSk7CiAgICAgYWN0aXZl
VVJMID0gYWRvcHRXSyhXS1BhZ2VDb3B5QWN0aXZlVVJMKHdlYlZpZXcucGFnZSgpKSk7CiAgICAg
QVNTRVJUX05PVF9OVUxMKGFjdGl2ZVVSTC5nZXQoKSk7CiAgICAgRVhQRUNUX1RSVUUoV0tVUkxJ
c0VxdWFsKGFjdGl2ZVVSTC5nZXQoKSwgdXJsLmdldCgpKSk7Ci0gICAgVXRpbDo6cnVuKCZkb25l
KTsKKyAgICBydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBXS1BhZ2VS
ZWxvYWQod2ViVmlldy5wYWdlKCkpOwogICAgIGFjdGl2ZVVSTCA9IGFkb3B0V0soV0tQYWdlQ29w
eUFjdGl2ZVVSTCh3ZWJWaWV3LnBhZ2UoKSkpOwogICAgIEFTU0VSVF9OT1RfTlVMTChhY3RpdmVV
UkwuZ2V0KCkpOwogICAgIEVYUEVDVF9UUlVFKFdLVVJMSXNFcXVhbChhY3RpdmVVUkwuZ2V0KCks
IHVybC5nZXQoKSkpOwotICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgV0tQYWdlTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmco
d2ViVmlldy5wYWdlKCksIGh0bWxTdHJpbmcuZ2V0KCksIG51bGxwdHIsIHVybC5nZXQoKSk7CiAg
ICAgYWN0aXZlVVJMID0gYWRvcHRXSyhXS1BhZ2VDb3B5QWN0aXZlVVJMKHdlYlZpZXcucGFnZSgp
KSk7CiAgICAgQVNTRVJUX05PVF9OVUxMKGFjdGl2ZVVSTC5nZXQoKSk7CiAgICAgRVhQRUNUX1RS
VUUoV0tVUkxJc0VxdWFsKGFjdGl2ZVVSTC5nZXQoKSwgdXJsLmdldCgpKSk7Ci0gICAgVXRpbDo6
cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAg
ICBXS1BhZ2VSZWxvYWQod2ViVmlldy5wYWdlKCkpOwogICAgIGFjdGl2ZVVSTCA9IGFkb3B0V0so
V0tQYWdlQ29weUFjdGl2ZVVSTCh3ZWJWaWV3LnBhZ2UoKSkpOwogICAgIEFTU0VSVF9OT1RfTlVM
TChhY3RpdmVVUkwuZ2V0KCkpOwogICAgIEVYUEVDVF9UUlVFKFdLVVJMSXNFcXVhbChhY3RpdmVV
UkwuZ2V0KCksIHVybC5nZXQoKSkpOwotICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50
aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHBsYWluVGV4dFN0cmluZyA9IFV0aWw6OnRvV0soIkhlbGxvLCBXb3JsZCIpOwpAQCAtMTQ2
LDE0ICsxNDYsMTQgQEAgVEVTVChXZWJLaXQsIFBlbmRpbmdBUElSZXF1ZXN0VVJMKQogICAgIGFj
dGl2ZVVSTCA9IGFkb3B0V0soV0tQYWdlQ29weUFjdGl2ZVVSTCh3ZWJWaWV3LnBhZ2UoKSkpOwog
ICAgIEFTU0VSVF9OT1RfTlVMTChhY3RpdmVVUkwuZ2V0KCkpOwogICAgIEVYUEVDVF9UUlVFKFdL
VVJMSXNFcXVhbChhY3RpdmVVUkwuZ2V0KCksIGJsYW5rVVJMLmdldCgpKSk7Ci0gICAgVXRpbDo6
cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAg
ICBXS1BhZ2VSZWxvYWQod2ViVmlldy5wYWdlKCkpOwogICAgIGFjdGl2ZVVSTCA9IGFkb3B0V0so
V0tQYWdlQ29weUFjdGl2ZVVSTCh3ZWJWaWV3LnBhZ2UoKSkpOwogICAgIEFTU0VSVF9OT1RfTlVM
TChhY3RpdmVVUkwuZ2V0KCkpOwogICAgIEVYUEVDVF9UUlVFKFdLVVJMSXNFcXVhbChhY3RpdmVV
UkwuZ2V0KCksIGJsYW5rVVJMLmdldCgpKSk7Ci0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBy
dW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICB1cmwgPSBhZG9wdFdLKFdL
VVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJmaWxlOi8vL3RtcC9pbmRleC5odG1sIikpOwpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJldmVudEVtcHR5VXNlckFnZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9QcmV2
ZW50RW1wdHlVc2VyQWdlbnQuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9QcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02Nyw3ICs2Nyw3IEBAIFRFU1QoV2ViS2l0LCBQcmV2ZW50RW1wdHlVc2VyQWdlbnQp
CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGphdmFTY3JpcHRTdHJpbmcgPSBhZG9wdFdL
KFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJuYXZpZ2F0b3IudXNlckFnZW50IikpOwog
ICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh3ZWJWaWV3LnBhZ2UoKSwgamF2YVNj
cmlwdFN0cmluZy5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMHgxMjM0NTc4KSwgZGlk
UnVuSmF2YVNjcmlwdCk7CiAKLSAgICBVdGlsOjpydW4oJnRlc3REb25lKTsKKyAgICBydW5VbnRp
bCh0ZXN0RG9uZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5v
SGlzdG9yeUNhbGxiYWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9Qcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAJ
KHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1By
aXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODMsNyArODMsNyBAQCBURVNUKFdlYktpdCwgUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRl
Tm9ICiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRl
VVJMRm9yUmVzb3VyY2UoInB1c2gtc3RhdGUiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJM
KHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZkaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uKTsKKyAgICBydW5VbnRpbChkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
KTsKIAogICAgIFdLUHJlZmVyZW5jZXNTZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHByZWZlcmVu
Y2VzLmdldCgpLCBmYWxzZSk7CiAKQEAgLTkyLDcgKzkyLDcgQEAgVEVTVChXZWJLaXQsIFByaXZh
dGVCcm93c2luZ1B1c2hTdGF0ZU5vSAogCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2Uo
KSwgdXJsLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmZGlkTmF2aWdhdGUpOworICAgIHJ1blVu
dGlsKGRpZE5hdmlnYXRlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJvY2Vzc0RpZFRlcm1pbmF0ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJvY2Vz
c0RpZFRlcm1pbmF0ZS5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1Byb2Nlc3NEaWRUZXJtaW5hdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC05MywxMSArOTMsMTEgQEAgVEVTVChXZWJLaXQsIFByb2Nlc3NEaWRUZXJtaW5hdGVSZXF1ZXN0
ZQogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJhYm91dDpibGFuayIpKTsKICAgICAvLyBMb2FkIGEgYmxhbmsgcGFnZSBh
bmQgbmV4dCBraWxscyBXZWJQcm9jZXNzLgogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdl
KCksIHVybC5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZsb2FkQmVmb3JlQ3Jhc2gpOworICAgIHJ1
blVudGlsKGxvYWRCZWZvcmVDcmFzaCk7CiAKICAgICBXS1BhZ2VUZXJtaW5hdGUod2ViVmlldy5w
YWdlKCkpOwogCi0gICAgVXRpbDo6cnVuKCZjbGllbnRUZXJtaW5hdGlvbkhhbmRsZXJDYWxsZWQp
OworICAgIHJ1blVudGlsKGNsaWVudFRlcm1pbmF0aW9uSGFuZGxlckNhbGxlZCk7CiB9CiAKIFRF
U1QoV2ViS2l0LCBQcm9jZXNzRGlkVGVybWluYXRlV2l0aFJlYXNvbkNyYXNoKQpAQCAtMTE3LDEy
ICsxMTcsMTIgQEAgVEVTVChXZWJLaXQsIFByb2Nlc3NEaWRUZXJtaW5hdGVXaXRoUmVhcwogICAg
IFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFdLVVJMQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJhYm91dDpibGFuayIpKTsKICAgICAvLyBMb2FkIGEgYmxhbmsgcGFnZSBhbmQgbmV4
dCBraWxscyBXZWJQcm9jZXNzLgogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVy
bC5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZsb2FkQmVmb3JlQ3Jhc2gpOworICAgIHJ1blVudGls
KGxvYWRCZWZvcmVDcmFzaCk7CiAKICAgICAvLyBTaW11bGF0ZSBhIGNyYXNoIGJ5IGtpbGxpbmcg
dGhlIFdlYlByb2Nlc3MuCiAgICAga2lsbChXS1BhZ2VHZXRQcm9jZXNzSWRlbnRpZmllcih3ZWJW
aWV3LnBhZ2UoKSksIFNJR0tJTEwpOwogCi0gICAgVXRpbDo6cnVuKCZjcmFzaEhhbmRsZXJDYWxs
ZWQpOworICAgIHJ1blVudGlsKGNyYXNoSGFuZGxlckNhbGxlZCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L1Byb3Zpc2lvbmFsVVJMQWZ0ZXJXaWxsU2VuZFJlcXVlc3RDYWxsYmFjay5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJvdmlzaW9uYWxVUkxBZnRl
cldpbGxTZW5kUmVxdWVzdENhbGxiYWNrLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUHJvdmlzaW9uYWxVUkxBZnRlcldpbGxTZW5kUmVx
dWVzdENhbGxiYWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNyBAQCBURVNUKFdl
YktpdDIsIFByb3Zpc2lvbmFsVVJMQWZ0ZXJXaWxsU2VuCiAKICAgICBXS1JldGFpblB0cjxXS1VS
TFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwg
Imh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsK
LSAgICBVdGlsOjpydW4oJmNvbW1pdHRlZExvYWQpOworICAgIHJ1blVudGlsKGNvbW1pdHRlZExv
YWQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZWxvYWRQYWdlQWZ0ZXJDcmFzaC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVsb2FkUGFnZUFmdGVyQ3Jh
c2guY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9SZWxvYWRQYWdlQWZ0ZXJDcmFzaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDEyICs4
MywxMiBAQCBURVNUKFdlYktpdCwgUmVsb2FkUGFnZUFmdGVyQ3Jhc2gpCiAgICAgV0tSZXRhaW5Q
dHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImFi
b3V0OmJsYW5rIikpOwogICAgIC8vIExvYWQgYSBibGFuayBwYWdlIGFuZCBuZXh0IGtpbGxzIFdl
YlByb2Nlc3MuCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsK
LSAgICBVdGlsOjpydW4oJmxvYWRCZWZvcmVDcmFzaCk7CisgICAgcnVuVW50aWwobG9hZEJlZm9y
ZUNyYXNoKTsKICAgICBXS1BhZ2VUZXJtaW5hdGUod2ViVmlldy5wYWdlKCkpOwogCiAgICAgLy8g
TGV0J3MgdHJ5IGxvYWQgYSBwYWdlIGFuZCBzZWUgd2hhdCBoYXBwZW5zLgogICAgIFdLUGFnZUxv
YWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZsb2FkQWZ0
ZXJDcmFzaCk7CisgICAgcnVuVW50aWwobG9hZEFmdGVyQ3Jhc2gpOwogfQogCiAjaWYgIVBMQVRG
T1JNKFdJTikKQEAgLTEyNSw3ICsxMjUsNyBAQCBURVNUKFdlYktpdCwgRm9jdXNlZEZyYW1lQWZ0
ZXJDcmFzaCkKIAogICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6
OmNyZWF0ZVVSTEZvclJlc291cmNlKCJtYW55LWlmcmFtZXMiLCAiaHRtbCIpKTsKICAgICBXS1Bh
Z2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmbG9h
ZEJlZm9yZUNyYXNoKTsKKyAgICBydW5VbnRpbChsb2FkQmVmb3JlQ3Jhc2gpOwogCiAgICAgRVhQ
RUNUX0ZBTFNFKCFXS1BhZ2VHZXRNYWluRnJhbWUod2ViVmlldy5wYWdlKCkpKTsKIApAQCAtMTM3
LDcgKzEzNyw3IEBAIFRFU1QoV2ViS2l0LCBGb2N1c2VkRnJhbWVBZnRlckNyYXNoKQogCiAgICAg
a2lsbChXS1BhZ2VHZXRQcm9jZXNzSWRlbnRpZmllcih3ZWJWaWV3LnBhZ2UoKSksIDkpOwogCi0g
ICAgVXRpbDo6cnVuKCZjYWxsZWRDcmFzaEhhbmRsZXIpOworICAgIHJ1blVudGlsKGNhbGxlZENy
YXNoSGFuZGxlcik7CiB9CiAKIFRFU1QoV2ViS2l0LCBGcmFtZVNldExhcmdlc3RGcmFtZUFmdGVy
Q3Jhc2gpCkBAIC0xNTgsNyArMTU4LDcgQEAgVEVTVChXZWJLaXQsIEZyYW1lU2V0TGFyZ2VzdEZy
YW1lQWZ0ZXJDcgogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBodG1sU3RyaW5nID0gVXRp
bDo6dG9XSygiPGZyYW1lc2V0IGNvbHM9JzI1JSwqLDI1JSc+PGZyYW1lIHNyYz0nYWJvdXQ6Ymxh
bmsnPjxmcmFtZSBzcmM9J2Fib3V0OmJsYW5rJz48ZnJhbWUgc3JjPSdhYm91dDpibGFuayc+PC9m
cmFtZXNldD4iKTsKIAogICAgIFdLUGFnZUxvYWRIVE1MU3RyaW5nKHdlYlZpZXcucGFnZSgpLCBo
dG1sU3RyaW5nLmdldCgpLCBiYXNlVVJMLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmxvYWRCZWZv
cmVDcmFzaCk7CisgICAgcnVuVW50aWwobG9hZEJlZm9yZUNyYXNoKTsKIAogICAgIEVYUEVDVF9G
QUxTRSghV0tQYWdlR2V0TWFpbkZyYW1lKHdlYlZpZXcucGFnZSgpKSk7CiAKQEAgLTE2Nyw3ICsx
NjcsNyBAQCBURVNUKFdlYktpdCwgRnJhbWVTZXRMYXJnZXN0RnJhbWVBZnRlckNyCiAKICAgICBr
aWxsKFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVyKHdlYlZpZXcucGFnZSgpKSwgOSk7CiAKLSAg
ICBVdGlsOjpydW4oJmNhbGxlZENyYXNoSGFuZGxlcik7CisgICAgcnVuVW50aWwoY2FsbGVkQ3Jh
c2hIYW5kbGVyKTsKIH0KIAogI2VuZGlmIC8vICFQTEFURk9STShXSU4pCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzaXpl
UmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNpemVSZXZlcnNlUGFnaW5hdGVkV2ViVmlldy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcgKzg2LDcgQEAgVEVTVChXZWJLaXQsIFJlc2l6ZVJl
dmVyc2VQYWdpbmF0ZWRXZWJWaQogCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwg
YWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgibG90cy1vZi10ZXh0LXZlcnRpY2Fs
LWxyIiwgImh0bWwiKSkuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZ0ZXN0RG9uZSk7CisgICAg
cnVuVW50aWwodGVzdERvbmUpOwogICAgIEVYUEVDVF9UUlVFKHRlc3REb25lKTsKIH0KIApJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzaXplV2luZG93QWZ0ZXJDcmFz
aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVz
aXplV2luZG93QWZ0ZXJDcmFzaC5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc2l6ZVdpbmRvd0FmdGVyQ3Jhc2guY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05MSwxMiArOTEsMTIgQEAgVEVTVChXZWJLaXQsIFJlc2l6ZVdpbmRvd0FmdGVy
Q3Jhc2gpCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soV0tVUkxDcmVh
dGVXaXRoVVRGOENTdHJpbmcoImFib3V0OmJsYW5rIikpOwogICAgIC8vIExvYWQgYSBibGFuayBw
YWdlIGFuZCBuZXh0IGtpbGxzIFdlYlByb2Nlc3MuCiAgICAgV0tQYWdlTG9hZFVSTChzdGF0ZXMu
d2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZzdGF0ZXMuZmlyc3RM
b2FkKTsKKyAgICBydW5VbnRpbChzdGF0ZXMuZmlyc3RMb2FkKTsKICAgICBXS1BhZ2VUZXJtaW5h
dGUoc3RhdGVzLndlYlZpZXcucGFnZSgpKTsKIAogICAgIC8vIExldCdzIHRyeSBsb2FkIGEgcGFn
ZSBhbmQgc2VlIHdoYXQgaGFwcGVucy4KICAgICBXS1BhZ2VMb2FkVVJMKHN0YXRlcy53ZWJWaWV3
LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJnN0YXRlcy5yZXNpemVBZnRlckNy
YXNoKTsKKyAgICBydW5VbnRpbChzdGF0ZXMucmVzaXplQWZ0ZXJDcmFzaCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1Jlc3BvbnNpdmVuZXNzVGltZXJDcmFzaC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXNwb25zaXZlbmVzc1RpbWVyQ3Jhc2gubW0JKHJl
dmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Jlc3Bv
bnNpdmVuZXNzVGltZXJDcmFzaC5tbQkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsNyBAQCBU
RVNUKFdlYktpdCwgUmVzcG9uc2l2ZW5lc3NUaW1lckNyYXNoKQogICAgICAgICBbd2ViVmlldyB0
eXBlQ2hhcmFjdGVyOidhJ107CiAgICAgfQogICAgIAotICAgIFV0aWw6OnJ1bigmZGlkQmVjb21l
VW5yZXNwb25zaXZlKTsKKyAgICBydW5VbnRpbChkaWRCZWNvbWVVbnJlc3BvbnNpdmUpOwogCiAg
ICAgW3dlYlZpZXcgcmVtb3ZlT2JzZXJ2ZXI6b2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAIl93
ZWJQcm9jZXNzSXNSZXNwb25zaXZlIl07CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9SZXN0b3JlU2Vzc2lvblN0YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXN0b3JlU2Vzc2lvblN0YXRlLmNwcAkocmV2aXNp
b24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzdG9yZVNl
c3Npb25TdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIFdL
UmV0YWluUHRyPFdLRGF0YVJlZj4gY3JlYXRlU2VzcwogICAgIHNldFBhZ2VMb2FkZXJDbGllbnQo
d2ViVmlldy5wYWdlKCkpOwogCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRv
cHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlLWZvcm0iLCAiaHRtbCIpKS5n
ZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRG
aW5pc2hMb2FkKTsKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAKICAgICBhdXRvIHNlc3Np
b25TdGF0ZSA9IGFkb3B0V0soc3RhdGljX2Nhc3Q8V0tTZXNzaW9uU3RhdGVSZWY+KFdLUGFnZUNv
cHlTZXNzaW9uU3RhdGUod2ViVmlldy5wYWdlKCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KDEp
LCBudWxscHRyKSkpOwpAQCAtOTYsNyArOTYsNyBAQCBURVNUKFdlYktpdCwgUmVzdG9yZVNlc3Np
b25TdGF0ZUNvbnRhaW5pCiAgICAgYXV0byBzZXNzaW9uU3RhdGUgPSBhZG9wdFdLKFdLU2Vzc2lv
blN0YXRlQ3JlYXRlRnJvbURhdGEoZGF0YS5nZXQoKSkpOwogICAgIFdLUGFnZVJlc3RvcmVGcm9t
U2Vzc2lvblN0YXRlKHdlYlZpZXcucGFnZSgpLCBzZXNzaW9uU3RhdGUuZ2V0KCkpOwogCi0gICAg
VXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsK
IAogICAgIEVYUEVDVF9KU19FUSh3ZWJWaWV3LnBhZ2UoKSwgImhpc3Rvcnkuc2Nyb2xsUmVzdG9y
YXRpb24iLCAiYXV0byIpOwogfQpAQCAtMTIxLDcgKzEyMSw3IEBAIFRFU1QoV2ViS2l0LCBSZXN0
b3JlU2Vzc2lvblN0YXRlQ29udGFpbmkKICAgICBhdXRvIHNlc3Npb25TdGF0ZSA9IGFkb3B0V0so
V0tTZXNzaW9uU3RhdGVDcmVhdGVGcm9tRGF0YShkYXRhLmdldCgpKSk7CiAgICAgV0tQYWdlUmVz
dG9yZUZyb21TZXNzaW9uU3RhdGUod2ViVmlldy5wYWdlKCksIHNlc3Npb25TdGF0ZS5nZXQoKSk7
CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlz
aExvYWQpOwogCiAgICAgRVhQRUNUX0pTX0VRKHdlYlZpZXcucGFnZSgpLCAiaGlzdG9yeS5zY3Jv
bGxSZXN0b3JhdGlvbiIsICJhdXRvIik7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9SZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmluZ0Zvcm1EYXRhLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9SZXN0b3JlU2Vzc2lv
blN0YXRlQ29udGFpbmluZ0Zvcm1EYXRhLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvUmVzdG9yZVNlc3Npb25TdGF0ZUNvbnRhaW5pbmdG
b3JtRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5LDExICs1OSwxMSBAQCBzdGF0aWMgV0tS
ZXRhaW5QdHI8V0tEYXRhUmVmPiBjcmVhdGVTZXNzCiAgICAgc2V0UGFnZUxvYWRlckNsaWVudCh3
ZWJWaWV3LnBhZ2UoKSk7CiAKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9w
dFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUtZm9ybSIsICJodG1sIikpLmdl
dCgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZp
bmlzaExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9KU19F
USh3ZWJWaWV3LnBhZ2UoKSwgInN1Ym1pdEZvcm0oKSIsICJ1bmRlZmluZWQiKTsKLSAgICBVdGls
OjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAg
IGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKIAogICAgIGF1dG8gc2Vzc2lvblN0YXRlID0gYWRvcHRX
SyhzdGF0aWNfY2FzdDxXS1Nlc3Npb25TdGF0ZVJlZj4oV0tQYWdlQ29weVNlc3Npb25TdGF0ZSh3
ZWJWaWV3LnBhZ2UoKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMSksIG51bGxwdHIpKSk7CkBA
IC04Niw3ICs4Niw3IEBAIFRFU1QoV2ViS2l0LCBSZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmkK
ICAgICBhdXRvIHNlc3Npb25TdGF0ZSA9IGFkb3B0V0soV0tTZXNzaW9uU3RhdGVDcmVhdGVGcm9t
RGF0YShkYXRhLmdldCgpKSk7CiAgICAgV0tQYWdlUmVzdG9yZUZyb21TZXNzaW9uU3RhdGUod2Vi
Vmlldy5wYWdlKCksIHNlc3Npb25TdGF0ZS5nZXQoKSk7CiAKLSAgICBVdGlsOjpydW4oJmRpZEZp
bmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogCiAgICAgRVhQRUNUX1RS
VUUoV0tQYWdlQ2FuR29CYWNrKHdlYlZpZXcucGFnZSgpKSk7CiB9CkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TY3JvbGxQaW5uaW5nQmVo
YXZpb3JzLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkz
LDcgKzkzLDcgQEAgVEVTVChXZWJLaXQsIFNjcm9sbFBpbm5pbmdCZWhhdmlvcnMpCiAKICAgICBX
S1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJl
c291cmNlKCJzaW1wbGUtdGFsbCIsICJodG1sIikpLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigm
dGVzdERvbmUpOworICAgIHJ1blVudGlsKHRlc3REb25lKTsKICAgICBFWFBFQ1RfVFJVRSh0ZXN0
RG9uZSk7CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Nob3Vs
ZEtlZXBDdXJyZW50QmFja0ZvcndhcmRMaXN0SXRlbUluTGlzdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU2hvdWxkS2VlcEN1cnJlbnRCYWNrRm9y
d2FyZExpc3RJdGVtSW5MaXN0LmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvU2hvdWxkS2VlcEN1cnJlbnRCYWNrRm9yd2FyZExpc3RJdGVt
SW5MaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDIyICsxMjksMjIgQEAgVEVTVChXZWJL
aXQsIFNob3VsZEtlZXBDdXJyZW50QmFja0ZvcndhcgogICAgIHNldFBhZ2VMb2FkZXJDbGllbnQo
d2ViVmlldy5wYWdlKCkpOwogCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRv
cHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwgImh0bWwiKSkuZ2V0KCkp
OwotICAgIFV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIHJ1blVudGlsKGZpbmlzaGVkKTsKICAg
ICBFWFBFQ1RfRVEoc3VjY2Vzc2Z1bFNvRmFyLCB0cnVlKTsKIAogICAgIGZpbmlzaGVkID0gZmFs
c2U7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpjcmVh
dGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlMiIsICJodG1sIikpLmdldCgpKTsKLSAgICBVdGlsOjpy
dW4oJmZpbmlzaGVkKTsKKyAgICBydW5VbnRpbChmaW5pc2hlZCk7CiAgICAgRVhQRUNUX0VRKHN1
Y2Nlc3NmdWxTb0ZhciwgdHJ1ZSk7CiAKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogICAgIFdLUGFn
ZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3Vy
Y2UoInNpbXBsZTMiLCAiaHRtbCIpKS5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7
CisgICAgcnVuVW50aWwoZmluaXNoZWQpOwogICAgIEVYUEVDVF9FUShzdWNjZXNzZnVsU29GYXIs
IHRydWUpOwogCiAgICAgZmluaXNoZWQgPSBmYWxzZTsKICAgICBXS1BhZ2VHb0JhY2sod2ViVmll
dy5wYWdlKCkpOwotICAgIFV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIHJ1blVudGlsKGZpbmlz
aGVkKTsKIAogICAgIEVYUEVDVF9FUShzdWNjZXNzZnVsU29GYXIsIHRydWUpOwogICAgIEVYUEVD
VF9FUShuYXZpZ2F0aW9uTnVtYmVyLCA0KTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1NwYWNlYmFyU2Nyb2xsaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9TcGFjZWJhclNjcm9sbGluZy5jcHAJKHJldmlzaW9uIDI0
NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1NwYWNlYmFyU2Nyb2xs
aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCBURVNUKFdlYktpdCwgU3Bh
Y2ViYXJTY3JvbGxpbmcpCiAKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRX
SyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic3BhY2ViYXItc2Nyb2xsaW5nIiwgImh0bWwi
KSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBV
dGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwog
CiAgICAgRVhQRUNUX0pTX0ZBTFNFKHdlYlZpZXcucGFnZSgpLCAiaXNEb2N1bWVudFNjcm9sbGVk
KCkiKTsKICAgICBFWFBFQ1RfSlNfRkFMU0Uod2ViVmlldy5wYWdlKCksICJ0ZXh0RmllbGRDb250
YWluc1NwYWNlKCkiKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1N0
b3BMb2FkaW5nRHVyaW5nRGlkRmFpbFByb3Zpc2lvbmFsTG9hZC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvU3RvcExvYWRpbmdEdXJpbmdEaWRGYWls
UHJvdmlzaW9uYWxMb2FkLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvU3RvcExvYWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBAQCBURVNUKFdlYktpdCwgU3RvcExv
YWRpbmdEdXJpbmdEaWRGYWlsUHJvCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFk
b3B0V0soVXRpbDo6VVJMRm9yTm9uRXhpc3RlbnRSZXNvdXJjZSgpKTsKICAgICBXS1BhZ2VMb2Fk
VVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCi0gICAgVXRpbDo6cnVuKCZkb25lKTsK
KyAgICBydW5VbnRpbChkb25lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVGVybWluYXRlVHdpY2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1Rlcm1pbmF0
ZVR3aWNlLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvVGVybWluYXRlVHdpY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3
IEBAIFRFU1QoV2ViS2l0LCBUZXJtaW5hdGVUd2ljZSkKICAgICBXS1JldGFpblB0cjxXS1VSTFJl
Zj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwgImh0
bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAot
ICAgIFV0aWw6OnJ1bigmbG9hZGVkKTsKKyAgICBydW5VbnRpbChsb2FkZWQpOwogICAgIFdLUGFn
ZVRlcm1pbmF0ZSh3ZWJWaWV3LnBhZ2UoKSk7CiAKICAgICAvLyBSZWxvYWRpbmcgd2lsbCBzdGFy
dCByZWxhdW5jaGluZyB0aGUgcHJvY2Vzcy4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1RleHRGaWVsZERpZEJlZ2luQW5kRW5kRWRpdGluZy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvVGV4dEZpZWxkRGlkQmVnaW5BbmRF
bmRFZGl0aW5nLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODcsNyArODcsNyBAQCBzdHJ1Y3QgV2ViS2l0MlRleHRGaWVsZEJlZ2luQW5kRWRp
dEVkaXRpCiAgICAgewogICAgICAgICBkaWRSZWNlaXZlTWVzc2FnZSA9IGZhbHNlOwogICAgICAg
ICBXS1BhZ2VSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWUod2ViVmlldy0+cGFnZSgpLCBVdGlsOjp0
b1dLKGphdmFTY3JpcHRDb2RlKS5nZXQoKSwgMCwgbnVsbEphdmFTY3JpcHRDYWxsYmFjayk7Ci0g
ICAgICAgIFV0aWw6OnJ1bigmZGlkUmVjZWl2ZU1lc3NhZ2UpOworICAgICAgICBydW5VbnRpbChk
aWRSZWNlaXZlTWVzc2FnZSk7CiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShleHBlY3RlZE1lc3Nh
Z2VOYW1lLCBtZXNzYWdlTmFtZSk7CiAgICAgfQogCkBAIC0xMDQsNyArMTA0LDcgQEAgc3RydWN0
IFdlYktpdDJUZXh0RmllbGRCZWdpbkFuZEVkaXRFZGl0aQogICAgICAgICBkaWRSZWNlaXZlTWVz
c2FnZSA9IGZhbHNlOwogCiAgICAgICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy0+cGFnZSgpLCBh
ZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJpbnB1dC1mb2N1cy1ibHVyIiwgImh0
bWwiKSkuZ2V0KCkpOwotICAgICAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgICAg
ICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICB9CiB9OwogCkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Vc2VyTWVkaWEuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAJKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJNZWRpYS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDcgQEAgVEVTVChXZWJLaXQsIFVzZXJNZWRpYUJhc2lj
KQogCiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAotICAg
IFV0aWw6OnJ1bigmd2FzUHJvbXB0ZWQpOworICAgIHJ1blVudGlsKHdhc1Byb21wdGVkKTsKIH0K
IAogc3RhdGljIHZvaWQgZGlkQ3Jhc2hDYWxsYmFjayhXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqKQpA
QCAtMTQxLDcgKzE0MSw3IEBAIFRFU1QoV2ViS2l0LCBPbkRldmljZUNoYW5nZUNyYXNoKQogICAg
IHdhc1Byb21wdGVkID0gZmFsc2U7CiAgICAgdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxG
b3JSZXNvdXJjZSgiZ2V0VXNlck1lZGlhIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3
ZWJWaWV3Mi5wYWdlKCksIHVybC5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZ3YXNQcm9tcHRlZCk7
CisgICAgcnVuVW50aWwod2FzUHJvbXB0ZWQpOwogICAgIEVYUEVDVF9FUShXS1BhZ2VHZXRQcm9j
ZXNzSWRlbnRpZmllcih3ZWJWaWV3LnBhZ2UoKSksIFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVy
KHdlYlZpZXcyLnBhZ2UoKSkpOwogCiAgICAgZGlkQ3Jhc2ggPSBmYWxzZTsKQEAgLTE1Miw3ICsx
NTIsNyBAQCBURVNUKFdlYktpdCwgT25EZXZpY2VDaGFuZ2VDcmFzaCkKICAgICB3YXNQcm9tcHRl
ZCA9IGZhbHNlOwogICAgIHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2Uo
ImdldFVzZXJNZWRpYSIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldzIucGFn
ZSgpLCB1cmwuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigmd2FzUHJvbXB0ZWQpOworICAgIHJ1blVu
dGlsKHdhc1Byb21wdGVkKTsKICAgICAvLyBWZXJpZnkgcGFnZXMgcHJvY2VzcyBkaWQgbm90IGNy
YXNoLgogICAgIEVYUEVDVF9UUlVFKCFkaWRDcmFzaCk7CiB9CkBAIC0xOTIsNyArMTkyLDcgQEAg
VEVTVChXZWJLaXQsIEVudW1lcmF0ZURldmljZXNDcmFzaCkKICAgICBkaWRSZWNlaXZlTWVzc2Fn
ZSA9IGZhbHNlOwogICAgIGF1dG8gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNv
dXJjZSgiZ2V0VXNlck1lZGlhIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3
LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRpZFJlY2VpdmVNZXNzYWdlKTsK
KyAgICBydW5VbnRpbChkaWRSZWNlaXZlTWVzc2FnZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1VzZXJN
ZXNzYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9Vc2VyTWVzc2FnZS5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L1VzZXJNZXNzYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDcg
KzEwMSw3IEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBGb3JjZSB0aGUgY3JlYXRpb24gb2YgdGhl
IAogICAgICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXctPnBhZ2UoKSwgYWRvcHRXSyhVdGlsOjpj
cmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwgImh0bWwiKSkuZ2V0KCkpOwotICAgICAgICBV
dGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgICAgICBydW5VbnRpbChkaWRGaW5pc2hMb2Fk
KTsKIAogICAgIH0KIApAQCAtMTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmVjaWV2
ZWRCb2R5LmNsZWFyKCk7CiAgICAgICAgIGRpZFJlY2VpdmVNZXNzYWdlID0gZmFsc2U7CiAgICAg
ICAgIFdLQ29udGV4dFBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShjb250ZXh0LmdldCgpLCBV
dGlsOjp0b1dLKCJSb3VuZFRyaXAiKS5nZXQoKSwgb2JqZWN0KTsKLSAgICAgICAgVXRpbDo6cnVu
KCZkaWRSZWNlaXZlTWVzc2FnZSk7CisgICAgICAgIHJ1blVudGlsKGRpZFJlY2VpdmVNZXNzYWdl
KTsKIAogICAgICAgICBFWFBFQ1RfTk9UX05VTEwocmVjaWV2ZWRCb2R5KTsKICAgICAgICAgRVhQ
RUNUX0VRKHN0b3JlZFR5cGVJRCwgV0tHZXRUeXBlSUQocmVjaWV2ZWRCb2R5LmdldCgpKSk7Cklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9WaWV3cG9ydFNpemVGb3JWaWV3
cG9ydFVuaXRzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1ZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMubW0JKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1ZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0
VW5pdHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgVEVTVChXZWJLaXQsIFZp
ZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdAogICAgICAgICB2aWV3cG9ydFNpemVUZXN0RG9uZSA9
IHRydWU7CiAgICAgfV07CiAgICAgdmlld3BvcnRTaXplVGVzdERvbmUgPSBmYWxzZTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnZpZXdwb3J0U2l6ZVRlc3REb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbCh2aWV3cG9ydFNpemVUZXN0RG9uZSk7CiAKICAgICAvLyB2aWV3
cG9ydCB3aWR0aCBpcyA1MHB4LgogICAgIFt3ZWJWaWV3IF9zZXRWaWV3cG9ydFNpemVGb3JDU1NW
aWV3cG9ydFVuaXRzOk5TTWFrZVNpemUoNTAsIDUwKV07CkBAIC01OSw3ICs1OSw3IEBAIFRFU1Qo
V2ViS2l0LCBWaWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXQKICAgICAgICAgdmlld3BvcnRTaXpl
VGVzdERvbmUgPSB0cnVlOwogICAgIH1dOwogICAgIHZpZXdwb3J0U2l6ZVRlc3REb25lID0gZmFs
c2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZ2aWV3cG9ydFNpemVUZXN0RG9uZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwodmlld3BvcnRTaXplVGVzdERvbmUpOwogCiAg
ICAgLy8gdmlld3BvcnQgaGVpZ2h0IDEwcHguCiAgICAgW3dlYlZpZXcgX3NldFZpZXdwb3J0U2l6
ZUZvckNTU1ZpZXdwb3J0VW5pdHM6TlNNYWtlU2l6ZSgxMCwgMTApXTsKQEAgLTcxLDcgKzcxLDcg
QEAgVEVTVChXZWJLaXQsIFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdAogICAgICAgICB2aWV3
cG9ydFNpemVUZXN0RG9uZSA9IHRydWU7CiAgICAgfV07CiAgICAgdmlld3BvcnRTaXplVGVzdERv
bmUgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnZpZXdwb3J0U2l6ZVRl
c3REb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbCh2aWV3cG9ydFNpemVUZXN0RG9u
ZSk7CiAKICAgICBib29sIGV4Y2VwdGlvblJhaXNlZCA9IGZhbHNlOwogICAgIEB0cnkgewpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tCYWNrRm9yd2FyZExpc3QubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tCYWNrRm9y
d2FyZExpc3QubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L1dLQmFja0ZvcndhcmRMaXN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNiAr
MTYzLDYgQEAgVEVTVChXS0JhY2tGb3J3YXJkTGlzdCwgV2luZG93TG9jYXRpb25BcwogICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbQXN5bmNQb2xpY3lEZWNpc2lvbkRlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdl
dCgpXTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+d2luZG93LmxvY2F0
aW9uPSdzaW1wbGUuaHRtbCc8L3NjcmlwdD4iIGJhc2VVUkw6c2ltcGxlMl07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKICAgICBFWFBFQ1RfU1RSRVEod2ViVmlldy5nZXQoKS5iYWNrRm9yd2FyZExpc3QuY3Vy
cmVudEl0ZW0uVVJMLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcsIHNpbXBsZS5hYnNvbHV0ZVN0
cmluZy5VVEY4U3RyaW5nKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1dLUGFnZUNvbmZpZ3VyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNvbmZpZ3VyYXRpb24uY3BwCShyZXZpc2lvbiAyNDU1
MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VDb25maWd1cmF0
aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNyBAQCBURVNUKFdlYktpdCwgV0tQ
YWdlQ29uZmlndXJhdGlvbkJhc2ljKQogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCks
IHVybC5nZXQoKSk7CiAKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7Ci0gICAgVXRpbDo6cnVu
KCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKIH0KIAogVEVT
VChXZWJLaXQsIFdLUGFnZUNvbmZpZ3VyYXRpb25CYXNpY1dpdGhEYXRhU3RvcmUpCkBAIC0xMDIs
NyArMTAyLDcgQEAgVEVTVChXZWJLaXQsIFdLUGFnZUNvbmZpZ3VyYXRpb25CYXNpY1dpdAogICAg
IFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAKICAgICBkaWRGaW5p
c2hMb2FkID0gZmFsc2U7Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5V
bnRpbChkaWRGaW5pc2hMb2FkKTsKIH0KIAogVEVTVChXZWJLaXQsIFdLUGFnZUNvbmZpZ3VyYXRp
b25CYXNpY1dpdGhOb25QZXJzaXN0ZW50RGF0YVN0b3JlKQpAQCAtMTI0LDcgKzEyNCw3IEBAIFRF
U1QoV2ViS2l0LCBXS1BhZ2VDb25maWd1cmF0aW9uQmFzaWNXaXQKICAgICBXS1BhZ2VMb2FkVVJM
KHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNl
OwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNo
TG9hZCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNvcHlTZXNzaW9uU3RhdGVXaXRoRmlsdGVy
aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9X
S1BhZ2VDb3B5U2Vzc2lvblN0YXRlV2l0aEZpbHRlcmluZy5jcHAJKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUNvcHlTZXNzaW9uU3Rh
dGVXaXRoRmlsdGVyaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsMjMgKzc4LDIzIEBAIHN0
YXRpYyB2b2lkIGNyZWF0ZVNlc3Npb25TdGF0ZXMoV0tDb250ZXgKICAgICBzZXRQYWdlTG9hZGVy
Q2xpZW50KHdlYlZpZXcucGFnZSgpKTsKIAogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdl
KCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJodG1sIikp
LmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRp
ZEZpbmlzaExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKIAogICAgIFdLUGFnZUxv
YWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2Uo
InNpbXBsZTIiLCAiaHRtbCIpKS5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2Fk
KTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICBkaWRGaW5pc2hMb2FkID0gZmFs
c2U7CiAKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9wdFdLKFV0aWw6OmNy
ZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUzIiwgImh0bWwiKSkuZ2V0KCkpOwotICAgIFV0aWw6
OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAg
ZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgV0tQYWdlR29CYWNrKHdlYlZpZXcucGFnZSgp
KTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlz
aExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKIAogICAgIFdLUGFnZUdvQmFjayh3
ZWJWaWV3LnBhZ2UoKSk7Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5V
bnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAKICAgICAv
LyBTaG91bGQgYmUgYmFjayBvbiBzaW1wbGUuaHRtbCBhdCB0aGlzIHBvaW50LgpAQCAtMTEzLDcg
KzExMyw3IEBAIFRFU1QoV2ViS2l0LCBXS1BhZ2VDb3B5U2Vzc2lvblN0YXRlV2l0aEYKICAgICBQ
bGF0Zm9ybVdlYlZpZXcgd2ViVmlldzEoY29udGV4dC5nZXQoKSk7CiAgICAgc2V0UGFnZUxvYWRl
ckNsaWVudCh3ZWJWaWV3MS5wYWdlKCkpOwogICAgIFdLUGFnZVJlc3RvcmVGcm9tU2Vzc2lvblN0
YXRlKHdlYlZpZXcxLnBhZ2UoKSwgc2Vzc2lvblN0YXRlV2l0aEZpcnN0SXRlbVJlbW92ZWQuZ2V0
KCkpOwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmlu
aXNoTG9hZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgV0tCYWNrRm9yd2Fy
ZExpc3RSZWYgYmFja0ZvcndhcmRMaXN0MSA9IFdLUGFnZUdldEJhY2tGb3J3YXJkTGlzdCh3ZWJW
aWV3MS5wYWdlKCkpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQ
YWdlR2V0U2NhbGVGYWN0b3JOb3RaZXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VHZXRTY2FsZUZhY3Rvck5vdFplcm8uY3BwCShyZXZp
c2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XS1BhZ2VH
ZXRTY2FsZUZhY3Rvck5vdFplcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBA
IHN0YXRpYyBXS1JldGFpblB0cjxXS1Nlc3Npb25TdGF0ZVJlZj4gY3IKICAgICBzZXRQYWdlTG9h
ZGVyQ2xpZW50KHdlYlZpZXcucGFnZSgpKTsKIAogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5w
YWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJodG1s
IikpLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGls
KGRpZEZpbmlzaExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKIAogICAgIHJldHVy
biBhZG9wdFdLKHN0YXRpY19jYXN0PFdLU2Vzc2lvblN0YXRlUmVmPihXS1BhZ2VDb3B5U2Vzc2lv
blN0YXRlKHdlYlZpZXcucGFnZSgpLCByZWludGVycHJldF9jYXN0PHZvaWQqPigxKSwgbnVsbHB0
cikpKTsKQEAgLTc0LDcgKzc0LDcgQEAgVEVTVChXZWJLaXQsIFdLUGFnZUdldFNjYWxlRmFjdG9y
Tm90WmVybwogICAgIEVYUEVDVF9OT1RfTlVMTChzZXNzaW9uU3RhdGUpOwogCiAgICAgV0tQYWdl
UmVzdG9yZUZyb21TZXNzaW9uU3RhdGUod2ViVmlldy5wYWdlKCksIHNlc3Npb25TdGF0ZS5nZXQo
KSk7Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5p
c2hMb2FkKTsKIAogICAgIEVYUEVDVF9UUlVFKFdLUGFnZUdldFNjYWxlRmFjdG9yKHdlYlZpZXcu
cGFnZSgpKSA9PSAxLjApOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvV0tQYWdlSXNQbGF5aW5nQXVkaW8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L1dLUGFnZUlzUGxheWluZ0F1ZGlvLmNwcAkocmV2aXNpb24gMjQ1
NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tQYWdlSXNQbGF5aW5n
QXVkaW8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsMTIgKzEwNCwxMiBAQCBURVNUKFdlYktp
dCwgV0tQYWdlSXNQbGF5aW5nQXVkaW8pCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9
IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImZpbGUtd2l0aC12aWRlbyIsICJo
dG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAK
LSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExv
YWQpOwogCiAgICAgRVhQRUNUX0ZBTFNFKFdLUGFnZUlzUGxheWluZ0F1ZGlvKHdlYlZpZXcucGFn
ZSgpKSk7CiAgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHdlYlZpZXcucGFnZSgp
LCBVdGlsOjp0b1dLKCJwbGF5VmlkZW8oKSIpLmdldCgpLCAwLCBudWxsSmF2YVNjcmlwdENhbGxi
YWNrKTsKIAotICAgIFV0aWw6OnJ1bigmaXNQbGF5aW5nQXVkaW9DaGFuZ2VkKTsKKyAgICBydW5V
bnRpbChpc1BsYXlpbmdBdWRpb0NoYW5nZWQpOwogICAgIEVYUEVDVF9UUlVFKFdLUGFnZUlzUGxh
eWluZ0F1ZGlvKHdlYlZpZXcucGFnZSgpKSk7CiB9CiAKQEAgLTEyOSwxMiArMTI5LDEyIEBAIFRF
U1QoV2ViS2l0LCBNU0VJc1BsYXlpbmdBdWRpbykKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7
CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAotICAgIFV0
aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAK
ICAgICAvLyBCYWlsIG91dCBvZiB0aGUgdGVzdCBlYXJseSBpZiB0aGUgcGxhdGZvcm0gZG9lcyBu
b3Qgc3VwcG9ydCBNU0UuCiAgICAgaXNNU0VFbmFibGVkQ2hhbmdlZCA9IGZhbHNlOwogICAgIFdL
UGFnZVJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZSh3ZWJWaWV3LnBhZ2UoKSwgVXRpbDo6dG9XSygi
d2luZG93Lk1lZGlhU291cmNlICE9PSB1bmRlZmluZWQiKS5nZXQoKSwgMCwgaXNNU0VFbmFibGVk
Q2FsbGJhY2spOwotICAgIFV0aWw6OnJ1bigmaXNNU0VFbmFibGVkQ2hhbmdlZCk7CisgICAgcnVu
VW50aWwoaXNNU0VFbmFibGVkQ2hhbmdlZCk7CiAgICAgaWYgKCFpc01TRUVuYWJsZWQpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMTQyLDcgKzE0Miw3IEBAIFRFU1QoV2ViS2l0LCBNU0VJc1BsYXlp
bmdBdWRpbykKICAgICBpc1BsYXlpbmdBdWRpb0NoYW5nZWQgPSBmYWxzZTsKICAgICBXS1BhZ2VS
dW5KYXZhU2NyaXB0SW5NYWluRnJhbWUod2ViVmlldy5wYWdlKCksIFV0aWw6OnRvV0soInBsYXlW
aWRlbygpIikuZ2V0KCksIDAsIG51bGxKYXZhU2NyaXB0Q2FsbGJhY2spOwogCi0gICAgVXRpbDo6
cnVuKCZpc1BsYXlpbmdBdWRpb0NoYW5nZWQpOworICAgIHJ1blVudGlsKGlzUGxheWluZ0F1ZGlv
Q2hhbmdlZCk7CiAgICAgRVhQRUNUX1RSVUUoV0tQYWdlSXNQbGF5aW5nQXVkaW8od2ViVmlldy5w
YWdlKCkpKTsKIH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tU
aHVtYm5haWxWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L1dLVGh1bWJuYWlsVmlldy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvV0tUaHVtYm5haWxWaWV3Lm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDQsNyArMTA0LDcgQEAgVEVTVChXZWJLaXQsIFdLVGh1bWJuYWlsVmlld0tlZXBTbmFw
c2hvdAogCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3Jl
YXRlVVJMRm9yUmVzb3VyY2UoImxvdHMtb2YtdGV4dCIsICJodG1sIikpOwogICAgIFdLUGFnZUxv
YWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5p
c2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICBkaWRGaW5pc2hMb2Fk
ID0gZmFsc2U7CiAKICAgICBSZXRhaW5QdHI8X1dLVGh1bWJuYWlsVmlldz4gdGh1bWJuYWlsVmll
dyA9IGFkb3B0TlMoW1tfV0tUaHVtYm5haWxWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgMTAwLCAxMDApIGZyb21XS1ZpZXc6d2tWaWV3XSk7CkBAIC0xMTQsNyArMTE0
LDcgQEAgVEVTVChXZWJLaXQsIFdLVGh1bWJuYWlsVmlld0tlZXBTbmFwc2hvdAogICAgIFt0aHVt
Ym5haWxWaWV3IGFkZE9ic2VydmVyOm9ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJzbmFwc2hv
dFNpemUiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0OnNuYXBz
aG90U2l6ZUNoYW5nZUtWT0NvbnRleHRdOwogCiAgICAgW3drVmlldy53aW5kb3cuY29udGVudFZp
ZXcgYWRkU3Vidmlldzp0aHVtYm5haWxWaWV3LmdldCgpXTsKLSAgICBVdGlsOjpydW4oJmRpZFRh
a2VTbmFwc2hvdCk7CisgICAgcnVuVW50aWwoZGlkVGFrZVNuYXBzaG90KTsKICAgICBkaWRUYWtl
U25hcHNob3QgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9FUShbdGh1bWJuYWlsVmlldyBzbmFwc2hv
dFNpemVdLndpZHRoLCA4MDApOwpAQCAtMTI1LDcgKzEyNSw3IEBAIFRFU1QoV2ViS2l0LCBXS1Ro
dW1ibmFpbFZpZXdLZWVwU25hcHNob3QKICAgICBFWFBFQ1RfVFJVRShbdGh1bWJuYWlsVmlldyBs
YXllcl0uY29udGVudHMgPT0gbmlsKTsKIAogICAgIFt3a1ZpZXcud2luZG93LmNvbnRlbnRWaWV3
IGFkZFN1YnZpZXc6dGh1bWJuYWlsVmlldy5nZXQoKV07Ci0gICAgVXRpbDo6cnVuKCZkaWRUYWtl
U25hcHNob3QpOworICAgIHJ1blVudGlsKGRpZFRha2VTbmFwc2hvdCk7CiAgICAgZGlkVGFrZVNu
YXBzaG90ID0gZmFsc2U7CiAKICAgICBbdGh1bWJuYWlsVmlldyBzZXRTaG91bGRLZWVwU25hcHNo
b3RXaGVuUmVtb3ZlZEZyb21TdXBlcnZpZXc6WUVTXTsKQEAgLTE1MCw3ICsxNTAsNyBAQCBURVNU
KFdlYktpdCwgV0tUaHVtYm5haWxWaWV3TWF4aW11bVNuYXBzCiAKICAgICBXS1JldGFpblB0cjxX
S1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgibG90cy1v
Zi10ZXh0IiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJs
LmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRp
ZEZpbmlzaExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKIAogICAgIFJldGFpblB0
cjxfV0tUaHVtYm5haWxWaWV3PiB0aHVtYm5haWxWaWV3ID0gYWRvcHROUyhbW19XS1RodW1ibmFp
bFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMDAsIDEwMCkgZnJv
bVdLVmlldzp3a1ZpZXddKTsKQEAgLTE2MCwxNCArMTYwLDE0IEBAIFRFU1QoV2ViS2l0LCBXS1Ro
dW1ibmFpbFZpZXdNYXhpbXVtU25hcHMKICAgICBbdGh1bWJuYWlsVmlldyBhZGRPYnNlcnZlcjpv
YnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAic25hcHNob3RTaXplIiBvcHRpb25zOk5TS2V5VmFs
dWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpzbmFwc2hvdFNpemVDaGFuZ2VLVk9Db250ZXh0
XTsKIAogICAgIFt3a1ZpZXcud2luZG93LmNvbnRlbnRWaWV3IGFkZFN1YnZpZXc6dGh1bWJuYWls
Vmlldy5nZXQoKV07Ci0gICAgVXRpbDo6cnVuKCZkaWRUYWtlU25hcHNob3QpOworICAgIHJ1blVu
dGlsKGRpZFRha2VTbmFwc2hvdCk7CiAgICAgZGlkVGFrZVNuYXBzaG90ID0gZmFsc2U7CiAKICAg
ICBFWFBFQ1RfRVEoW3RodW1ibmFpbFZpZXcgc25hcHNob3RTaXplXS53aWR0aCwgODAwKTsKICAg
ICBFWFBFQ1RfRkFMU0UoW3RodW1ibmFpbFZpZXcgbGF5ZXJdLmNvbnRlbnRzID09IG5pbCk7CiAK
ICAgICBbdGh1bWJuYWlsVmlldyBzZXRNYXhpbXVtU25hcHNob3RTaXplOkNHU2l6ZU1ha2UoMjAw
LCAwKV07Ci0gICAgVXRpbDo6cnVuKCZkaWRUYWtlU25hcHNob3QpOworICAgIHJ1blVudGlsKGRp
ZFRha2VTbmFwc2hvdCk7CiAgICAgZGlkVGFrZVNuYXBzaG90ID0gZmFsc2U7CiAKICAgICBFWFBF
Q1RfRVEoW3RodW1ibmFpbFZpZXcgc25hcHNob3RTaXplXS53aWR0aCwgMjAwKTsKQEAgLTE3NSw3
ICsxNzUsNyBAQCBURVNUKFdlYktpdCwgV0tUaHVtYm5haWxWaWV3TWF4aW11bVNuYXBzCiAgICAg
RVhQRUNUX0ZBTFNFKFt0aHVtYm5haWxWaWV3IGxheWVyXS5jb250ZW50cyA9PSBuaWwpOwogCiAg
ICAgW3RodW1ibmFpbFZpZXcgc2V0TWF4aW11bVNuYXBzaG90U2l6ZTpDR1NpemVNYWtlKDAsIDMw
MCldOwotICAgIFV0aWw6OnJ1bigmZGlkVGFrZVNuYXBzaG90KTsKKyAgICBydW5VbnRpbChkaWRU
YWtlU25hcHNob3QpOwogICAgIGRpZFRha2VTbmFwc2hvdCA9IGZhbHNlOwogCiAgICAgRVhQRUNU
X0VRKFt0aHVtYm5haWxWaWV3IHNuYXBzaG90U2l6ZV0ud2lkdGgsIDQwMCk7CkBAIC0xODMsNyAr
MTgzLDcgQEAgVEVTVChXZWJLaXQsIFdLVGh1bWJuYWlsVmlld01heGltdW1TbmFwcwogICAgIEVY
UEVDVF9GQUxTRShbdGh1bWJuYWlsVmlldyBsYXllcl0uY29udGVudHMgPT0gbmlsKTsKIAogICAg
IFt0aHVtYm5haWxWaWV3IHNldE1heGltdW1TbmFwc2hvdFNpemU6Q0dTaXplTWFrZSgyMDAsIDMw
MCldOwotICAgIFV0aWw6OnJ1bigmZGlkVGFrZVNuYXBzaG90KTsKKyAgICBydW5VbnRpbChkaWRU
YWtlU25hcHNob3QpOwogICAgIGRpZFRha2VTbmFwc2hvdCA9IGZhbHNlOwogCiAgICAgRVhQRUNU
X0VRKFt0aHVtYm5haWxWaWV3IHNuYXBzaG90U2l6ZV0ud2lkdGgsIDIwMCk7CkBAIC0yMDIsNyAr
MjAyLDcgQEAgVEVTVChXZWJLaXQsIFdLVGh1bWJuYWlsVmlld0tlZXBTbmFwc2hvdAogICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tUaHVtYm5haWxWaWV3RGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCld
OwogICAgIFt3ZWJWaWV3ICBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJsb3RzLW9mLXRleHQiIHdp
dGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdXV07Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRG
aW5pc2hMb2FkKTsKIAogICAgIFJldGFpblB0cjxfV0tUaHVtYm5haWxWaWV3PiB0aHVtYm5haWxW
aWV3ID0gYWRvcHROUyhbW19XS1RodW1ibmFpbFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNN
YWtlUmVjdCgwLCAwLCAxMDAsIDEwMCkgZnJvbVdLV2ViVmlldzp3ZWJWaWV3LmdldCgpXSk7CiAg
ICAgCkBAIC0yMTEsNyArMjExLDcgQEAgVEVTVChXZWJLaXQsIFdLVGh1bWJuYWlsVmlld0tlZXBT
bmFwc2hvdAogICAgIFt0aHVtYm5haWxWaWV3IGFkZE9ic2VydmVyOm9ic2VydmVyLmdldCgpIGZv
cktleVBhdGg6QCJzbmFwc2hvdFNpemUiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlv
bk5ldyBjb250ZXh0OnNuYXBzaG90U2l6ZUNoYW5nZUtWT0NvbnRleHRdOwogICAgIAogICAgIFt3
ZWJWaWV3IGFkZFN1YnZpZXc6dGh1bWJuYWlsVmlldy5nZXQoKV07Ci0gICAgVXRpbDo6cnVuKCZk
aWRUYWtlU25hcHNob3QpOworICAgIHJ1blVudGlsKGRpZFRha2VTbmFwc2hvdCk7CiAgICAgZGlk
VGFrZVNuYXBzaG90ID0gZmFsc2U7CiAgICAgCiAgICAgRVhQRUNUX0VRKFt0aHVtYm5haWxWaWV3
IHNuYXBzaG90U2l6ZV0ud2lkdGgsIDgwMCk7CkBAIC0yMjIsNyArMjIyLDcgQEAgVEVTVChXZWJL
aXQsIFdLVGh1bWJuYWlsVmlld0tlZXBTbmFwc2hvdAogICAgIEVYUEVDVF9UUlVFKFt0aHVtYm5h
aWxWaWV3IGxheWVyXS5jb250ZW50cyA9PSBuaWwpOwogICAgIAogICAgIFt3ZWJWaWV3IGFkZFN1
YnZpZXc6dGh1bWJuYWlsVmlldy5nZXQoKV07Ci0gICAgVXRpbDo6cnVuKCZkaWRUYWtlU25hcHNo
b3QpOworICAgIHJ1blVudGlsKGRpZFRha2VTbmFwc2hvdCk7CiAgICAgZGlkVGFrZVNuYXBzaG90
ID0gZmFsc2U7CiAgICAgCiAgICAgW3RodW1ibmFpbFZpZXcgc2V0U2hvdWxkS2VlcFNuYXBzaG90
V2hlblJlbW92ZWRGcm9tU3VwZXJ2aWV3OllFU107CkBAIC0yNDQsNyArMjQ0LDcgQEAgVEVTVChX
ZWJLaXQsIFdLVGh1bWJuYWlsVmlld01heGltdW1TbmFwcwogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbV0tUaHVtYm5haWxWaWV3RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2Vi
VmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3
ICBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJsb3RzLW9mLXRleHQiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07Ci0gICAgVXRp
bDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKIAog
ICAgIGF1dG8gdGh1bWJuYWlsVmlldyA9IGFkb3B0TlMoW1tfV0tUaHVtYm5haWxWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTAwLCAxMDApIGZyb21XS1dlYlZpZXc6
d2ViVmlldy5nZXQoKV0pOwogCkBAIC0yNTMsMTMgKzI1MywxMyBAQCBURVNUKFdlYktpdCwgV0tU
aHVtYm5haWxWaWV3TWF4aW11bVNuYXBzCiAgICAgW3RodW1ibmFpbFZpZXcgYWRkT2JzZXJ2ZXI6
b2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAInNuYXBzaG90U2l6ZSIgb3B0aW9uczpOU0tleVZh
bHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6c25hcHNob3RTaXplQ2hhbmdlS1ZPQ29udGV4
dF07CiAgICAgCiAgICAgW3dlYlZpZXcgYWRkU3Vidmlldzp0aHVtYm5haWxWaWV3LmdldCgpXTsK
LSAgICBVdGlsOjpydW4oJmRpZFRha2VTbmFwc2hvdCk7CisgICAgcnVuVW50aWwoZGlkVGFrZVNu
YXBzaG90KTsKICAgICBkaWRUYWtlU25hcHNob3QgPSBmYWxzZTsKICAgICBFWFBFQ1RfRVEoW3Ro
dW1ibmFpbFZpZXcgc25hcHNob3RTaXplXS53aWR0aCwgODAwKTsKICAgICBFWFBFQ1RfRkFMU0Uo
W3RodW1ibmFpbFZpZXcgbGF5ZXJdLmNvbnRlbnRzID09IG5pbCk7CiAgICAgCiAgICAgW3RodW1i
bmFpbFZpZXcgc2V0TWF4aW11bVNuYXBzaG90U2l6ZTpDR1NpemVNYWtlKDIwMCwgMCldOwotICAg
IFV0aWw6OnJ1bigmZGlkVGFrZVNuYXBzaG90KTsKKyAgICBydW5VbnRpbChkaWRUYWtlU25hcHNo
b3QpOwogICAgIGRpZFRha2VTbmFwc2hvdCA9IGZhbHNlOwogICAgIAogICAgIEVYUEVDVF9FUShb
dGh1bWJuYWlsVmlldyBzbmFwc2hvdFNpemVdLndpZHRoLCAyMDApOwpAQCAtMjY3LDcgKzI2Nyw3
IEBAIFRFU1QoV2ViS2l0LCBXS1RodW1ibmFpbFZpZXdNYXhpbXVtU25hcHMKICAgICBFWFBFQ1Rf
RkFMU0UoW3RodW1ibmFpbFZpZXcgbGF5ZXJdLmNvbnRlbnRzID09IG5pbCk7CiAgICAgCiAgICAg
W3RodW1ibmFpbFZpZXcgc2V0TWF4aW11bVNuYXBzaG90U2l6ZTpDR1NpemVNYWtlKDAsIDMwMCld
OwotICAgIFV0aWw6OnJ1bigmZGlkVGFrZVNuYXBzaG90KTsKKyAgICBydW5VbnRpbChkaWRUYWtl
U25hcHNob3QpOwogICAgIGRpZFRha2VTbmFwc2hvdCA9IGZhbHNlOwogICAgIAogICAgIEVYUEVD
VF9FUShbdGh1bWJuYWlsVmlldyBzbmFwc2hvdFNpemVdLndpZHRoLCA0MDApOwpAQCAtMjc1LDcg
KzI3NSw3IEBAIFRFU1QoV2ViS2l0LCBXS1RodW1ibmFpbFZpZXdNYXhpbXVtU25hcHMKICAgICBF
WFBFQ1RfRkFMU0UoW3RodW1ibmFpbFZpZXcgbGF5ZXJdLmNvbnRlbnRzID09IG5pbCk7CiAgICAg
CiAgICAgW3RodW1ibmFpbFZpZXcgc2V0TWF4aW11bVNuYXBzaG90U2l6ZTpDR1NpemVNYWtlKDIw
MCwgMzAwKV07Ci0gICAgVXRpbDo6cnVuKCZkaWRUYWtlU25hcHNob3QpOworICAgIHJ1blVudGls
KGRpZFRha2VTbmFwc2hvdCk7CiAgICAgZGlkVGFrZVNuYXBzaG90ID0gZmFsc2U7CiAgICAgCiAg
ICAgRVhQRUNUX0VRKFt0aHVtYm5haWxWaWV3IHNuYXBzaG90U2l6ZV0ud2lkdGgsIDIwMCk7Cklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XZWJBcmNoaXZlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XZWJBcmNoaXZlLmNw
cAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
V2ViQXJjaGl2ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMywxMSArMTIzLDExIEBAIFRFU1Qo
V2ViS2l0LCBXZWJBcmNoaXZlKQogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFk
b3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoInNpbXBsZSIsICJodG1sIikpLmdldCgp
KTsKIAogICAgIC8vIFdhaXQgdGlsbCB0aGUgbG9hZCBmaW5pc2hlcyBiZWZvcmUgZ2V0dGluZyB0
aGUgd2ViIGFyY2hpdmUuCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5V
bnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICBXS0NvbnRleHRQb3N0TWVzc2FnZVRvSW5qZWN0ZWRC
dW5kbGUoY29udGV4dC5nZXQoKSwgVXRpbDo6dG9XSygiR2V0V2ViQXJjaGl2ZSIpLmdldCgpLCB3
ZWJWaWV3LnBhZ2UoKSk7CiAKICAgICAvLyBXYWl0IHRpbGwgd2UgaGF2ZSByZWNlaXZlZCB0aGUg
d2ViIGFyY2hpdmUgZnJvbSB0aGUgaW5qZWN0ZWQgYnVuZGxlLgotICAgIFV0aWw6OnJ1bigmZGlk
UmVjZWl2ZU1lc3NhZ2UpOworICAgIHJ1blVudGlsKGRpZFJlY2VpdmVNZXNzYWdlKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvV2ViQ29yZVN0YXRpc3RpY3NXaXRoTm9XZWJQcm9jZXNzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9XZWJDb3JlU3RhdGlzdGlj
c1dpdGhOb1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9XZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIFRFU1QoV2ViS2l0LCBXZWJDb3JlU3Rh
dGlzdGljc1dpdGhOb1dlYlAKICAgICAKICAgICBXS0NvbnRleHRHZXRTdGF0aXN0aWNzKGNvbnRl
eHQuZ2V0KCksIDAsIHdrQ29udGV4dEdldFN0YXRpc3RpY3NDYWxsYmFjayk7CiAgICAgCi0gICAg
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
V2lsbExvYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L1dpbGxMb2FkLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvV2lsbExvYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHRlc3RXaWxsTG9hZFVSTFJlcXVlc3RSZXR1cm5WYWx1ZXMo
V0tVUkxSZWYgZXhwZWN0ZWRVUkwsIFdLU3RyaW5nUmVmIGV4cGVjdGVkVXNlckRhdGFTdHJpbmcp
CiAgICAgewogICAgICAgICBkaWRSZWNlaXZlTWVzc2FnZSA9IGZhbHNlOwotICAgICAgICBVdGls
OjpydW4oJmRpZFJlY2VpdmVNZXNzYWdlKTsKKyAgICAgICAgcnVuVW50aWwoZGlkUmVjZWl2ZU1l
c3NhZ2UpOwogCiAgICAgICAgIEVYUEVDVF9XS19TVFJFUSgiV2lsbExvYWRVUkxSZXF1ZXN0UmV0
dXJuIiwgbWVzc2FnZU5hbWUuZ2V0KCkpOwogCkBAIC0xMDEsNyArMTAxLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgdGVzdFdpbGxMb2FkRGF0YVJlcXVlc3RSZXR1cm5WYWx1ZXMoV0tVUkxSZWYgZXhw
ZWN0ZWRVUkwsIFdLU3RyaW5nUmVmIGV4cGVjdGVkTUlNRVR5cGUsIFdLU3RyaW5nUmVmIGV4cGVj
dGVkRW5jb2RpbmdOYW1lLCBXS1VSTFJlZiBleHBlY3RlZFVucmVhY2hhYmxlVVJMLCBXS1N0cmlu
Z1JlZiBleHBlY3RlZFVzZXJEYXRhU3RyaW5nKQogICAgIHsKICAgICAgICAgZGlkUmVjZWl2ZU1l
c3NhZ2UgPSBmYWxzZTsKLSAgICAgICAgVXRpbDo6cnVuKCZkaWRSZWNlaXZlTWVzc2FnZSk7Cisg
ICAgICAgIHJ1blVudGlsKGRpZFJlY2VpdmVNZXNzYWdlKTsKIAogICAgICAgICBFWFBFQ1RfV0tf
U1RSRVEoIldpbGxMb2FkRGF0YVJlcXVlc3RSZXR1cm4iLCBtZXNzYWdlTmFtZS5nZXQoKSk7CiAK
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dpbGxTZW5kU3VibWl0RXZl
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L1dp
bGxTZW5kU3VibWl0RXZlbnQuY3BwCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9XaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODQsNyArODQsNyBAQCBURVNUKFdlYktpdCwgV2lsbFNlbmRTdWJtaXRFdmVudCkKIAog
ICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogICAgIFdLUGFnZUxv
YWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2Uo
ImF1dG8tc3VibWl0dGluZy1mb3JtIiwgImh0bWwiKSkuZ2V0KCkpOwotICAgIFV0aWw6OnJ1bigm
ZGlkUmVjZWl2ZU1lc3NhZ2UpOworICAgIHJ1blVudGlsKGRpZFJlY2VpdmVNZXNzYWdlKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvbWFjL0F0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0
aEltYWdlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L21hYy9BdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZVdpdGhJbWFnZS5tbQkocmV2
aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0F0
dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlV2l0aEltYWdlLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC03MiwxMyArNzIsMTMgQEAgVEVTVChXZWJLaXQsIEF0dHJpYnV0ZWRTdWJzdHJpbmdG
b3JQcm9wbwogCiAgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6
Y3JlYXRlVVJMRm9yUmVzb3VyY2UoImNoaW5lc2UtY2hhcmFjdGVyLXdpdGgtaW1hZ2UiLCAiaHRt
bCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwotICAg
IFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7
CiAKICAgICBbd2ViVmlldy5wbGF0Zm9ybVZpZXcoKSBhdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJv
cG9zZWRSYW5nZTpOU01ha2VSYW5nZSgwLCAzKSBjb21wbGV0aW9uSGFuZGxlcjogXihOU0F0dHJp
YnV0ZWRTdHJpbmcgKmF0dHJTdHJpbmcsIE5TUmFuZ2UgYWN0dWFsUmFuZ2UpIHsKICAgICAgICAg
ZGlkRmluaXNoVGVzdCA9IHRydWU7CiAgICAgfV07CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlz
aFRlc3QpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaFRlc3QpOwogICAgIEVYUEVDVF9FUShkaWRP
YnNlcnZlV2ViUHJvY2Vzc1RvQ3Jhc2gsIGZhbHNlKTsKICAgICBFWFBFQ1RfRVEoZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlLCBmYWxzZSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVEb3dubG9hZC5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVEb3dubG9hZC5tbQko
cmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFj
L0NvbnRleHRNZW51RG93bmxvYWQubW0JKHdvcmtpbmcgY29weSkKQEAgLTEwNywxMSArMTA3LDEx
IEBAIFRFU1QoV2ViS2l0LCBDb250ZXh0TWVudURvd25sb2FkSFRNTERvd24KIAogICAgIGV4cGVj
dGVkT3JpZ2luYXRpbmdQYWdlID0gd2ViVmlldy5wYWdlKCk7CiAgICAgV0tQYWdlTG9hZFVSTCh3
ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQp
OworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogCiAgICAgLy8gUmlnaHQgY2xpY2sgb24g
bGluay4KICAgICB3ZWJWaWV3LnNpbXVsYXRlQnV0dG9uQ2xpY2soa1dLRXZlbnRNb3VzZUJ1dHRv
blJpZ2h0QnV0dG9uLCA1MCwgNTAsIDApOwotICAgIFV0aWw6OnJ1bigmZGlkRGVjaWRlRG93bmxv
YWREZXN0aW5hdGlvbik7CisgICAgcnVuVW50aWwoZGlkRGVjaWRlRG93bmxvYWREZXN0aW5hdGlv
bik7CiB9CiAKIHN0YXRpYyBXS1N0cmluZ1JlZiBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0
ZWRGaWxlbmFtZUNvbnRhaW5pbmdTbGFzaGVzKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiBk
b3dubG9hZCwgV0tTdHJpbmdSZWYgc3VnZ2VzdGVkRmlsZW5hbWUsIGJvb2wqLCBjb25zdCB2b2lk
KikKQEAgLTE1NCwxMSArMTU0LDExIEBAIFRFU1QoV2ViS2l0LCBDb250ZXh0TWVudURvd25sb2Fk
SFRNTERvd24KIAogICAgIGV4cGVjdGVkT3JpZ2luYXRpbmdQYWdlID0gd2ViVmlldy5wYWdlKCk7
CiAgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKLSAgICBVdGls
OjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogCiAg
ICAgLy8gUmlnaHQgY2xpY2sgb24gbGluay4KICAgICB3ZWJWaWV3LnNpbXVsYXRlQnV0dG9uQ2xp
Y2soa1dLRXZlbnRNb3VzZUJ1dHRvblJpZ2h0QnV0dG9uLCA1MCwgNTAsIDApOwotICAgIFV0aWw6
OnJ1bigmZGlkRGVjaWRlRG93bmxvYWREZXN0aW5hdGlvbik7CisgICAgcnVuVW50aWwoZGlkRGVj
aWRlRG93bmxvYWREZXN0aW5hdGlvbik7CiB9CiAKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L21hYy9Db250ZXh0TWVudUltZ1dpdGhWaWRlby5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ29udGV4dE1lbnVJbWdX
aXRoVmlkZW8ubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L21hYy9Db250ZXh0TWVudUltZ1dpdGhWaWRlby5tbQkod29ya2luZyBjb3B5KQpA
QCAtNzYsNyArNzYsNyBAQCBURVNUKFdlYktpdCwgQ29udGV4dE1lbnVJbWdXaXRoVmlkZW8pCiAK
ICAgICBjb250ZXh0TWVudVNob3duID0gZmFsc2U7CiAgICAgW3N1YlZpZXcgbW91c2VEb3duOmV2
ZW50XTsKLSAgICBVdGlsOjpydW4oJmNvbnRleHRNZW51U2hvd24pOworICAgIHJ1blVudGlsKGNv
bnRleHRNZW51U2hvd24pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvQ3VzdG9tQnVuZGxlUGFyYW1l
dGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21h
Yy9DdXN0b21CdW5kbGVQYXJhbWV0ZXIubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9DdXN0b21CdW5kbGVQYXJhbWV0ZXIubW0JKHdv
cmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDcgQEAgVEVTVChXZWJLaXQsIEN1c3RvbUJ1bmRsZVBh
cmFtZXRlcikKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGlsOjpj
cmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9hZFVS
TCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKICAgICAKLSAgICBVdGlsOjpydW4oJmRvbmUp
OworICAgIHJ1blVudGlsKGRvbmUpOwogfQogICAgIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNv
bW1hbmRzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L21hYy9FZGl0b3JDb21tYW5kcy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0VkaXRvckNvbW1hbmRzLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC02Miw3ICs2Miw3IEBAIFRFU1QoV2ViS2l0LCBTY3JvbGxCeUxpbmVDb21tYW5kcykKIAog
ICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZv
clJlc291cmNlKCJzaW1wbGUtdGFsbCIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2Vi
Vmlldy5wYWdlKCksIHVybC5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsK
KyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKIAogICAgIEVYUEVDVF9KU19FUSh3ZWJWaWV3
LnBhZ2UoKSwgIndpbmRvdy5zY3JvbGxZIiwgIjAiKTsKIApJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvbWFjL0ZvcmNlTGlnaHRBcHBlYXJhbmNlSW5CdW5kbGUubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0ZvcmNlTGln
aHRBcHBlYXJhbmNlSW5CdW5kbGUubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9Gb3JjZUxpZ2h0QXBwZWFyYW5jZUluQnVuZGxlLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC04MCwxMCArODAsMTAgQEAgVEVTVChXZWJLaXQsIEZvcmNlTGln
aHRBcHBlYXJhbmNlSW5CdW5kbAogICAgIFdLQ29udGV4dFNldEluamVjdGVkQnVuZGxlQ2xpZW50
KGNvbnRleHQuZ2V0KCksICZpbmplY3RlZEJ1bmRsZUNsaWVudC5iYXNlKTsKIAogICAgIFdLUGFn
ZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3Vy
Y2UoImRhcmstbW9kZSIsICJodG1sIikpLmdldCgpKTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlz
aExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogCiAgICAgV0tDb250ZXh0UG9z
dE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKGNvbnRleHQuZ2V0KCksIFV0aWw6OnRvV0soIlJ1blRl
c3QiKS5nZXQoKSwgbnVsbHB0cik7Ci0gICAgVXRpbDo6cnVuKCZtZXNzYWdlUmVjZWl2ZWQpOwor
ICAgIHJ1blVudGlsKG1lc3NhZ2VSZWNlaXZlZCk7CiAgICAgbWVzc2FnZVJlY2VpdmVkID0gZmFs
c2U7CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9HZXRC
YWNraW5nU2NhbGVGYWN0b3IubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvbWFjL0dldEJhY2tpbmdTY2FsZUZhY3Rvci5tbQkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL0dldEJhY2tpbmdTY2Fs
ZUZhY3Rvci5tbQkod29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNyBAQCBURVNUKFdlYktpdCwg
R2V0QmFja2luZ1NjYWxlRmFjdG9yKQogCiAgICAgW1t3aW5kb3cxLmdldCgpIGNvbnRlbnRWaWV3
XSBhZGRTdWJ2aWV3OnZpZXcuZ2V0KCldOwogICAgIFdLQ29udGV4dFBvc3RNZXNzYWdlVG9Jbmpl
Y3RlZEJ1bmRsZShjb250ZXh0LmdldCgpLCBVdGlsOjp0b1dLKCJHZXRCYWNraW5nU2NhbGVGYWN0
b3IiKS5nZXQoKSwgMCk7Ci0gICAgVXRpbDo6cnVuKCZtZXNzYWdlUmVjZWl2ZWQpOworICAgIHJ1
blVudGlsKG1lc3NhZ2VSZWNlaXZlZCk7CiAgICAgbWVzc2FnZVJlY2VpdmVkID0gZmFsc2U7CiAg
ICAgRVhQRUNUX0VRKDEsIGJhY2tpbmdTY2FsZUZhY3Rvcik7CiAKQEAgLTg1LDEzICs4NSwxMyBA
QCBURVNUKFdlYktpdCwgR2V0QmFja2luZ1NjYWxlRmFjdG9yKQogCiAgICAgW1t3aW5kb3cyLmdl
dCgpIGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OnZpZXcuZ2V0KCldOwogICAgIFdLQ29udGV4dFBv
c3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShjb250ZXh0LmdldCgpLCBVdGlsOjp0b1dLKCJHZXRC
YWNraW5nU2NhbGVGYWN0b3IiKS5nZXQoKSwgMCk7Ci0gICAgVXRpbDo6cnVuKCZtZXNzYWdlUmVj
ZWl2ZWQpOworICAgIHJ1blVudGlsKG1lc3NhZ2VSZWNlaXZlZCk7CiAgICAgbWVzc2FnZVJlY2Vp
dmVkID0gZmFsc2U7CiAgICAgRVhQRUNUX0VRKDIsIGJhY2tpbmdTY2FsZUZhY3Rvcik7CiAKICAg
ICBXS1BhZ2VTZXRDdXN0b21CYWNraW5nU2NhbGVGYWN0b3Iodmlldy5nZXQoKS5wYWdlUmVmLCAz
KTsKICAgICBXS0NvbnRleHRQb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoY29udGV4dC5nZXQo
KSwgVXRpbDo6dG9XSygiR2V0QmFja2luZ1NjYWxlRmFjdG9yIikuZ2V0KCksIDApOwotICAgIFV0
aWw6OnJ1bigmbWVzc2FnZVJlY2VpdmVkKTsKKyAgICBydW5VbnRpbChtZXNzYWdlUmVjZWl2ZWQp
OwogICAgIG1lc3NhZ2VSZWNlaXZlZCA9IGZhbHNlOwogICAgIEVYUEVDVF9FUSgzLCBiYWNraW5n
U2NhbGVGYWN0b3IpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
bWFjL0dldFBJREFmdGVyQWJvcnRlZFByb2Nlc3NMYXVuY2guY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9HZXRQSURBZnRlckFib3J0ZWRQcm9j
ZXNzTGF1bmNoLmNwcAkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvbWFjL0dldFBJREFmdGVyQWJvcnRlZFByb2Nlc3NMYXVuY2guY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIFRFU1QoV2ViS2l0LCBHZXRQSURBZnRlckFib3J0
ZWRQcm9jZXNzTGEKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsID0gYWRvcHRXSyhVdGls
OjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlIiwgImh0bWwiKSk7CiAgICAgV0tQYWdlTG9h
ZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmbG9hZGVk
KTsKKyAgICBydW5VbnRpbChsb2FkZWQpOwogICAgIFdLUGFnZVRlcm1pbmF0ZSh3ZWJWaWV3LnBh
Z2UoKSk7CiAKICAgICAvLyBSZWxvYWRpbmcgd2lsbCBzdGFydCByZWxhdW5jaGluZyB0aGUgcHJv
Y2Vzcy4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L21hYy9JbmplY3Rl
ZEJ1bmRsZUFwcGxlRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L21hYy9JbmplY3RlZEJ1bmRsZUFwcGxlRXZlbnQuY3BwCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9tYWMvSW5qZWN0ZWRC
dW5kbGVBcHBsZUV2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTAsNyArOTAsNyBAQCBURVNU
KFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVBcHBsZUV2ZW50KQogICAgIFdLUmV0YWluUHRyPFdLVVJM
UmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUiLCAi
aHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwog
Ci0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvbWFjL1Jlc3RvcmVTdGF0ZUFmdGVyVGVybWluYXRpb24ubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvbWFjL1Jlc3RvcmVTdGF0ZUFmdGVyVGVy
bWluYXRpb24ubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L21hYy9SZXN0b3JlU3RhdGVBZnRlclRlcm1pbmF0aW9uLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC05MywxMyArOTMsMTMgQEAgVEVTVChXZWJLaXQsIFJlc3RvcmVTdGF0ZUFmdGVyVGVy
bWluYXRpbwogCiAgICAgLy8gTG9hZCBhIHRlc3QgcGFnZSBjb250YWluaW5nIGEgZm9ybS4KICAg
ICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZv
clJlc291cmNlKCJzaW1wbGUtZm9ybSIsICJodG1sIikpLmdldCgpKTsKLSAgICBVdGlsOjpydW4o
JmxvYWRCZWZvcmVDcmFzaCk7CisgICAgcnVuVW50aWwobG9hZEJlZm9yZUNyYXNoKTsKIAogICAg
IC8vIE1ha2UgdGhlIHBhZ2UgdmlzaWJsZS4KICAgICBpc1dhaXRpbmdGb3JQYWdlU2lnbmFsVG9D
b250aW51ZSA9IHRydWU7CiAgICAgZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUgPSBmYWxzZTsK
ICAgICBbd2luZG93LmdldCgpIG1ha2VLZXlBbmRPcmRlckZyb250Om5pbF07Ci0gICAgVXRpbDo6
cnVuKCZkaWRHZXRQYWdlU2lnbmFsVG9Db250aW51ZSk7CisgICAgcnVuVW50aWwoZGlkR2V0UGFn
ZVNpZ25hbFRvQ29udGludWUpOwogICAgIEVYUEVDVF9KU19FUSh3ZWJWaWV3LnBhZ2UoKSwgImRv
Y3VtZW50LnZpc2liaWxpdHlTdGF0ZSIsICJ2aXNpYmxlIik7CiAKICAgICBFWFBFQ1RfSlNfRVEo
d2ViVmlldy5wYWdlKCksICJnZXRGb3JtRGF0YSgpIiwgIlNvbWUgdW5pbXBvcnRhbnQgZGF0YSIp
OwpAQCAtMTEzLDcgKzExMyw3IEBAIFRFU1QoV2ViS2l0LCBSZXN0b3JlU3RhdGVBZnRlclRlcm1p
bmF0aW8KICAgICBpc1dhaXRpbmdGb3JQYWdlU2lnbmFsVG9Db250aW51ZSA9IHRydWU7CiAgICAg
ZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUgPSBmYWxzZTsKICAgICBbd2ViVmlldy5wbGF0Zm9y
bVZpZXcoKSByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKLSAgICBVdGlsOjpydW4oJmRpZEdldFBhZ2VT
aWduYWxUb0NvbnRpbnVlKTsKKyAgICBydW5VbnRpbChkaWRHZXRQYWdlU2lnbmFsVG9Db250aW51
ZSk7CiAKICAgICBFWFBFQ1RfSlNfRVEod2ViVmlldy5wYWdlKCksICJkb2N1bWVudC52aXNpYmls
aXR5U3RhdGUiLCAiaGlkZGVuIik7CiAKQEAgLTEyMiw3ICsxMjIsNyBAQCBURVNUKFdlYktpdCwg
UmVzdG9yZVN0YXRlQWZ0ZXJUZXJtaW5hdGlvCiAKICAgICAvLyBSZWxvYWQgc2hvdWxkIHJlLXNw
YXduIHdlYnByb2Nlc3MgYW5kIHJlc3RvcmUgZG9jdW1lbnQgc3RhdGUuCiAgICAgV0tQYWdlUmVs
b2FkKHdlYlZpZXcucGFnZSgpKTsKLSAgICBVdGlsOjpydW4oJmxvYWRBZnRlckNyYXNoKTsKKyAg
ICBydW5VbnRpbChsb2FkQWZ0ZXJDcmFzaCk7CiAKICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUg
Zm9ybSBkYXRhIGlzIHJlc3RvcmVkIGFmdGVyIHRoZSByZWxvYWQuCiAgICAgRVhQRUNUX0pTX0VR
KHdlYlZpZXcucGFnZSgpLCAiZ2V0Rm9ybURhdGEoKSIsICJJbXBvcnRhbnQgZGF0YSIpOwpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BVkZvdW5kYXRpb25QcmVm
ZXJlbmNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvQVZGb3VuZGF0aW9uUHJlZmVyZW5jZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BVkZvdW5kYXRpb25QcmVmZXJlbmNl
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgICAgICBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OltOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAidGVzdCgnJXMnKSIsIGVsZW1lbnRUeXBlID09IEVsZW1lbnRUeXBlOjpBdWRpbyA/
ICJhdWRpbyIgOiAidmlkZW8iXV07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgICAgICBhdXRvIHR5cGUgPSBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZWxlbWVudFR5cGUoKSJdOwogCiAgICAgICAg
IGlmIChlbGVtZW50VHlwZSA9PSBFbGVtZW50VHlwZTo6QXVkaW8pCkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFVS
THMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9BZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWRVUkxzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FkZGl0aW9uYWxSZWFkQWNj
ZXNzQWxsb3dlZFVSTHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDcgQEAgVEVTVChX
ZWJLaXQsIEFkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZAogICAgICAgICBFWFBFQ1RfV0tfU1RS
RVEoQCJoZWxsbyIsIHN0cmluZyk7CiAgICAgICAgIEVYUEVDVF9FUShudWxscHRyLCBlcnJvcik7
CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBbcHJv
eHkgcmVhZFN0cmluZ0Zyb21VUkw6dW5yZWFkYWJsZUZpbGVVUkwgY29tcGxldGlvbkhhbmRsZXI6
XihOU1N0cmluZyAqc3RyaW5nLCBOU0Vycm9yICplcnJvcikgewpAQCAtMTAzLDcgKzEwMyw3IEBA
IFRFU1QoV2ViS2l0LCBBZGRpdGlvbmFsUmVhZEFjY2Vzc0FsbG93ZWQKICAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKE5TQ29jb2FFcnJvckRvbWFpbiwgZXJyb3IuZG9tYWluKTsKICAgICAgICAgRVhQ
RUNUX0VRKE5TRmlsZVJlYWROb1Blcm1pc3Npb25FcnJvciwgZXJyb3IuY29kZSk7CiAgICAgfV07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKIH0KIAogI2VuZGlmCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0FkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQWRkaXRpb25h
bFN1cHBvcnRlZEltYWdlVHlwZXMubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAgc3RhdGljIHZvaWQgcnVuVGVzdChO
U0FycmF5PE5TU3RyaW5nICo+IAogICAgICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICAgICAg
fV07CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0LCBBZGRT
dXBwb3J0ZWRJbWFnZVR5cGUpCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0FuaW1hdGVkUmVzaXplLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQW5pbWF0ZWRSZXNpemUubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQW5pbWF0ZWRSZXNpemUu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTk3LDcgKzk3LDcgQEAgVEVTVChXZWJLaXQsIERJU0FCTEVE
X1Jlc2l6ZVdpdGhIaWRkZW5DbwogICAgIFt3aW5kb3cgYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgp
XTsKICAgICBbd2luZG93IHNldEhpZGRlbjpOT107CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRpZExheW91dCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkTGF5b3V0
KTsKICAgICBkaWRMYXlvdXQgPSBmYWxzZTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCA1MDsgaSsrKSB7CkBAIC0xMDUsNyArMTA1LDcgQEAgVEVTVChXZWJLaXQsIERJU0FCTEVEX1Jl
c2l6ZVdpdGhIaWRkZW5DbwogICAgICAgICAgICAgW3dlYlZpZXcgc2V0RnJhbWU6Q0dSZWN0TWFr
ZSgwLCAwLCBbd2ViVmlldyBmcmFtZV0uc2l6ZS53aWR0aCArIDEwMCwgNDAwKV07CiAgICAgICAg
IH1dOwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRW5kQW5pbWF0ZWRS
ZXNpemUpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRFbmRBbmltYXRlZFJl
c2l6ZSk7CiAgICAgICAgIGRpZEVuZEFuaW1hdGVkUmVzaXplID0gZmFsc2U7CiAgICAgfQogfQpA
QCAtMTIxLDcgKzEyMSw3IEBAIFRFU1QoV2ViS2l0LCBBbmltYXRlZFJlc2l6ZURvZXNOb3RIYW5n
KQogICAgIFt3aW5kb3cgYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKICAgICBbd2luZG93IHNl
dEhpZGRlbjpOT107CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZExheW91dCk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkTGF5b3V0KTsKICAgICBkaWRMYXlvdXQg
PSBmYWxzZTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCA1MDsgaSsrKSB7CkBAIC0x
MzMsNyArMTMzLDcgQEAgVEVTVChXZWJLaXQsIEFuaW1hdGVkUmVzaXplRG9lc05vdEhhbmcpCiAg
ICAgICAgICAgICBbd2ViVmlldyBfZW5kQW5pbWF0ZWRSZXNpemVdOwogICAgICAgICB9KTsKIAot
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEVuZEFuaW1hdGVkUmVzaXplKTsK
KyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkRW5kQW5pbWF0ZWRSZXNpemUpOwog
ICAgICAgICBkaWRFbmRBbmltYXRlZFJlc2l6ZSA9IGZhbHNlOwogICAgIH0KIH0KQEAgLTE3MSw3
ICsxNzEsNyBAQCBURVNUKFdlYktpdCwgQW5pbWF0ZWRSZXNpemVCbG9ja3NWaWV3cG9yCiAgICAg
ICAgIFt3ZWJWaWV3IF9lbmRBbmltYXRlZFJlc2l6ZV07CiAgICAgfV07CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRpZEVuZEFuaW1hdGVkUmVzaXplKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkaWRFbmRBbmltYXRlZFJlc2l6ZSk7CiAgICAgZGlkRW5kQW5pbWF0ZWRS
ZXNpemUgPSBmYWxzZTsKIAogICAgIC8vIFdhaXQgZm9yIG9uZSBtb3JlIGNvbW1pdCBzbyB0aGF0
IHdlIHNlZSB0aGUgdmlld3BvcnQtZml0IHN0YXRlCkBAIC0xODAsNyArMTgwLDcgQEAgVEVTVChX
ZWJLaXQsIEFuaW1hdGVkUmVzaXplQmxvY2tzVmlld3BvcgogICAgIFt3ZWJWaWV3IF9kb0FmdGVy
TmV4dFByZXNlbnRhdGlvblVwZGF0ZTpeewogICAgICAgICBkaWRHZXRDb21taXRBZnRlckVuZEFu
aW1hdGVkUmVzaXplID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRpZEdldENvbW1pdEFmdGVyRW5kQW5pbWF0ZWRSZXNpemUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRpZEdldENvbW1pdEFmdGVyRW5kQW5pbWF0ZWRSZXNpemUpOwogCiAgICAg
RVhQRUNUX1RSVUUoZGlkQ2hhbmdlU2FmZUFyZWFTaG91bGRBZmZlY3RPYnNjdXJlZEluc2V0cyk7
CiB9CkBAIC0yMjIsNyArMjIyLDcgQEAgVEVTVChXZWJLaXQsIE92ZXJyaWRlTGF5b3V0U2l6ZUNo
YW5nZXNEdQogICAgICAgICB9XTsKICAgICB9XTsKICAgICAKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRpZFJlYWRMYXlvdXRTaXplKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkaWRSZWFkTGF5b3V0U2l6ZSk7CiB9CiAKIFRFU1QoV2ViS2l0LCBPdmVycmlkZUxheW91dFNp
emVJc1Jlc3RvcmVkQWZ0ZXJQcm9jZXNzUmVsYXVuY2gpCkBAIC0yNTMsNyArMjUzLDcgQEAgVEVT
VChXZWJLaXQsIE92ZXJyaWRlTGF5b3V0U2l6ZUlzUmVzdG9yZQogCiAgICAgICAgIGRpZFJlYWRM
YXlvdXRTaXplID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRpZFJlYWRMYXlvdXRTaXplKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRSZWFk
TGF5b3V0U2l6ZSk7CiB9CiAKIFRFU1QoV2ViS2l0LCBPdmVycmlkZUxheW91dFNpemVJc1Jlc3Rv
cmVkQWZ0ZXJDaGFuZ2luZ0R1cmluZ1Byb2Nlc3NSZWxhdW5jaCkKQEAgLTI4Niw3ICsyODYsNyBA
QCBURVNUKFdlYktpdCwgT3ZlcnJpZGVMYXlvdXRTaXplSXNSZXN0b3JlCiAKICAgICAgICAgZGlk
UmVhZExheW91dFNpemUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZGlkUmVhZExheW91dFNpemUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRp
ZFJlYWRMYXlvdXRTaXplKTsKIH0KIAogc3RhdGljIFVJVmlldyAqaW1tZWRpYXRlU3Vidmlld09m
Q2xhc3MoVUlWaWV3ICp2aWV3LCBDbGFzcyBjbHMpCkBAIC0zMzYsNyArMzM2LDcgQEAgVEVTVChX
ZWJLaXQsIFJlc2l6ZVdpdGhDb250ZW50SGlkZGVuQ29tcAogICAgICAgICAgICAgZGlkUmVhZExh
eW91dFNpemUgPSB0cnVlOwogICAgICAgICB9XTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRpZFJlYWRMYXlvdXRTaXplKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkaWRSZWFkTGF5b3V0U2l6ZSk7CiAgICAgCiAgICAgVUlWaWV3ICpzY3JvbGxWaWV3ID0g
aW1tZWRpYXRlU3Vidmlld09mQ2xhc3Mod2ViVmlldy5nZXQoKSwgTlNDbGFzc0Zyb21TdHJpbmco
QCJXS1Njcm9sbFZpZXciKSk7CiAgICAgVUlWaWV3ICpjb250ZW50VmlldyA9IGltbWVkaWF0ZVN1
YnZpZXdPZkNsYXNzKHNjcm9sbFZpZXcsIE5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tDb250ZW50Vmll
dyIpKTsKQEAgLTM4MSw3ICszODEsNyBAQCBURVNUKFdlYktpdCwgUmVzaXplV2l0aENvbnRlbnRI
aWRkZW5XaXRoCiAgICAgICAgICAgICBkaWRSZWFkTGF5b3V0U2l6ZSA9IHRydWU7CiAgICAgICAg
IH1dOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkUmVhZExheW91
dFNpemUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZFJlYWRMYXlvdXRTaXplKTsK
IAogICAgIFVJVmlldyAqc2Nyb2xsVmlldyA9IGltbWVkaWF0ZVN1YnZpZXdPZkNsYXNzKHdlYlZp
ZXcuZ2V0KCksIE5TQ2xhc3NGcm9tU3RyaW5nKEAiV0tTY3JvbGxWaWV3IikpOwogICAgIFVJVmll
dyAqY29udGVudFZpZXcgPSBpbW1lZGlhdGVTdWJ2aWV3T2ZDbGFzcyhzY3JvbGxWaWV3LCBOU0Ns
YXNzRnJvbVN0cmluZyhAIldLQ29udGVudFZpZXciKSk7CkBAIC00MjQsOCArNDI0LDggQEAgVEVT
VChXZWJLaXQsIEFuaW1hdGVkUmVzaXplQmxvY2tzRG9BZnRlcgogICAgICAgICBbd2ViVmlldyBf
ZW5kQW5pbWF0ZWRSZXNpemVdOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkaWRFbmRBbmltYXRlZFJlc2l6ZSk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkaWRHZXRDb21taXRBZnRlckVuZEFuaW1hdGVkUmVzaXplKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkaWRFbmRBbmltYXRlZFJlc2l6ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZGlkR2V0Q29tbWl0QWZ0ZXJFbmRBbmltYXRlZFJlc2l6ZSk7CiB9CiAKICNlbmRpZgpJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BcHBsZVBheS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FwcGxl
UGF5Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0FwcGxlUGF5Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw3ICs4Nyw3IEBAIFRF
U1QoQXBwbGVQYXksIEFwcGxlUGF5QXZhaWxhYmxlQnlEZWZhdWwKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJv
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRw
czovL2J1bmRsZS1odG1sLWZpbGUvYXBwbGUtcGF5LWF2YWlsYWJpbGl0eSJdXV07CiAKLSAgICBV
dGlsOjpydW4oJmlzRG9uZSk7CisgICAgcnVuVW50aWwoaXNEb25lKTsKIAogICAgIFtUZXN0UHJv
dG9jb2wgdW5yZWdpc3Rlcl07CiB9CkBAIC0xMDYsNyArMTA2LDcgQEAgVEVTVChBcHBsZVBheSwg
VXNlclNjcmlwdEF0RG9jdW1lbnRTdGFydAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uXSk7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBzOi8vYnVuZGxlLWh0
bWwtZmlsZS9hcHBsZS1wYXktYXZhaWxhYmlsaXR5Il1dXTsKIAotICAgIFV0aWw6OnJ1bigmaXNE
b25lKTsKKyAgICBydW5VbnRpbChpc0RvbmUpOwogCiAgICAgRVhQRUNUX0VRKFlFUywgW1t3ZWJW
aWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cud2tVc2VyU2NyaXB0SW5q
ZWN0ZWQiXSBib29sVmFsdWVdKTsKIApAQCAtMTI3LDcgKzEyNyw3IEBAIFRFU1QoQXBwbGVQYXks
IFVzZXJTY3JpcHRBdERvY3VtZW50RW5kRGkKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl0pOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2J1bmRsZS1o
dG1sLWZpbGUvYXBwbGUtcGF5LWF2YWlsYWJpbGl0eSJdXV07CiAgICAgCi0gICAgVXRpbDo6cnVu
KCZpc0RvbmUpOworICAgIHJ1blVudGlsKGlzRG9uZSk7CiAgICAgCiAgICAgRVhQRUNUX0VRKFlF
UywgW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cud2tVc2Vy
U2NyaXB0SW5qZWN0ZWQiXSBib29sVmFsdWVdKTsKICAgICAKQEAgLTE0OCw3ICsxNDgsNyBAQCBU
RVNUKEFwcGxlUGF5LCBVc2VyQWdlbnRTY3JpcHRFdmFsdWF0aW9uCiAgICAgW3dlYlZpZXcgX3Rl
c3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2
YVNjcmlwdDpAIndpbmRvdy53a1NjcmlwdEV2YWx1YXRlZCA9IHRydWU7IGxvYWRBcHBsZVBheUZy
YW1lKCk7IiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwogCi0gICAgVXRpbDo6cnVuKCZpc0RvbmUp
OworICAgIHJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBFWFBFQ1RfRVEoWUVTLCBbW3dlYlZpZXcg
b2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy53a1NjcmlwdEV2YWx1YXRlZCJd
IGJvb2xWYWx1ZV0pOwogCkBAIC0xNjcsMTMgKzE2NywxMyBAQCBURVNUKEFwcGxlUGF5LCBVc2Vy
QWdlbnRTY3JpcHRFdmFsdWF0aW9uCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly9idW5kbGUtaHRtbC1m
aWxlL2FwcGxlLXBheS1hdmFpbGFiaWxpdHkiXV1dOwogCi0gICAgVXRpbDo6cnVuKCZpc0RvbmUp
OworICAgIHJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBpc0RvbmUgPSBmYWxzZTsKICAgICBbbWVz
c2FnZUhhbmRsZXIgc2V0Q2FuTWFrZVBheW1lbnRzRXhwZWN0YXRpb246Tk9dOwogICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAnI3Rlc3Qn
IiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwogCi0gICAgVXRpbDo6cnVuKCZpc0RvbmUpOworICAg
IHJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBbVGVzdFByb3RvY29sIHVucmVnaXN0ZXJdOwogfQpA
QCAtMTk2LDcgKzE5Niw3IEBAIFRFU1QoQXBwbGVQYXksIEFjdGl2ZVNlc3Npb25CbG9ja3NVc2Vy
QWcKICAgICAgICAgRVhQRUNUX05PVF9OVUxMKGVycm9yKTsKICAgICAgICAgaXNEb25lID0gdHJ1
ZTsKICAgICB9XTsKLSAgICBVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgcnVuVW50aWwoaXNEb25l
KTsKIAogICAgIFtUZXN0UHJvdG9jb2wgdW5yZWdpc3Rlcl07CiB9CkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0FwcGxpY2F0aW9uTWFuaWZlc3QubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BcHBsaWNhdGlv
bk1hbmlmZXN0Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0FwcGxpY2F0aW9uTWFuaWZlc3QubW0JKHdvcmtpbmcgY29weSkKQEAg
LTY0LDcgKzY0LDcgQEAgVEVTVChXZWJLaXQsIEFwcGxpY2F0aW9uTWFuaWZlc3RCYXNpYykKICAg
ICAgICAgRVhQRUNUX05VTEwobWFuaWZlc3QpOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9
XTsKLSAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGlsKGRvbmUpOwogCiAgICAgZG9u
ZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxs
aW5rIHJlbD1cIm1hbmlmZXN0XCIgaHJlZj1cImludmFsaWR1cmw6Ly9wYXRoXCI+Il07CkBAIC03
Miw3ICs3Miw3IEBAIFRFU1QoV2ViS2l0LCBBcHBsaWNhdGlvbk1hbmlmZXN0QmFzaWMpCiAgICAg
ICAgIEVYUEVDVF9OVUxMKG1hbmlmZXN0KTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07
Ci0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKIAogICAgIGRvbmUg
PSBmYWxzZTsKICAgICBOU0RpY3Rpb25hcnkgKm1hbmlmZXN0T2JqZWN0ID0gQHsgQCJuYW1lIjog
QCJUZXN0IiB9OwpAQCAtODEsNyArODEsNyBAQCBURVNUKFdlYktpdCwgQXBwbGljYXRpb25NYW5p
ZmVzdEJhc2ljKQogICAgICAgICBFWFBFQ1RfVFJVRShbbWFuaWZlc3QubmFtZSBpc0VxdWFsVG9T
dHJpbmc6QCJUZXN0Il0pOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBVdGls
OjpydW4oJmRvbmUpOworICAgIHJ1blVudGlsKGRvbmUpOwogCiAgICAgZG9uZSA9IGZhbHNlOwog
ICAgIG1hbmlmZXN0T2JqZWN0ID0gQHsKQEAgLTEwMiw3ICsxMDIsNyBAQCBURVNUKFdlYktpdCwg
QXBwbGljYXRpb25NYW5pZmVzdEJhc2ljKQogICAgICAgICBFWFBFQ1RfVFJVRShbbWFuaWZlc3Qu
c2NvcGUgaXNFcXVhbDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS9h
cHAiXV0pOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBVdGlsOjpydW4oJmRv
bmUpOworICAgIHJ1blVudGlsKGRvbmUpOwogfQogCiBURVNUKFdlYktpdCwgQXBwbGljYXRpb25N
YW5pZmVzdERpc3BsYXlNb2RlKQpAQCAtMTMxLDcgKzEzMSw3IEBAIFRFU1QoV2ViS2l0LCBBcHBs
aWNhdGlvbk1hbmlmZXN0RGlzcGxheU0KICAgICAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgICBFWFBFQ1RfU1RSRVEoZXhwZWN0ZWRQYWdlQ29udGVudC5VVEY4U3RyaW5n
LCBjb250ZW50cy5VVEY4U3RyaW5nKTsKICAgICAgICAgICAgIH1dOwotICAgICAgICAgICAgVXRp
bDo6cnVuKCZkb25lKTsKKyAgICAgICAgICAgIHJ1blVudGlsKGRvbmUpOwogICAgICAgICAgICAg
W3dlYlZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld107CiAgICAgICAgIH0KICAgICB9XTsKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXN5bmNQb2xpY3lGb3JOYXZp
Z2F0aW9uUmVzcG9uc2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Bc3luY1BvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZS5tbQkocmV2aXNp
b24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Bc3lu
Y1BvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZS5tbQkod29ya2luZyBjb3B5KQpAQCAtODYsNyAr
ODYsNyBAQCBURVNUKFdlYktpdCwgUmVzcG9uZFRvUG9saWN5Rm9yTmF2aWdhdGlvCiAgICAgbmF2
aWdhdGlvbkZhaWxlZCA9IGZhbHNlOwogICAgIG5hdmlnYXRpb25Db21wbGV0ZSA9IGZhbHNlOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVz
dFVSTC5nZXQoKV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmbmF2aWdhdGlvbkNv
bXBsZXRlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChuYXZpZ2F0aW9uQ29tcGxldGUp
OwogCiAgICAgRVhQRUNUX0ZBTFNFKG5hdmlnYXRpb25GYWlsZWQpOwogfQpAQCAtMTA0LDcgKzEw
NCw3IEBAIFRFU1QoV2ViS2l0LCBQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2UKICAgICBuYXZp
Z2F0aW9uRmFpbGVkID0gZmFsc2U7CiAgICAgbmF2aWdhdGlvbkNvbXBsZXRlID0gZmFsc2U7CiAg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0
VVJMLmdldCgpXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZuYXZpZ2F0aW9uQ29t
cGxldGUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKG5hdmlnYXRpb25Db21wbGV0ZSk7
CiAKICAgICBFWFBFQ1RfVFJVRShuYXZpZ2F0aW9uRmFpbGVkKTsKIH0KSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXR0clN0eWxlLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXR0clN0eWxlLm1tCShyZXZp
c2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0F0
dHJTdHlsZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTAsMzMgKzUwLDMzIEBAIFRFU1QoV2ViS2l0
LCBBdHRyU3R5bGUpCiAgICAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5ib29sVmFsdWUpOwogICAg
ICAgICBpc0RvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAg
aXNEb25lID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1l
bnQuYm9keS5nZXRBdHRyaWJ1dGVOb2RlKCdiYWNrZ3JvdW5kJykuc3R5bGUuY3NzVGV4dCIgY29t
cGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyAqcmVzdWx0LCBOU0Vycm9yICplcnJvcikgewogICAg
ICAgICBFWFBFQ1RfU1RSRVEoImJhY2tncm91bmQtaW1hZ2U6IHVybChcImFib3V0Oi8vZXhhbXBs
ZS5jb20vYm9keS5wbmdcIik7IiwgcmVzdWx0LlVURjhTdHJpbmcpOwogICAgICAgICBpc0RvbmUg
PSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAgaXNEb25lID0gZmFs
c2U7CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keS5nZXRB
dHRyaWJ1dGVOb2RlKCdkaXInKS5zdHlsZS5jc3NUZXh0IiBjb21wbGV0aW9uSGFuZGxlcjpeKE5T
U3RyaW5nICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAgIEVYUEVDVF9TVFJFUSgi
ZGlyZWN0aW9uOiBydGw7IHVuaWNvZGUtYmlkaTogZW1iZWQ7IiwgcmVzdWx0LlVURjhTdHJpbmcp
OwogICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwog
CiAgICAgaXNEb25lID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAi
ZG9jdW1lbnQuYm9keS5nZXRBdHRyaWJ1dGVOb2RlKCdtYXJnaW5oZWlnaHQnKS5zdHlsZS5jc3NU
ZXh0IiBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICpyZXN1bHQsIE5TRXJyb3IgKmVycm9y
KSB7CiAgICAgICAgIEVYUEVDVF9TVFJFUSgibWFyZ2luLWJvdHRvbTogMjBweDsgbWFyZ2luLXRv
cDogMjBweDsiLCByZXN1bHQuVVRGOFN0cmluZyk7CiAgICAgICAgIGlzRG9uZSA9IHRydWU7CiAg
ICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBpc0RvbmUgPSBmYWxzZTsKICAgICBb
d2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFy
Z2V0JykuZ2V0QXR0cmlidXRlTm9kZSgnYWxpZ24nKS5zdHlsZS5jc3NUZXh0IiBjb21wbGV0aW9u
SGFuZGxlcjpeKE5TU3RyaW5nICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAgIEVY
UEVDVF9TVFJFUSgidGV4dC1hbGlnbjogLXdlYmtpdC1jZW50ZXI7IiwgcmVzdWx0LlVURjhTdHJp
bmcpOwogICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUp
OwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9BdXRvTGF5
b3V0SW50ZWdyYXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9BdXRvTGF5b3V0SW50ZWdyYXRpb24ubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXV0b0xheW91dEludGVn
cmF0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05Miw3ICs5Miw3IEBAIC0gKHZvaWQpYmVnaW5M
YXlvdXRBdE1pbmltdW1XaWR0aDooQ0dGbG8KIAogLSAodm9pZCl3YWl0Rm9yQ29udGVudFNpemVD
aGFuZ2VSZXNldHRpbmdXaWR0aDooQk9PTClyZXNldEFmdGVyCiB7Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkaWRJbnZhbGlkYXRlSW50cmluc2ljQ29udGVudFNpemUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEludmFsaWRhdGVJbnRyaW5zaWNDb250ZW50U2l6ZSk7
CiAKICAgICBOU1NpemUgaW50cmluc2ljQ29udGVudFNpemUgPSBzZWxmLmludHJpbnNpY0NvbnRl
bnRTaXplOwogICAgIEVYUEVDVF9FUShfZXhwZWN0ZWRJbnRyaW5zaWNDb250ZW50U2l6ZS53aWR0
aCwgaW50cmluc2ljQ29udGVudFNpemUud2lkdGgpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIFRFU1Qo
V2ViS2l0LCBBdXRvTGF5b3V0SW50ZWdyYXRpb24pCiAgICAgICAgIEVYUEVDVF9FUSgxMCwgW3Zh
bHVlIGludGVnZXJWYWx1ZV0pOwogICAgICAgICBkaWRFdmFsdWF0ZUphdmFTY3JpcHQgPSB0cnVl
OwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRXZhbHVhdGVKYXZh
U2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRFdmFsdWF0ZUphdmFTY3Jp
cHQpOwogICAgIGRpZEV2YWx1YXRlSmF2YVNjcmlwdCA9IGZhbHNlOwogCiAgICAgLy8gRW5hYmxp
bmcgX3Nob3VsZEV4cGFuZENvbnRlbnRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0IHNob3VsZCBt
YWtlIHRoZSBwYWdlIGxheSBvdXQgdG8gdGhlIHZpZXcgaGVpZ2h0LCByZWdhcmRsZXNzCkBAIC0x
NjksNyArMTY5LDcgQEAgVEVTVChXZWJLaXQsIEF1dG9MYXlvdXRJbnRlZ3JhdGlvbikKICAgICAg
ICAgRVhQRUNUX0VRKDEwMDAsIFt2YWx1ZSBpbnRlZ2VyVmFsdWVdKTsKICAgICAgICAgZGlkRXZh
bHVhdGVKYXZhU2NyaXB0ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRpZEV2YWx1YXRlSmF2YVNjcmlwdCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZGlkRXZhbHVhdGVKYXZhU2NyaXB0KTsKICAgICBkaWRFdmFsdWF0ZUphdmFTY3JpcHQgPSBm
YWxzZTsKICAgICBbd2ViVmlldyBfc2V0U2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hlaWdodEZv
ckF1dG9MYXlvdXQ6Tk9dOwogfQpAQCAtMTk4LDkgKzE5OCw5IEBAIFRFU1QoV2ViS2l0LCBBdXRv
TGF5b3V0UmVuZGVyaW5nUHJvZ3Jlc3MKICAgICBbd2ViVmlldyBzZXRFeHBlY3RpbmdJbnRyaW5z
aWNDb250ZW50U2l6ZUNoYW5nZTpZRVNdOwogICAgIFt3ZWJWaWV3IHNldEV4cGVjdGVkSW50cmlu
c2ljQ29udGVudFNpemU6TlNNYWtlU2l6ZSgxMDAsIDQwMCldOwogICAgIFt3ZWJWaWV3IGxvYWRI
VE1MU3RyaW5nOkAiPGJvZHkgc3R5bGU9J21hcmdpbjogMDsgaGVpZ2h0OiA0MDBweDsnPjwvYm9k
eT4iIGJhc2VVUkw6bmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEludmFs
aWRhdGVJbnRyaW5zaWNDb250ZW50U2l6ZSk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkaWRGaXJzdExheW91dCk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRGaW5p
c2hOYXZpZ2F0aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRJbnZhbGlkYXRl
SW50cmluc2ljQ29udGVudFNpemUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEZp
cnN0TGF5b3V0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRGaW5pc2hOYXZpZ2F0
aW9uKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmlsXTsKIH0KIApJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVFZGl0aW5nRGVs
ZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9CdW5kbGVFZGl0aW5nRGVsZWdhdGUubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlRWRpdGluZ0RlbGVnYXRlLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC04NSw3ICs4NSw3IEBAICAgICBbW3dlYlZpZXcgX3JlbW90ZU9i
amVjdFJlZ2lzdHJ5XSByZWcKIAogICAgIFt3ZWJWaWV3IHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0
b3IoY29weTopIHdpdGhPYmplY3Q6bmlsXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZGlkV3JpdGVUb1Bhc3RlYm9hcmQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRp
ZFdyaXRlVG9QYXN0ZWJvYXJkKTsKIAogICAgIE5TU3RyaW5nICpjb3BpZWRTdHJpbmcgPSBuaWw7
CiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTAyLDcgKzEwMiw3IEBAICAgICBbW3dlYlZpZXcgX3Jl
bW90ZU9iamVjdFJlZ2lzdHJ5XSByZWcKICNlbmRpZgogICAgIFt3ZWJWaWV3IHBlcmZvcm1TZWxl
Y3RvcjpAc2VsZWN0b3IocGFzdGU6KSB3aXRoT2JqZWN0Om5pbF07CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnNob3VsZEluc2VydFRleHRDYWxsZWQpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKHNob3VsZEluc2VydFRleHRDYWxsZWQpOwogCiAgICAgX19ibG9jayBib29s
IGRvbmVFdmFsdWF0aW5nSmF2YVNjcmlwdCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGV2YWx1YXRl
SmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZC50ZXh0Q29udGVudCIgY29tcGxl
dGlvbkhhbmRsZXI6XihpZCBfTnVsbGFibGUgdmFsdWUsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJy
b3IpIHsKQEAgLTExMiw3ICsxMTIsNyBAQCAgICAgW1t3ZWJWaWV3IF9yZW1vdGVPYmplY3RSZWdp
c3RyeV0gcmVnCiAgICAgICAgIGRvbmVFdmFsdWF0aW5nSmF2YVNjcmlwdCA9IHRydWU7CiAgICAg
fV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVFdmFsdWF0aW5nSmF2YVNj
cmlwdCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZUV2YWx1YXRpbmdKYXZhU2Ny
aXB0KTsKIH0KIAogVEVTVChXZWJLaXQsIFdLV2ViUHJvY2Vzc1BsdWdJbkRvTm90Q3Jhc2hXaGVu
Q29weWluZ0VtcHR5Q2xpZW50RGF0YSkKQEAgLTEyOSw3ICsxMjksNyBAQCAgICAgX1dLUmVtb3Rl
T2JqZWN0SW50ZXJmYWNlICppbnRlcmZhY2UgCiAgICAgW1t3ZWJWaWV3IF9yZW1vdGVPYmplY3RS
ZWdpc3RyeV0gcmVnaXN0ZXJFeHBvcnRlZE9iamVjdDpvYmplY3QuZ2V0KCkgaW50ZXJmYWNlOmlu
dGVyZmFjZV07CiAKICAgICBbd2ViVmlldyBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKGNvcHk6
KSB3aXRoT2JqZWN0Om5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRXcml0
ZVRvUGFzdGVib2FyZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkV3JpdGVUb1Bh
c3RlYm9hcmQpOwogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVQYXJhbWV0ZXJzLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlUGFyYW1l
dGVycy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9CdW5kbGVQYXJhbWV0ZXJzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0
Niw3IEBAIFRFU1QoV2ViS2l0LCBCdW5kbGVQYXJhbWV0ZXJzKQogICAgICAgICAgICAgaXNEb25l
ID0gdHJ1ZTsKICAgICAgICAgfV07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZpc0RvbmUpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAg
ICAgICBpc0RvbmUgPSBmYWxzZTsKIAogICAgICAgICBOU1N0cmluZyAqIGNvbnN0IHRlc3RQYXJh
bWV0ZXIxID0gQCJUZXN0UGFyYW1ldGVyMSI7CkBAIC01NSw3ICs1NSw3IEBAIFRFU1QoV2ViS2l0
LCBCdW5kbGVQYXJhbWV0ZXJzKQogICAgICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICAgICAg
fV07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgICAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAgICAgICBpc0RvbmUgPSBmYWxz
ZTsKIAogICAgICAgICBOU1N0cmluZyAqIGNvbnN0IHRlc3RTdHJpbmcgPSBAIlBBU1MiOwpAQCAt
NjYsNyArNjYsNyBAQCBURVNUKFdlYktpdCwgQnVuZGxlUGFyYW1ldGVycykKICAgICAgICAgICAg
IGlzRG9uZSA9IHRydWU7CiAgICAgICAgIH1dOwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmaXNEb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25l
KTsKICAgICAgICAgaXNEb25lID0gZmFsc2U7CiAKICAgICAgICAgTlNEaWN0aW9uYXJ5ICogY29u
c3QgdGVzdERpY3Rpb25hcnkgPSBAeyBAInJlc3VsdCIgOiBAIlBBU1MiIH07CkBAIC03Nyw3ICs3
Nyw3IEBAIFRFU1QoV2ViS2l0LCBCdW5kbGVQYXJhbWV0ZXJzKQogICAgICAgICAgICAgaXNEb25l
ID0gdHJ1ZTsKICAgICAgICAgfV07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZpc0RvbmUpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAg
ICAgICBpc0RvbmUgPSBmYWxzZTsKIAogICAgICAgICBbW2NvbmZpZ3VyYXRpb24gcHJvY2Vzc1Bv
b2xdIF9zZXRPYmplY3Q6bmlsIGZvckJ1bmRsZVBhcmFtZXRlcjp0ZXN0UGFyYW1ldGVyMV07CkBA
IC04Niw3ICs4Niw3IEBAIFRFU1QoV2ViS2l0LCBCdW5kbGVQYXJhbWV0ZXJzKQogICAgICAgICAg
ICAgaXNEb25lID0gdHJ1ZTsKICAgICAgICAgfV07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZpc0RvbmUpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0Rv
bmUpOwogICAgICAgICBpc0RvbmUgPSBmYWxzZTsKIAogICAgICAgICBOU1N0cmluZyAqIGNvbnN0
IHRlc3RQYXJhbWV0ZXIyID0gQCJUZXN0UGFyYW1ldGVyMiI7CkBAIC05OSw3ICs5OSw3IEBAIFRF
U1QoV2ViS2l0LCBCdW5kbGVQYXJhbWV0ZXJzKQogICAgICAgICAgICAgaXNEb25lID0gdHJ1ZTsK
ICAgICAgICAgfV07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUp
OworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAgICAgICBpc0Rv
bmUgPSBmYWxzZTsKIAogICAgICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6dGVzdFBh
cmFtZXRlcjIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7
CkBAIC0xMDgsNiArMTA4LDYgQEAgVEVTVChXZWJLaXQsIEJ1bmRsZVBhcmFtZXRlcnMpCiAgICAg
ICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgICAgICB9XTsKIAotICAgICAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGlzRG9uZSk7CiAgICAgfQogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9CdW5kbGVSYW5nZUhhbmRsZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZVJhbmdlSGFuZGxlLm1tCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZVJh
bmdlSGFuZGxlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03MSw4ICs3MSw4IEBAICAgICBbW3dlYlZp
ZXcgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5XSByZWcKIAogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3Ry
aW5nOkAiVmlzaXQgd2Via2l0Lm9yZyAgIDxlbT4gIG9yPC9lbT4gZW1haWwgd2Via2l0LWRldkBs
aXN0cy53ZWJraXQub3JnLiIgYmFzZVVSTDpuaWxdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkaWRHZXRUZXh0RnJvbUJvZHlSYW5nZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZGlkR2V0VGV4dEZyb21Cb2R5UmFuZ2UpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRHZXRCb2R5SW5uZXJIVE1MQWZ0ZXJE
ZXRlY3RpbmdEYXRhKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRHZXRCb2R5SW5u
ZXJIVE1MQWZ0ZXJEZXRlY3RpbmdEYXRhKTsKICNlbmRpZgogfQpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0JKHJldmlzaW9u
IDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxl
bmdlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNDcsNyArMjQ3LDcgQEAgVEVTVChDaGFsbGVuZ2Us
IFNlY0lkZW50aXR5KQogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0
ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpA
Imh0dHA6Ly8xMjcuMC4wLjE6JWQvIiwgc2VydmVyLnBvcnQoKV1dXV07CiAKLSAgICBVdGlsOjpy
dW4oJm5hdmlnYXRpb25GaW5pc2hlZCk7CisgICAgcnVuVW50aWwobmF2aWdhdGlvbkZpbmlzaGVk
KTsKICAgICAKICAgICBFWFBFQ1RfTk9UX05VTEwoa2V5Y2hhaW5QYXRoLmdldCgpKTsKICAgICBO
U0Vycm9yICplcnJvciA9IG5pbDsKQEAgLTI5NywxMCArMjk3LDEwIEBAIFRFU1QoQ2hhbGxlbmdl
LCBCYXNpY1Byb3Bvc2VkQ3JlZGVudGlhbCkKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVs
ZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+IHJlcXVl
c3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOltO
U1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiaHR0cDovLzEyNy4wLjAuMTolZC8iLCBzZXJ2ZXIu
cG9ydCgpXV1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3QuZ2V0KCldOwotICAg
IFV0aWw6OnJ1bigmbmF2aWdhdGlvbkZpbmlzaGVkKTsKKyAgICBydW5VbnRpbChuYXZpZ2F0aW9u
RmluaXNoZWQpOwogICAgIG5hdmlnYXRpb25GaW5pc2hlZCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnJlcXVlc3QuZ2V0KCldOwotICAgIFV0aWw6OnJ1bigmbmF2aWdhdGlvbkZp
bmlzaGVkKTsKKyAgICBydW5VbnRpbChuYXZpZ2F0aW9uRmluaXNoZWQpOwogICAgIEVYUEVDVF9U
UlVFKHJlY2VpdmVkU2Vjb25kQ2hhbGxlbmdlKTsKICAgICAKICAgICBfX2Jsb2NrIGJvb2wgcmVt
b3ZlZENyZWRlbnRpYWwgPSBmYWxzZTsKQEAgLTMxMCw3ICszMTAsNyBAQCBURVNUKENoYWxsZW5n
ZSwgQmFzaWNQcm9wb3NlZENyZWRlbnRpYWwpCiAgICAgICAgICAgICByZW1vdmVkQ3JlZGVudGlh
bCA9IHRydWU7CiAgICAgICAgIH1dOwogICAgIH1dOwotICAgIFV0aWw6OnJ1bigmcmVtb3ZlZENy
ZWRlbnRpYWwpOworICAgIHJ1blVudGlsKHJlbW92ZWRDcmVkZW50aWFsKTsKIH0KIAogc3RhdGlj
IHZvaWQgdmVyaWZ5Q2VydGlmaWNhdGVBbmRQdWJsaWNLZXkoU2VjVHJ1c3RSZWYgdHJ1c3QpCkBA
IC00MjMsNyArNDIzLDcgQEAgVEVTVChXZWJLaXQsIFNlcnZlclRydXN0KQogICAgIFt3ZWJWaWV3
IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiaHR0cHM6Ly9sb2NhbGhvc3Q6JWQvIiwg
c2VydmVyLnBvcnQoKV1dXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZuYXZpZ2F0
aW9uRmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKG5hdmlnYXRpb25GaW5p
c2hlZCk7CiAKICAgICB2ZXJpZnlDZXJ0aWZpY2F0ZUFuZFB1YmxpY0tleShbd2ViVmlldyBzZXJ2
ZXJUcnVzdF0pOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9DbG9zZVdlYlZpZXdBZnRlckVudGVyRnVsbHNjcmVlbi5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Nsb3NlV2ViVmlld0FmdGVyRW50ZXJG
dWxsc2NyZWVuLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0Nsb3NlV2ViVmlld0FmdGVyRW50ZXJGdWxsc2NyZWVuLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC02OSw3ICs2OSw3IEBAIFRFU1QoQ2xvc2VXZWJWaWV3QWZ0ZXJFbnRlckZ1
bGxzY3JlZW4sIFYKIAogICAgIGRpZEVudGVyRnVsbHNjcmVlbiA9IGZhbHNlOwogICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJyku
d2Via2l0RW50ZXJGdWxsc2NyZWVuKCkiIGNvbXBsZXRpb25IYW5kbGVyOiBuaWxdOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRW50ZXJGdWxsc2NyZWVuKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkaWRFbnRlckZ1bGxzY3JlZW4pOwogICAgIEFTU0VSVF9UUlVFKGRp
ZEVudGVyRnVsbHNjcmVlbik7CiAKICAgICAvLyBTaG91bGQgbm90IGNyYXNoOgpAQCAtODksNyAr
ODksNyBAQCBURVNUKENsb3NlV2ViVmlld0FmdGVyRW50ZXJGdWxsc2NyZWVuLCBFCiAKICAgICBk
aWRFbnRlckZ1bGxzY3JlZW4gPSBmYWxzZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3Jp
cHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYnKS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVl
bigpIiBjb21wbGV0aW9uSGFuZGxlcjogbmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRpZEVudGVyRnVsbHNjcmVlbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlk
RW50ZXJGdWxsc2NyZWVuKTsKICAgICBBU1NFUlRfVFJVRShkaWRFbnRlckZ1bGxzY3JlZW4pOwog
CiAgICAgLy8gU2hvdWxkIG5vdCBjcmFzaDoKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvQ2xvc2VXZWJWaWV3RHVyaW5nRW50ZXJGdWxsc2NyZWVuLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2xvc2VXZWJW
aWV3RHVyaW5nRW50ZXJGdWxsc2NyZWVuLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Nsb3NlV2ViVmlld0R1cmluZ0VudGVyRnVs
bHNjcmVlbi5tbQkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksNyBAQCBURVNUKENsb3NlV2Vi
Vmlld0R1cmluZ0VudGVyRnVsbHNjcmVlbiwgCiAKICAgICB3aWxsRW50ZXJGdWxsc2NyZWVuID0g
ZmFsc2U7CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigndmlkZW8nKS53ZWJraXRFbnRlckZ1bGxzY3JlZW4oKSIgY29tcGxldGlvbkhhbmRs
ZXI6IG5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZ3aWxsRW50ZXJGdWxsc2Ny
ZWVuKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbCh3aWxsRW50ZXJGdWxsc2NyZWVuKTsK
ICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjIpOwogCiAgICAgLy8gU2hvdWxkIG5v
dCBjcmFzaDoKQEAgLTg5LDcgKzg5LDcgQEAgVEVTVChDbG9zZVdlYlZpZXdEdXJpbmdFbnRlckZ1
bGxzY3JlZW4sIAogCiAgICAgd2lsbEVudGVyRnVsbHNjcmVlbiA9IGZhbHNlOwogICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdicpLndl
YmtpdFJlcXVlc3RGdWxsc2NyZWVuKCkiIGNvbXBsZXRpb25IYW5kbGVyOiBuaWxdOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmd2lsbEVudGVyRnVsbHNjcmVlbik7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwod2lsbEVudGVyRnVsbHNjcmVlbik7CiAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6c2xlZXAoMC4yKTsKIAogICAgIC8vIFNob3VsZCBub3QgY3Jhc2g6CkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbW1hbmRCYWNrRm9yd2FyZC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Nv
bW1hbmRCYWNrRm9yd2FyZC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db21tYW5kQmFja0ZvcndhcmQubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTEyMywxMSArMTIzLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGxvYWRGaWxlcygpCiAg
ICAgewogICAgICAgICBXS1BhZ2VMb2FkRmlsZShbd2ViVmlldyBwYWdlUmVmXSwgZmlsZTEuZ2V0
KCksIG51bGxwdHIpOwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEZpbmlz
aE5hdmlnYXRpb24pOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRGaW5pc2hO
YXZpZ2F0aW9uKTsKICAgICAgICAgZGlkRmluaXNoTmF2aWdhdGlvbiA9IGZhbHNlOwogCiAgICAg
ICAgIFdLUGFnZUxvYWRGaWxlKFt3ZWJWaWV3IHBhZ2VSZWZdLCBmaWxlMi5nZXQoKSwgbnVsbHB0
cik7Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRmluaXNoTmF2aWdhdGlv
bik7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEZpbmlzaE5hdmlnYXRpb24p
OwogICAgICAgICBkaWRGaW5pc2hOYXZpZ2F0aW9uID0gZmFsc2U7CiAgICAgfQogfTsKQEAgLTIx
MCw3ICsyMTAsNyBAQCBURVNUX0YoV2ViS2l0Ml9Db21tYW5kQmFja0ZvcndhcmRUZXN0V0tWCiAK
ICAgICAvLyBBdHRlbXB0IHRvIGdvIGJhY2sgKHVzaW5nIGNvbW1hbmQtbGVmdCkuCiAgICAgc2lt
dWxhdGVDb21tYW5kQXJyb3cod2ViVmlldy5nZXQoKSwgTGVmdCk7Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkaWRGaW5pc2hOYXZpZ2F0aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkaWRGaW5pc2hOYXZpZ2F0aW9uKTsKICAgICBkaWRGaW5pc2hOYXZpZ2F0aW9uID0g
ZmFsc2U7CiAKICAgICBhdXRvIGN1cnJlbnRVUkwyID0gYWRvcHRXSyhXS1BhZ2VDb3B5QWN0aXZl
VVJMKFt3ZWJWaWV3IHBhZ2VSZWZdKSk7CkBAIC0yMTgsNyArMjE4LDcgQEAgVEVTVF9GKFdlYktp
dDJfQ29tbWFuZEJhY2tGb3J3YXJkVGVzdFdLVgogCiAgICAgLy8gQXR0ZW1wdCB0byBnbyBiYWNr
ICh1c2luZyBjb21tYW5kLXJpZ2h0KS4KICAgICBzaW11bGF0ZUNvbW1hbmRBcnJvdyh3ZWJWaWV3
LmdldCgpLCBSaWdodCk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRGaW5pc2hO
YXZpZ2F0aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRGaW5pc2hOYXZpZ2F0
aW9uKTsKICAgICBkaWRGaW5pc2hOYXZpZ2F0aW9uID0gZmFsc2U7CiAKICAgICBhdXRvIGN1cnJl
bnRVUkwzID0gYWRvcHRXSyhXS1BhZ2VDb3B5QWN0aXZlVVJMKFt3ZWJWaWV3IHBhZ2VSZWZdKSk7
CkBAIC0yMzcsNyArMjM3LDcgQEAgVEVTVF9GKFdlYktpdDJfQ29tbWFuZEJhY2tGb3J3YXJkVGVz
dFdLVgogCiAgICAgLy8gQXR0ZW1wdCB0byBnbyBiYWNrICh1c2luZyBjb21tYW5kLXJpZ2h0KQog
ICAgIHNpbXVsYXRlQ29tbWFuZEFycm93KHdlYlZpZXcuZ2V0KCksIFJpZ2h0KTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEZpbmlzaE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRpZEZpbmlzaE5hdmlnYXRpb24pOwogICAgIGRpZEZpbmlzaE5hdmln
YXRpb24gPSBmYWxzZTsKIAogICAgIGF1dG8gY3VycmVudFVSTDIgPSBhZG9wdFdLKFdLUGFnZUNv
cHlBY3RpdmVVUkwoW3dlYlZpZXcgcGFnZVJlZl0pKTsKQEAgLTI0NSw3ICsyNDUsNyBAQCBURVNU
X0YoV2ViS2l0Ml9Db21tYW5kQmFja0ZvcndhcmRUZXN0V0tWCiAKICAgICAvLyBBdHRlbXB0IHRv
IGdvIGJhY2sgKHVzaW5nIGNvbW1hbmQtbGVmdCkuCiAgICAgc2ltdWxhdGVDb21tYW5kQXJyb3co
d2ViVmlldy5nZXQoKSwgTGVmdCk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRG
aW5pc2hOYXZpZ2F0aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRGaW5pc2hO
YXZpZ2F0aW9uKTsKICAgICBkaWRGaW5pc2hOYXZpZ2F0aW9uID0gZmFsc2U7CiAKICAgICBhdXRv
IGN1cnJlbnRVUkwzID0gYWRvcHRXSyhXS1BhZ2VDb3B5QWN0aXZlVVJMKFt3ZWJWaWV3IHBhZ2VS
ZWZdKSk7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbnRl
bnRGaWx0ZXJpbmcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Db250ZW50RmlsdGVyaW5nLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbnRlbnRGaWx0ZXJpbmcubW0JKHdv
cmtpbmcgY29weSkKQEAgLTEyNyw3ICsxMjcsNyBAQCBURVNUKENvbnRlbnRGaWx0ZXJpbmcsIFVS
TEFmdGVyU2VydmVyUmVkCiAgICAgICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHRO
UyhbW1NlcnZlclJlZGlyZWN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAg
ICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0
KCldOwogICAgICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL3JlZGlyZWN0P3Bhc3MiXV1dOwot
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICAgICAgW1Rlc3RQcm90b2NvbCB1bnJl
Z2lzdGVyXTsKICAgICB9CkBAIC0xODYsOSArMTg2LDkgQEAgc3RhdGljIHZvaWQgZG93bmxvYWRU
ZXN0KERlY2lzaW9uIGRlY2lzaQogICAgICAgICBkb3dubG9hZERpZFN0YXJ0ID0gZmFsc2U7CiAg
ICAgICAgIGNvbnN0IGJvb2wgZG93bmxvYWRTaG91bGRTdGFydCA9IGRlY2lzaW9uID09IERlY2lz
aW9uOjpBbGxvdyB8fCBkZWNpc2lvblBvaW50ID4gRGVjaXNpb25Qb2ludDo6QWZ0ZXJSZXNwb25z
ZTsKICAgICAgICAgaWYgKGRvd25sb2FkU2hvdWxkU3RhcnQpCi0gICAgICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvd25sb2FkRGlkU3RhcnQpOworICAgICAgICAgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG93bmxvYWREaWRTdGFydCk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICAgICAgICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICAgICAgRVhQRUNUX0VRKGRvd25s
b2FkU2hvdWxkU3RhcnQsIGRvd25sb2FkRGlkU3RhcnQpOwogCkBAIC0yOTEsNyArMjkxLDcgQEAg
c3RhdGljIHZvaWQgbG9hZEFsdGVybmF0ZVRlc3QoRGVjaXNpb24gZAogICAgICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAiaHR0cDovL3JlZGlyZWN0Lz9yZXN1bHQiXV1dOwogCiAgICAgICAgIGlzRG9uZSA9
IGZhbHNlOwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAg
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICAgICAgW1Rlc3RQcm90
b2NvbCB1bnJlZ2lzdGVyXTsKICAgICB9CkBAIC0zNzAsNyArMzcwLDcgQEAgLSAodm9pZClleHBl
Y3RQYXJlbnRhbENvbnRyb2xzTG9hZGVkOihCTwogI2VuZGlmIC8vIEhBVkUoTkVUV09SS19FWFRF
TlNJT04pCiAgICAgICAgIGlzRG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9u
ZSk7CiB9CiAKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGaW5pc2hO
YXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uCkBAIC0zODgsMzEgKzM4OCwzMSBA
QCBURVNUKENvbnRlbnRGaWx0ZXJpbmcsIExhemlseUxvYWRQbGF0Zm9yCiAKICAgICAgICAgaXNE
b25lID0gZmFsc2U7CiAgICAgICAgIFtbY29udHJvbGxlciB3ZWJWaWV3XSBsb2FkSFRNTFN0cmlu
ZzpAIlBBU1MiIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJdXTsK
LSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgICAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAgICAgICBbY29udHJvbGxlciBleHBlY3RQ
YXJlbnRhbENvbnRyb2xzTG9hZGVkOk5PIG5ldHdvcmtFeHRlbnNpb25Mb2FkZWQ6Tk9dOwogCiAg
ICAgICAgIGlzRG9uZSA9IGZhbHNlOwogICAgICAgICBbW2NvbnRyb2xsZXIgd2ViVmlld10gbG9h
ZERhdGE6W05TRGF0YSBkYXRhV2l0aEJ5dGVzOiJQQVNTIiBsZW5ndGg6NF0gTUlNRVR5cGU6QCJ0
ZXh0L2h0bWwiIGNoYXJhY3RlckVuY29kaW5nTmFtZTpAIlVURi04IiBiYXNlVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAiYWJvdXQ6YmxhbmsiXV07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmaXNEb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25l
KTsKICAgICAgICAgW2NvbnRyb2xsZXIgZXhwZWN0UGFyZW50YWxDb250cm9sc0xvYWRlZDpOTyBu
ZXR3b3JrRXh0ZW5zaW9uTG9hZGVkOk5PXTsKIAogICAgICAgICBpc0RvbmUgPSBmYWxzZTsKICAg
ICAgICAgTlNVUkwgKmZpbGVVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAiQ29udGVudEZpbHRlcmluZyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAgICAgICAgIFtbY29udHJvbGxlciB3ZWJW
aWV3XSBsb2FkRmlsZVVSTDpmaWxlVVJMIGFsbG93aW5nUmVhZEFjY2Vzc1RvVVJMOmZpbGVVUkxd
OwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAgICAgIFtjb250cm9sbGVyIGV4cGVj
dFBhcmVudGFsQ29udHJvbHNMb2FkZWQ6Tk8gbmV0d29ya0V4dGVuc2lvbkxvYWRlZDpOT107CiAK
ICAgICAgICAgaXNEb25lID0gZmFsc2U7CiAgICAgICAgIFtUZXN0UHJvdG9jb2wgcmVnaXN0ZXJX
aXRoU2NoZW1lOkAiY3VzdG9tIl07CiAgICAgICAgIFtbY29udHJvbGxlciB3ZWJWaWV3XSBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAiY3VzdG9tOi8vdGVzdCJdXV07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
aXNEb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKICAgICAg
ICAgW2NvbnRyb2xsZXIgZXhwZWN0UGFyZW50YWxDb250cm9sc0xvYWRlZDpOTyBuZXR3b3JrRXh0
ZW5zaW9uTG9hZGVkOk5PXTsKICAgICAgICAgW1Rlc3RQcm90b2NvbCB1bnJlZ2lzdGVyXTsKIAog
ICAgICAgICBpc0RvbmUgPSBmYWxzZTsKICAgICAgICAgW1Rlc3RQcm90b2NvbCByZWdpc3Rlcldp
dGhTY2hlbWU6QCJodHRwIl07CiAgICAgICAgIFtbY29udHJvbGxlciB3ZWJWaWV3XSBsb2FkUmVx
dWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
aHR0cDovL3Rlc3QiXV1dOwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9u
ZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgICAgICBbY29udHJvbGxlciBleHBlY3RQYXJlbnRhbENvbnRyb2xzTG9hZGVk
Ok5PIG5ldHdvcmtFeHRlbnNpb25Mb2FkZWQ6WUVTXTsKICNlbHNlCkBAIC00MjQsNyArNDI0LDcg
QEAgVEVTVChDb250ZW50RmlsdGVyaW5nLCBMYXppbHlMb2FkUGxhdGZvcgogICAgICAgICBpc0Rv
bmUgPSBmYWxzZTsKICAgICAgICAgW1Rlc3RQcm90b2NvbCByZWdpc3RlcldpdGhTY2hlbWU6QCJo
dHRwcyJdOwogICAgICAgICBbW2NvbnRyb2xsZXIgd2ViVmlld10gbG9hZFJlcXVlc3Q6W05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBzOi8vdGVz
dCJdXV07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICAg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKICAgICAgICAgW2NvbnRyb2xsZXIg
ZXhwZWN0UGFyZW50YWxDb250cm9sc0xvYWRlZDpZRVMgbmV0d29ya0V4dGVuc2lvbkxvYWRlZDpZ
RVNdOwogICAgICAgICBbVGVzdFByb3RvY29sIHVucmVnaXN0ZXJdOwogI2VuZGlmCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbnRlbnRSdWxlTGlzdE5vdGlm
aWNhdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0NvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbi5tbQkocmV2aXNpb24gMjQ1NTE2KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50UnVsZUxpc3RO
b3RpZmljYXRpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTEyMCw3ICsxMjAsNyBAQCBzdGF0aWMg
UmV0YWluUHRyPFdLQ29udGVudFJ1bGVMaXN0PiBtYWtlCiAgICAgICAgIGNvbnRlbnRSdWxlTGlz
dCA9IGxpc3Q7CiAgICAgICAgIGRvbmVDb21waWxpbmcgPSB0cnVlOwogICAgIH1dOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUNvbXBpbGluZyk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZUNvbXBpbGluZyk7CiAgICAgcmV0dXJuIGNvbnRlbnRSdWxlTGlzdDsK
IH0KIApAQCAtMTMzLDcgKzEzMyw3IEBAIFRFU1QoV2ViS2l0LCBDb250ZW50UnVsZUxpc3ROb3Rp
ZmljYXRpb24KICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpk
ZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFwaXRlc3Q6Ly8vbWF0Y2giXV1d
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWROb3RpZmljYXRpb24pOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkTm90aWZpY2F0aW9uKTsKICAgICBF
WFBFQ1RfU1RSRVEoW25vdGlmaWNhdGlvblVSTCBhYnNvbHV0ZVN0cmluZ10uVVRGOFN0cmluZywg
ImFwaXRlc3Q6Ly8vbWF0Y2giKTsKICAgICBFWFBFQ1RfU1RSRVEoW25vdGlmaWNhdGlvbklkZW50
aWZpZXIgVVRGOFN0cmluZ10sICJ0ZXN0aWRlbnRpZmllciIpOwogfQpAQCAtMTQ4LDcgKzE0OCw3
IEBAIFRFU1QoV2ViS2l0LCBDb250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24KICAgICBbd2ViVmll
dyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IHNl
dFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5n
OkAiPHNjcmlwdD5mZXRjaCgnbWF0Y2gnKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKXthbGVydCgn
ZmV0Y2ggY29tcGxldGUnKX0pPC9zY3JpcHQ+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAiYXBpdGVzdDovLy8iXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZEFsZXJ0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZEFsZXJ0KTsKICAg
ICBFWFBFQ1RfVFJVRShyZWNlaXZlZE5vdGlmaWNhdGlvbik7CiAgICAgRVhQRUNUX1NUUkVRKFtu
b3RpZmljYXRpb25VUkwgYWJzb2x1dGVTdHJpbmddLlVURjhTdHJpbmcsICJhcGl0ZXN0Oi8vL21h
dGNoIik7CiAgICAgRVhQRUNUX1NUUkVRKFtub3RpZmljYXRpb25JZGVudGlmaWVyIFVURjhTdHJp
bmddLCAidGVzdGlkZW50aWZpZXIiKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCBURVNUKFdlYktpdCwg
UGVyZm9ybWVkQWN0aW9uRm9yVVJMKQogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0
ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5n
ZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0PmZldGNoKCdub3Rp
ZnknKS50aGVuKGZ1bmN0aW9uKCl7ZmV0Y2goJ2Jsb2NrJykudGhlbigpLmNhdGNoKGZ1bmN0aW9u
KCl7YWxlcnQoJ3Rlc3QgY29tcGxldGUnKX0pfSk8L3NjcmlwdD4iIGJhc2VVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJhcGl0ZXN0Oi8vLyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkQWxlcnQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVk
QWxlcnQpOwogICAgIHdoaWxlIChub3RpZmljYXRpb25MaXN0LnNpemUoKSA8IDIpCiAgICAgICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNwaW5SdW5Mb29wKCk7CiAKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29va2llQWNjZXB0UG9saWN5Lm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29va2llQWNjZXB0
UG9saWN5Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0Nvb2tpZUFjY2VwdFBvbGljeS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjYs
NyArNjYsNyBAQCBURVNUKFdlYktpdCwgQ29va2llQWNjZXB0UG9saWN5KQogICAgIE5TVVJMUmVx
dWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkNvb2tpZU1lc3NhZ2UiIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAgICBb
cHJvY2Vzc1Bvb2wgX3NldENvb2tpZUFjY2VwdFBvbGljeTpOU0hUVFBDb29raWVBY2NlcHRQb2xp
Y3lOZXZlcl07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgRVhQRUNUX1NUUkVR
KFsoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0gVVRGOFN0cmluZ10sICJDT09L
SUU6Iik7CiAgICAgCiAgICAgW1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVT
dG9yYWdlXSBzZXRDb29raWVBY2NlcHRQb2xpY3k6b3JpZ2luYWxDb29raWVBY2NlcHRQb2xpY3ld
OwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db29raWVQcml2
YXRlQnJvd3NpbmcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Db29raWVQcml2YXRlQnJvd3NpbmcubW0JKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29va2llUHJpdmF0ZUJyb3dz
aW5nLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02Myw4ICs2Myw4IEBAIFRFU1QoV2ViS2l0LCBDb29r
aWVQcml2YXRlQnJvd3NpbmcpCiAgICAgW3ZpZXcyIHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0
KCldOwogICAgIE5TU3RyaW5nICphbGVydE9sZENvb2tpZSA9IEAiPHNjcmlwdD52YXIgb2xkQ29v
a2llID0gZG9jdW1lbnQuY29va2llOyBkb2N1bWVudC5jb29raWUgPSAna2V5PXZhbHVlJzsgYWxl
cnQoJ29sZCBjb29raWU6IDwnICsgb2xkQ29va2llICsgJz4nKTs8L3NjcmlwdD4iOwogICAgIFt2
aWV3MSBsb2FkSFRNTFN0cmluZzphbGVydE9sZENvb2tpZSBiYXNlVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAiaHR0cDovL2V4YW1wbGUuY29tLyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJnJlY2VpdmVkQWxlcnQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2Vp
dmVkQWxlcnQpOwogICAgIHJlY2VpdmVkQWxlcnQgPSBmYWxzZTsKICAgICBbdmlldzIgbG9hZEhU
TUxTdHJpbmc6YWxlcnRPbGRDb29raWUgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0
dHA6Ly9leGFtcGxlLmNvbS8iXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZEFsZXJ0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZEFsZXJ0KTsK
IH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ3VzdG9tVXNl
ckFnZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvQ3VzdG9tVXNlckFnZW50Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0N1c3RvbVVzZXJBZ2VudC5tbQkod29ya2luZyBj
b3B5KQpAQCAtNDgsNyArNDgsNyBAQCBURVNUKEN1c3RvbVVzZXJBZ2VudCwgVXBkYXRlQ2FjaGVk
TmF2aWdhCiAgICAgICAgIHdlYlZpZXcuZ2V0KCkuY3VzdG9tVXNlckFnZW50ID0gQCJDdXN0b20g
VXNlckFnZW50IjsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICAvLyBRdWVyeSBuYXZpZ2F0b3IudXNlckFnZW50
IGFnYWluIHRvIG1ha2Ugc3VyZSBpdHMgY2FjaGUgd2FzIGludmFsaWRhdGVkIGFuZCBpdCByZXR1
cm5zIHRoZSB1cGRhdGVkIHZhbHVlLgpAQCAtNTksNiArNTksNiBAQCBURVNUKEN1c3RvbVVzZXJB
Z2VudCwgVXBkYXRlQ2FjaGVkTmF2aWdhCiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAIkN1c3Rv
bSBVc2VyQWdlbnQiLCB1c2VyQWdlbnQpOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGF0YURldGVjdGlvbi5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RhdGFEZXRlY3Rpb24ubW0J
KHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRGF0YURldGVjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCAtICh2
b2lkKXN5bmNocm9ub3VzbHlEZXRlY3REYXRhV2l0aFR5cGVzCiAgICAgW3NlbGYgX2RldGVjdERh
dGFXaXRoVHlwZXM6dHlwZXMgY29tcGxldGlvbkhhbmRsZXI6XnsKICAgICAgICAgZG9uZSA9IHRy
dWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogLSAodm9pZClzeW5jaHJvbm91c2x5
UmVtb3ZlRGF0YURldGVjdGVkTGlua3MKQEAgLTU3LDcgKzU3LDcgQEAgLSAodm9pZClzeW5jaHJv
bm91c2x5UmVtb3ZlRGF0YURldGVjdGVkTAogICAgIFtzZWxmIF9yZW1vdmVEYXRhRGV0ZWN0ZWRM
aW5rczpeewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwog
fQogCiBAZW5kCkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgZXhwZWN0TGlua0NvdW50KFdLV2ViVmll
dyAqd2ViVmlldywKICAgICAgICAgcmFuU2NyaXB0ID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmFuU2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChyYW5TY3JpcHQpOwogICAgIHJhblNjcmlwdCA9IGZhbHNlOwogfQogCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9EZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uLm1tCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTk3LDExICs5Nywx
MSBAQCBURVNUKFdlYktpdCwgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjCiAKICAgICBmaW5p
c2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOmZpcnN0VVJMXV1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZE5hdmlnYXRpb24pOwogCiAgICAgZGVjaWRl
ZFBvbGljeSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IHJlbG9hZF07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkZWNpZGVkUG9saWN5KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkZWNpZGVkUG9saWN5KTsKIAogICAgIEVYUEVDVF9FUShXS05hdmlnYXRpb25UeXBlUmVsb2Fk
LCBbYWN0aW9uIG5hdmlnYXRpb25UeXBlXSk7CiAgICAgRVhQRUNUX1RSVUUoW2FjdGlvbiBzb3Vy
Y2VGcmFtZV0gIT0gW2FjdGlvbiB0YXJnZXRGcmFtZV0pOwpAQCAtMTI3LDExICsxMjcsMTEgQEAg
VEVTVChXZWJLaXQsIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BYwogCiAgICAgZmluaXNoZWRO
YXZpZ2F0aW9uID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpmaXJzdFVSTF1dXTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZpZ2F0aW9uKTsKIAogICAgIGRlY2lkZWRQb2xp
Y3kgPSBmYWxzZTsKICAgICBbd2ViVmlldyByZWxvYWRGcm9tT3JpZ2luXTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRlY2lkZWRQb2xpY3kpOwogCiAgICAgRVhQRUNUX0VRKFdLTmF2aWdhdGlvblR5cGVS
ZWxvYWQsIFthY3Rpb24gbmF2aWdhdGlvblR5cGVdKTsKICAgICBFWFBFQ1RfVFJVRShbYWN0aW9u
IHNvdXJjZUZyYW1lXSAhPSBbYWN0aW9uIHRhcmdldEZyYW1lXSk7CkBAIC0xNTcsMTUgKzE1Nywx
NSBAQCBURVNUKFdlYktpdCwgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjCiAKICAgICBmaW5p
c2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOmZpcnN0VVJMXV1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZE5hdmlnYXRpb24pOwogCiAgICAgZmluaXNo
ZWROYXZpZ2F0aW9uID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpzZWNvbmRVUkxdXV07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkTmF2aWdhdGlvbik7CiAKICAgICBkZWNpZGVk
UG9saWN5ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgZ29CYWNrXTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRlY2lkZWRQb2xpY3kpOwogCiAgICAgRVhQRUNUX0VRKFdLTmF2aWdhdGlvblR5cGVCYWNrRm9y
d2FyZCwgW2FjdGlvbiBuYXZpZ2F0aW9uVHlwZV0pOwogICAgIEVYUEVDVF9UUlVFKFthY3Rpb24g
c291cmNlRnJhbWVdICE9IFthY3Rpb24gdGFyZ2V0RnJhbWVdKTsKQEAgLTE5MSwxOSArMTkxLDE5
IEBAIFRFU1QoV2ViS2l0LCBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWMKIAogICAgIGZpbmlz
aGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6Zmlyc3RVUkxdXV07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkTmF2aWdhdGlvbik7CiAKICAgICBmaW5pc2hl
ZE5hdmlnYXRpb24gPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOnNlY29uZFVSTF1dXTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZpZ2F0aW9uKTsKIAogICAgIGZpbmlzaGVk
TmF2aWdhdGlvbiA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGdvQmFja107Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGZpbmlzaGVkTmF2aWdhdGlvbik7CiAKICAgICBkZWNpZGVkUG9saWN5ID0gZmFs
c2U7CiAgICAgW3dlYlZpZXcgZ29Gb3J3YXJkXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRlY2lkZWRQ
b2xpY3kpOwogCiAgICAgRVhQRUNUX0VRKFdLTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZCwgW2Fj
dGlvbiBuYXZpZ2F0aW9uVHlwZV0pOwogICAgIEVYUEVDVF9UUlVFKFthY3Rpb24gc291cmNlRnJh
bWVdICE9IFthY3Rpb24gdGFyZ2V0RnJhbWVdKTsKQEAgLTIzMSwxMiArMjMxLDEyIEBAIFRFU1Qo
V2ViS2l0LCBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWMKIAogICAgICAgICBjcmVhdGVkV2Vi
VmlldyA9IGZhbHNlOwogICAgICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+
d2luZG93Lm9wZW4oJ2h0dHA6Ly93ZWJraXQub3JnL2Rlc3RpbmF0aW9uLmh0bWwnKTwvc2NyaXB0
PiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl1dOwot
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmNyZWF0ZWRXZWJWaWV3KTsKKyAgICAg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoY3JlYXRlZFdlYlZpZXcpOwogICAgIH0KIAogICAg
IGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKICAgICBbbmV3V2ViVmlldyBzZXROYXZpZ2F0aW9uRGVs
ZWdhdGU6Y29udHJvbGxlci5nZXQoKV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
ZWNpZGVkUG9saWN5KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkZWNpZGVkUG9saWN5
KTsKIAogICAgIEVYUEVDVF9FUShXS05hdmlnYXRpb25UeXBlT3RoZXIsIFthY3Rpb24gbmF2aWdh
dGlvblR5cGVdKTsKICAgICBFWFBFQ1RfVFJVRShbYWN0aW9uIHNvdXJjZUZyYW1lXSAhPSBbYWN0
aW9uIHRhcmdldEZyYW1lXSk7CkBAIC0yNjAsMTEgKzI2MCwxMSBAQCBURVNUKFdlYktpdCwgRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjCiAKICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxz
ZTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxhIHN0eWxlPVwiZGlzcGxheTogYmxv
Y2s7IGhlaWdodDogMTAwJVwiIGhyZWY9XCJodHRwczovL3dlYmtpdC5vcmcvZGVzdGluYXRpb24y
Lmh0bWxcIiB0YXJnZXQ9XCJCXCI+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0
cDovL3dlYmtpdC5vcmciXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hl
ZE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkTmF2aWdh
dGlvbik7CiAKICAgICBjcmVhdGVkV2ViVmlldyA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5vcGVuKFwiaHR0cHM6Ly93ZWJraXQub3JnL2Rlc3RpbmF0
aW9uMS5odG1sXCIsIFwiQlwiKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmNyZWF0ZWRXZWJWaWV3KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChjcmVhdGVkV2ViVmlldyk7CiAKICAgICBFWFBFQ1RfRVEoV0tOYXZpZ2F0aW9uVHlw
ZU90aGVyLCBbYWN0aW9uIG5hdmlnYXRpb25UeXBlXSk7CiAgICAgRVhQRUNUX1RSVUUoW2FjdGlv
biBzb3VyY2VGcmFtZV0gIT0gW2FjdGlvbiB0YXJnZXRGcmFtZV0pOwpAQCAtMjc2LDE0ICsyNzYs
MTQgQEAgVEVTVChXZWJLaXQsIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BYwogICAgIC8vIFdh
aXQgZm9yIG5ld1dlYlZpZXcgdG8gYXNrIHRvIGxvYWQgaXRzIGluaXRpYWwgZG9jdW1lbnQuCiAg
ICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogICAgIFtuZXdXZWJWaWV3IHNldE5hdmlnYXRpb25E
ZWxlZ2F0ZTpjb250cm9sbGVyLmdldCgpXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRlY2lkZWRQb2xp
Y3kpOwogCiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogICAgIFtuZXdXZWJWaWV3IHNldE5h
dmlnYXRpb25EZWxlZ2F0ZTpjb250cm9sbGVyLmdldCgpXTsKICAgICBOU1BvaW50IGNsaWNrUG9p
bnQgPSBOU01ha2VQb2ludCgxMDAsIDEwMCk7CiAgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQ
b2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxl
ZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1w
OjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51
bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CiAgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6
Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5
cGVMZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3Rh
bXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50
TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRl
Y2lkZWRQb2xpY3kpOwogCiAgICAgRVhQRUNUX0VRKFdLTmF2aWdhdGlvblR5cGVMaW5rQWN0aXZh
dGVkLCBbYWN0aW9uIG5hdmlnYXRpb25UeXBlXSk7CiAgICAgRVhQRUNUX1RSVUUoW2FjdGlvbiBz
b3VyY2VGcmFtZV0gIT0gW2FjdGlvbiB0YXJnZXRGcmFtZV0pOwpAQCAtMzEwLDcgKzMxMCw3IEBA
IFRFU1QoV2ViS2l0LCBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWMKICAgICBmaW5pc2hlZE5h
dmlnYXRpb24gPSBmYWxzZTsKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7CiAgICAgW3dlYlZp
ZXcgbG9hZEhUTUxTdHJpbmc6QCJURVNUIiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
YWJvdXQ6YmxhbmsiXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZE5h
dmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkTmF2aWdhdGlv
bik7CiAgICAgRVhQRUNUX1RSVUUoZGVjaWRlZFBvbGljeSk7CiB9CiAKQEAgLTM0NywxMSArMzQ3
LDExIEBAIFRFU1QoV2ViS2l0LCBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWMKIAogICAgIGZp
bmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAi
PGEgc3R5bGU9XCJkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAxMDAlXCIgaHJlZj1cImphdmFzY3Jp
cHQ6d2luZG93Lm9wZW4oJ2h0dHBzOi8vd2Via2l0Lm9yZy9kZXN0aW5hdGlvbjIuaHRtbCcsICdC
JylcIj4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd2Via2l0Lm9yZyJd
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZpZ2F0aW9uKTsKIAogICAgIGNy
ZWF0ZWRXZWJWaWV3ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAi
d2luZG93Lm9wZW4oXCJodHRwczovL3dlYmtpdC5vcmcvZGVzdGluYXRpb24xLmh0bWxcIiwgXCJC
XCIpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmY3JlYXRlZFdlYlZpZXcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGNyZWF0ZWRX
ZWJWaWV3KTsKIAogICAgIEVYUEVDVF9FUShXS05hdmlnYXRpb25UeXBlT3RoZXIsIFthY3Rpb24g
bmF2aWdhdGlvblR5cGVdKTsKICAgICBFWFBFQ1RfVFJVRShbYWN0aW9uIHNvdXJjZUZyYW1lXSAh
PSBbYWN0aW9uIHRhcmdldEZyYW1lXSk7CkBAIC0zNjMsMTQgKzM2MywxNCBAQCBURVNUKFdlYktp
dCwgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjCiAgICAgLy8gV2FpdCBmb3IgbmV3V2ViVmll
dyB0byBhc2sgdG8gbG9hZCBpdHMgaW5pdGlhbCBkb2N1bWVudC4KICAgICBkZWNpZGVkUG9saWN5
ID0gZmFsc2U7CiAgICAgW25ld1dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmNvbnRyb2xs
ZXIuZ2V0KCldOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGVjaWRlZFBvbGljeSk7CiAKICAgICBkZWNp
ZGVkUG9saWN5ID0gZmFsc2U7CiAgICAgW25ld1dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRl
OmNvbnRyb2xsZXIuZ2V0KCldOwogICAgIE5TUG9pbnQgY2xpY2tQb2ludCA9IE5TTWFrZVBvaW50
KDEwMCwgMTAwKTsKICAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZURvd246
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2Nh
dGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6
W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3Vu
dDoxIHByZXNzdXJlOjFdXTsKICAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3Vz
ZVVwOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwIGxv
Y2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJl
cjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0Nv
dW50OjEgcHJlc3N1cmU6MV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRl
ZFBvbGljeSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGVjaWRlZFBvbGljeSk7CiAK
ICAgICBFWFBFQ1RfRVEoV0tOYXZpZ2F0aW9uVHlwZU90aGVyLCBbYWN0aW9uIG5hdmlnYXRpb25U
eXBlXSk7CiAgICAgRVhQRUNUX1RSVUUoW2FjdGlvbiBzb3VyY2VGcmFtZV0gIT0gW2FjdGlvbiB0
YXJnZXRGcmFtZV0pOwpAQCAtMzk2LDExICszOTYsMTEgQEAgVEVTVChXZWJLaXQsIERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BYwogCiAgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CiAg
ICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8Zm9ybSBhY3Rpb249XCJodHRwczovL3dlYmtp
dC5vcmcvZGVzdGluYXRpb24xLmh0bWxcIiB0YXJnZXQ9XCJCXCI+PGlucHV0IHR5cGU9XCJzdWJt
aXRcIiBuYW1lPVwic3VibWl0XCIgdmFsdWU9XCJTdWJtaXRcIiBzdHlsZT1cIi13ZWJraXQtYXBw
ZWFyYW5jZTogbm9uZTsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJVwiPjwvZm9ybT4iIGJhc2VV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd2Via2l0Lm9yZyJdXTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZpZ2F0aW9uKTsKIAogICAgIGNyZWF0ZWRXZWJWaWV3
ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93Lm9wZW4o
XCJodHRwczovL3dlYmtpdC5vcmcvZGVzdGluYXRpb24yLmh0bWxcIiwgXCJCXCIpIiBjb21wbGV0
aW9uSGFuZGxlcjpuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmY3JlYXRlZFdl
YlZpZXcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGNyZWF0ZWRXZWJWaWV3KTsKIAog
ICAgIEVYUEVDVF9FUShXS05hdmlnYXRpb25UeXBlT3RoZXIsIFthY3Rpb24gbmF2aWdhdGlvblR5
cGVdKTsKICAgICBFWFBFQ1RfVFJVRShbYWN0aW9uIHNvdXJjZUZyYW1lXSAhPSBbYWN0aW9uIHRh
cmdldEZyYW1lXSk7CkBAIC00MTIsMTMgKzQxMiwxMyBAQCBURVNUKFdlYktpdCwgRGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjCiAgICAgLy8gV2FpdCBmb3IgbmV3V2ViVmlldyB0byBhc2sgdG8g
bG9hZCBpdHMgaW5pdGlhbCBkb2N1bWVudC4KICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7CiAg
ICAgW25ld1dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmNvbnRyb2xsZXIuZ2V0KCldOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZGVjaWRlZFBvbGljeSk7CiAKICAgICBkZWNpZGVkUG9saWN5ID0g
ZmFsc2U7CiAgICAgTlNQb2ludCBjbGlja1BvaW50ID0gTlNNYWtlUG9pbnQoMTAwLCAxMDApOwog
ICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrUG9p
bnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRv
d051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6
MV1dOwogICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQ
b2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2lu
ZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3Vy
ZToxXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkZWNpZGVkUG9saWN5KTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkZWNpZGVkUG9saWN5KTsKIAogICAgIEVYUEVDVF9F
UShXS05hdmlnYXRpb25UeXBlRm9ybVN1Ym1pdHRlZCwgW2FjdGlvbiBuYXZpZ2F0aW9uVHlwZV0p
OwogICAgIEVYUEVDVF9UUlVFKFthY3Rpb24gc291cmNlRnJhbWVdICE9IFthY3Rpb24gdGFyZ2V0
RnJhbWVdKTsKQEAgLTQ1MywxNCArNDUzLDE0IEBAIHN0YXRpYyB2b2lkIHJ1bkRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb24KICAgICBbVGVzdFByb3RvY29sIHJlZ2lzdGVyV2l0aFNjaGVtZTpAImh0
dHAiXTsKICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2Fk
SFRNTFN0cmluZzpAIjxhIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7IGhlaWdodDogMTAwJVwiIGhy
ZWY9XCJodHRwOi8vcmVkaXJlY3QvP3Jlc3VsdFwiPiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5p
c2hlZE5hdmlnYXRpb24pOwogCiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogICAgIFtuZXdX
ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpjb250cm9sbGVyLmdldCgpXTsKICAgICBOU1Bv
aW50IGNsaWNrUG9pbnQgPSBOU01ha2VQb2ludCgxMDAsIDEwMCk7CiAgICAgW1t3ZWJWaWV3IGhp
dFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpO
U0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdz
OjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0
Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07CiAgICAgW1t3ZWJW
aWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5
cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxh
Z3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRl
eHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRlY2lkZWRQb2xpY3kpOwogCiAgICAgRVhQRUNUX0VRKFdLTmF2aWdhdGlvblR5
cGVMaW5rQWN0aXZhdGVkLCBbYWN0aW9uIG5hdmlnYXRpb25UeXBlXSk7CiAgICAgRVhQRUNUX1RS
VUUoW2FjdGlvbiBzb3VyY2VGcmFtZV0gPT0gW2FjdGlvbiB0YXJnZXRGcmFtZV0pOwpAQCAtNDcz
LDcgKzQ3Myw3IEBAIHN0YXRpYyB2b2lkIHJ1bkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb24KIAog
ICAgIC8vIFdhaXQgdG8gZGVjaWRlIHBvbGljeSBmb3IgcmVkaXJlY3QuCiAgICAgZGVjaWRlZFBv
bGljeSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRlZFBvbGlj
eSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGVjaWRlZFBvbGljeSk7CiAKICAgICBF
WFBFQ1RfRVEoV0tOYXZpZ2F0aW9uVHlwZUxpbmtBY3RpdmF0ZWQsIFthY3Rpb24gbmF2aWdhdGlv
blR5cGVdKTsKICAgICBFWFBFQ1RfVFJVRShbYWN0aW9uIHNvdXJjZUZyYW1lXSA9PSBbYWN0aW9u
IHRhcmdldEZyYW1lXSk7CkBAIC01MTIsMTIgKzUxMiwxMiBAQCBURVNUKFdlYktpdCwgRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjCiAKICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsK
ICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxmb3JtIGFjdGlvbj1cImh0dHA6Ly9yZWRp
cmVjdC8/cmVzdWx0XCIgbWV0aG9kPVwiUE9TVFwiPjxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFt
ZT1cInN1Ym1pdEJ1dHRvblwiIHZhbHVlPVwiU3VibWl0XCI+PC9mb3JtPiIgYmFzZVVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl1dOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChmaW5pc2hlZE5hdmlnYXRpb24pOwogCiAgICAgW1Rlc3RQcm90b2NvbCByZWdpc3Rl
cldpdGhTY2hlbWU6QCJodHRwIl07CiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogICAgIFt3
ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpIiBj
b21wbGV0aW9uSGFuZGxlcjpuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVj
aWRlZFBvbGljeSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGVjaWRlZFBvbGljeSk7
CiAKICAgICBFWFBFQ1RfRVEoV0tOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQsIFthY3Rpb24g
bmF2aWdhdGlvblR5cGVdKTsKICAgICBFWFBFQ1RfVFJVRShbYWN0aW9uIHNvdXJjZUZyYW1lXSA9
PSBbYWN0aW9uIHRhcmdldEZyYW1lXSk7CkBAIC01MzAsNyArNTMwLDcgQEAgVEVTVChXZWJLaXQs
IERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BYwogCiAgICAgLy8gV2FpdCB0byBkZWNpZGUgcG9s
aWN5IGZvciByZWRpcmVjdC4KICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkZWNpZGVkUG9saWN5KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkZWNpZGVkUG9saWN5KTsKIAogICAgIEVYUEVDVF9FUShXS05hdmlnYXRpb25UeXBl
Rm9ybVN1Ym1pdHRlZCwgW2FjdGlvbiBuYXZpZ2F0aW9uVHlwZV0pOwogICAgIEVYUEVDVF9UUlVF
KFthY3Rpb24gc291cmNlRnJhbWVdID09IFthY3Rpb24gdGFyZ2V0RnJhbWVdKTsKQEAgLTU1OSwx
MiArNTU5LDEyIEBAIFRFU1QoV2ViS2l0LCBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWMKIAog
ICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3Ry
aW5nOkAiPGZvcm0gYWN0aW9uPVwiaHR0cDovLzMwNy1yZWRpcmVjdC8/cmVzdWx0XCIgbWV0aG9k
PVwiUE9TVFwiPjxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cInN1Ym1pdEJ1dHRvblwiIHZh
bHVlPVwiU3VibWl0XCI+PC9mb3JtPiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0
dHA6Ly93ZWJraXQub3JnIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNo
ZWROYXZpZ2F0aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZE5hdmln
YXRpb24pOwogCiAgICAgW1Rlc3RQcm90b2NvbCByZWdpc3RlcldpdGhTY2hlbWU6QCJodHRwIl07
CiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNj
cmlwdDpAImRvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxd
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRlZFBvbGljeSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZGVjaWRlZFBvbGljeSk7CiAKICAgICBFWFBFQ1RfRVEoV0tO
YXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQsIFthY3Rpb24gbmF2aWdhdGlvblR5cGVdKTsKICAg
ICBFWFBFQ1RfVFJVRShbYWN0aW9uIHNvdXJjZUZyYW1lXSA9PSBbYWN0aW9uIHRhcmdldEZyYW1l
XSk7CkBAIC01NzcsNyArNTc3LDcgQEAgVEVTVChXZWJLaXQsIERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BYwogCiAgICAgLy8gV2FpdCB0byBkZWNpZGUgcG9saWN5IGZvciByZWRpcmVjdC4KICAg
ICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
ZWNpZGVkUG9saWN5KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkZWNpZGVkUG9saWN5
KTsKIAogICAgIEVYUEVDVF9FUShXS05hdmlnYXRpb25UeXBlRm9ybVN1Ym1pdHRlZCwgW2FjdGlv
biBuYXZpZ2F0aW9uVHlwZV0pOwogICAgIEVYUEVDVF9UUlVFKFthY3Rpb24gc291cmNlRnJhbWVd
ID09IFthY3Rpb24gdGFyZ2V0RnJhbWVdKTsKQEAgLTYyNSw3ICs2MjUsNyBAQCBURVNUKFdlYktp
dCwgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRnJhZ21lbnREZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5n
ZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8c2NyaXB0PndpbmRvdy5sb2Nh
dGlvbi5ocmVmPScjZnJhZ21lbnQnOzwvc2NyaXB0PiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKICNlbmRp
ZgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EZXZpY2VPcmll
bnRhdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0RldmljZU9yaWVudGF0aW9uLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RldmljZU9yaWVudGF0aW9uLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTAsNyArMTEwLDcgQEAgc3RhdGljIHZvaWQgcnVuRGV2aWNlT3JpZW50
YXRpb25UZXN0KERldgogCiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiRGV2aWNl
T3JpZW50YXRpb25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKGdyYW50ZWQpID0+IHsg
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShncmFudGVkKSB9
KTsiIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsg
fV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZFJlY2VpdmVNZXNzYWdlKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRSZWNlaXZlTWVzc2FnZSk7CiAgICAgZGlk
UmVjZWl2ZU1lc3NhZ2UgPSBmYWxzZTsKIAogICAgIHN3aXRjaCAoZGV2aWNlT3JpZW50YXRpb25Q
ZXJtaXNzaW9uKSB7CkBAIC0xMjgsMTMgKzEyOCwxMyBAQCBzdGF0aWMgdm9pZCBydW5EZXZpY2VP
cmllbnRhdGlvblRlc3QoRGV2CiAgICAgICAgIGFkZGVkRXZlbnRMaXN0ZW5lciA9IHRydWU7CiAg
ICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmFkZGVkRXZlbnRMaXN0ZW5l
cik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoYWRkZWRFdmVudExpc3RlbmVyKTsKICAg
ICBhZGRlZEV2ZW50TGlzdGVuZXIgPSBmYWxzZTsKIAogICAgIFt3ZWJWaWV3IF9zaW11bGF0ZURl
dmljZU9yaWVudGF0aW9uQ2hhbmdlV2l0aEFscGhhOjEuMCBiZXRhOjIuMCBnYW1tYTozLjBdOwog
CiAgICAgaWYgKGRldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbiA9PSBEZXZpY2VPcmllbnRhdGlv
blBlcm1pc3Npb246OkdyYW50ZWQpIHsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkaWRSZWNlaXZlTWVzc2FnZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRp
ZFJlY2VpdmVNZXNzYWdlKTsKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAicmVjZWl2ZWQtZXZl
bnQiLCByZWNlaXZlZE1lc3NhZ2VzLmdldCgpWzFdKTsKICAgICB9IGVsc2UgewogICAgICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOwpAQCAtMTc2LDcgKzE3Niw3IEBAIFRFU1Qo
RGV2aWNlT3JpZW50YXRpb24sIFJlbWVtYmVyUGVybWlzc2kKIAogICAgIFt3ZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdDpAIkRldmljZU9yaWVudGF0aW9uRXZlbnQucmVxdWVzdFBlcm1pc3Npb24o
KS50aGVuKChncmFudGVkKSA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIu
cG9zdE1lc3NhZ2UoZ3JhbnRlZCkgfSk7IiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1
bHQsIE5TRXJyb3IgKmVycm9yKSB7IH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkaWRSZWNlaXZlTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkUmVj
ZWl2ZU1lc3NhZ2UpOwogICAgIGRpZFJlY2VpdmVNZXNzYWdlID0gZmFsc2U7CiAKICAgICBFWFBF
Q1RfVFJVRShhc2tlZENsaWVudEZvclBlcm1pc3Npb24pOwpAQCAtMTkyLDcgKzE5Miw3IEBAIFRF
U1QoRGV2aWNlT3JpZW50YXRpb24sIFJlbWVtYmVyUGVybWlzc2kKIAogICAgIFt3ZWJWaWV3IF9l
dmFsdWF0ZUphdmFTY3JpcHRXaXRob3V0VXNlckdlc3R1cmU6QCJEZXZpY2VPcmllbnRhdGlvbkV2
ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoZ3JhbnRlZCkgPT4geyB3ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGdyYW50ZWQpIH0sIChlcnJvcikgPT4g
eyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdlcnJvcicp
OyB9KTsiIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3Ip
IHsgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZFJlY2VpdmVNZXNzYWdl
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRSZWNlaXZlTWVzc2FnZSk7CiAgICAg
ZGlkUmVjZWl2ZU1lc3NhZ2UgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShAImdyYW50
ZWQiLCByZWNlaXZlZE1lc3NhZ2VzLmdldCgpWzFdKTsKQEAgLTIxMiw3ICsyMTIsNyBAQCBURVNU
KERldmljZU9yaWVudGF0aW9uLCBSZW1lbWJlclBlcm1pc3NpCiAKICAgICBbd2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHQ6QCJEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9u
KCkudGhlbigoZ3JhbnRlZCkgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVy
LnBvc3RNZXNzYWdlKGdyYW50ZWQpIH0pOyIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVz
dWx0LCBOU0Vycm9yICplcnJvcikgeyB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZGlkUmVjZWl2ZU1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZFJl
Y2VpdmVNZXNzYWdlKTsKICAgICBkaWRSZWNlaXZlTWVzc2FnZSA9IGZhbHNlOwogCiAgICAgRVhQ
RUNUX1RSVUUoYXNrZWRDbGllbnRGb3JQZXJtaXNzaW9uKTsKQEAgLTIyNiw3ICsyMjYsNyBAQCBU
RVNUKERldmljZU9yaWVudGF0aW9uLCBSZW1lbWJlclBlcm1pc3NpCiAKICAgICBbd2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCJEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNz
aW9uKCkudGhlbigoZ3JhbnRlZCkgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKGdyYW50ZWQpIH0pOyIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQg
cmVzdWx0LCBOU0Vycm9yICplcnJvcikgeyB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZGlkUmVjZWl2ZU1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRp
ZFJlY2VpdmVNZXNzYWdlKTsKICAgICBkaWRSZWNlaXZlTWVzc2FnZSA9IGZhbHNlOwogCiAgICAg
RVhQRUNUX1RSVUUoYXNrZWRDbGllbnRGb3JQZXJtaXNzaW9uKTsKQEAgLTI0Miw3ICsyNDIsNyBA
QCBURVNUKERldmljZU9yaWVudGF0aW9uLCBSZW1lbWJlclBlcm1pc3NpCiAKICAgICBbd2ViVmll
dyBfZXZhbHVhdGVKYXZhU2NyaXB0V2l0aG91dFVzZXJHZXN0dXJlOkAiRGV2aWNlT3JpZW50YXRp
b25FdmVudC5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKGdyYW50ZWQpID0+IHsgd2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShncmFudGVkKSB9LCAoZXJyb3Ip
ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnZXJy
b3InKTsgfSk7IiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVy
cm9yKSB7IH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRSZWNlaXZlTWVz
c2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkUmVjZWl2ZU1lc3NhZ2UpOwog
ICAgIGRpZFJlY2VpdmVNZXNzYWdlID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJn
cmFudGVkIiwgcmVjZWl2ZWRNZXNzYWdlcy5nZXQoKVs0XSk7CkBAIC0yNjksNyArMjY5LDcgQEAg
VEVTVChEZXZpY2VPcmllbnRhdGlvbiwgRmlyZU9yaWVudGF0aW9uRQogICAgIC8vIFJlcXVlc3Qg
cGVybWlzc2lvbi4KICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJEZXZpY2VPcmll
bnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigoZ3JhbnRlZCkgPT4geyB3ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGdyYW50ZWQpIH0pOyIg
Y29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeyB9XTsK
IAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkUmVjZWl2ZU1lc3NhZ2UpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZFJlY2VpdmVNZXNzYWdlKTsKICAgICBkaWRSZWNl
aXZlTWVzc2FnZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX1RSVUUoYXNrZWRDbGllbnRGb3JQZXJt
aXNzaW9uKTsKQEAgLTI4OSwxNCArMjg5LDE0IEBAIFRFU1QoRGV2aWNlT3JpZW50YXRpb24sIEZp
cmVPcmllbnRhdGlvbkUKICAgICAgICAgYWRkZWRFdmVudExpc3RlbmVyID0gdHJ1ZTsKICAgICB9
XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmYWRkZWRFdmVudExpc3RlbmVyKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChhZGRlZEV2ZW50TGlzdGVuZXIpOwogICAgIGFk
ZGVkRXZlbnRMaXN0ZW5lciA9IGZhbHNlOwogCiAgICAgLy8gU2ltdWxhdGUgYSBkZXZpY2Ugb3Jp
ZW50YXRpb24gZXZlbnQuIFRoZSBwYWdlJ3MgZXZlbnQgbGlzdGVuZXIgc2hvdWxkIGdldCBjYWxs
ZWQgZXZlbiB0aG91Z2ggaXQgZGlkIG5vdCByZXF1ZXN0IHBlcm1pc3Npb24sCiAgICAgLy8gYmVj
YXVzZSBpdCB3YXMgcHJldmlvdXNseSBncmFudGVkIHBlcm1pc3Npb24gZHVyaW5nIHRoaXMgYnJv
d3Npbmcgc2Vzc2lvbi4KICAgICBbd2ViVmlldyBfc2ltdWxhdGVEZXZpY2VPcmllbnRhdGlvbkNo
YW5nZVdpdGhBbHBoYToxLjAgYmV0YToyLjAgZ2FtbWE6My4wXTsKIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZGlkUmVjZWl2ZU1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRpZFJlY2VpdmVNZXNzYWdlKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJyZWNlaXZl
ZC1ldmVudCIsIHJlY2VpdmVkTWVzc2FnZXMuZ2V0KClbMV0pOwogfQogCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBk
YXRlQWZ0ZXJDcmFzaC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlQWZ0ZXJDcmFzaC5tbQko
cmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Eb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZUFmdGVyQ3Jhc2gubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTUwLDcgKzUwLDcgQEAgVEVTVChXZWJLaXQsIERvQWZ0ZXJOZXh0UHJlc2VudGF0aW9u
VXBkYQogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAidGVzdCIgYmFzZVVSTDpuaWxdOwog
ICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290Q2FsbGJhY2spOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGdvdENhbGxiYWNrKTsKIH0KIAogVEVTVChXZWJLaXQsIERvQWZ0ZXJOZXh0U3Rh
YmxlUHJlc2VudGF0aW9uVXBkYXRlQWZ0ZXJDcmFzaCkKQEAgLTcwLDcgKzcwLDcgQEAgVEVTVChX
ZWJLaXQsIERvQWZ0ZXJOZXh0U3RhYmxlUHJlc2VudGF0aQogICAgIFt3ZWJWaWV3IGxvYWRIVE1M
U3RyaW5nOkAidGVzdCIgYmFzZVVSTDpuaWxdOwogICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JE
aWRGaW5pc2hOYXZpZ2F0aW9uXTsKICAgICAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmdvdENhbGxiYWNrKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChnb3RDYWxsYmFjayk7
CiB9CiAKICNlbmRpZgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQkocmV2aXNp
b24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1
bWVudEVkaXRpbmdDb250ZXh0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03OCw3ICs3OCw3IEBAIC0g
KFVJV0tEb2N1bWVudENvbnRleHQgKilzeW5jaHJvbm91c2x5UmUKICAgICAgICAgcmVzdWx0ID0g
Y29udGV4dDsKICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGZpbmlzaGVkKTsKICAgICByZXR1cm4gcmVzdWx0LmF1dG9yZWxlYXNlKCk7CiB9CiAKQEAgLTg4
LDcgKzg4LDcgQEAgLSAodm9pZClzeW5jaHJvbm91c2x5QWRqdXN0U2VsZWN0aW9uV2l0aAogICAg
IFtbc2VsZiB3a0NvbnRlbnRWaWV3XSBhZGp1c3RTZWxlY3Rpb25XaXRoRGVsdGE6cmFuZ2UgY29t
cGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwogICAgIH1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGZpbmlzaGVkKTsKIH0KIAogLSAoTlNBcnJheTxfV0tUZXh0SW5wdXRDb250
ZXh0ICo+ICopc3luY2hyb25vdXNseVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDooQ0dS
ZWN0KXJlY3QKQEAgLTk5LDcgKzk5LDcgQEAgLSAoTlNBcnJheTxfV0tUZXh0SW5wdXRDb250ZXh0
ICo+ICopc3luYwogICAgICAgICByZXN1bHQgPSBjb250ZXh0czsKICAgICAgICAgZmluaXNoZWQg
PSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkKTsKICAgICByZXR1cm4gcmVz
dWx0LmF1dG9yZWxlYXNlKCk7CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRG91YmxlRGVmZXJzTG9hZGluZy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvdWJsZURlZmVyc0xvYWRpbmcubW0JKHJl
dmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RG91YmxlRGVmZXJzTG9hZGluZy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTExLDIwICsxMTEsMjAg
QEAgVEVTVChXZWJLaXQsIERvdWJsZURlZmVyc0xvYWRpbmcpCiAgICAgTlNVUkxSZXF1ZXN0ICpy
ZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAImRlZmVyczovL2hvc3QvbWFpbjEuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAg
cmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJkZWZlcnM6Ly9ob3N0L21haW4xLmh0bWwjZnJhZ21lbnQiXV07CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxz
ZTsKIAogICAgIFt3ZWJWaWV3IF9zZXREZWZlcnNMb2FkaW5nRm9yVGVzdGluZzpZRVNdOwogICAg
IFt3ZWJWaWV3IGdvQmFja107CiAgICAgW3dlYlZpZXcgX3NldERlZmVyc0xvYWRpbmdGb3JUZXN0
aW5nOk5PXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogfQogCkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQu
bW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRG93bmxvYWQubW0JKHdvcmtpbmcgY29weSkKQEAgLTE0Miw3ICsxNDIsNyBAQCBzdGF0
aWMgdm9pZCBydW5UZXN0KGlkIDxXS05hdmlnYXRpb25EZWxlCiAgICAgaGFzUmVjZWl2ZWRSZXNw
b25zZSA9IGZhbHNlOwogICAgIGV4cGVjdGVkVXNlckluaXRpYXRlZFN0YXRlID0gZmFsc2U7CiAg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp1cmxd
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIH0KIAogQGludGVyZmFjZSBEb3dubG9hZE5hdmlnYXRp
b25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KQEAgLTI4MSw3ICsy
ODEsNyBAQCBURVNUKF9XS0Rvd25sb2FkLCBPcmlnaW5hdGluZ1dlYlZpZXcpCiAgICAgfQogCiAg
ICAgaXNEb25lID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKIEBpbnRlcmZhY2Ug
RG93bmxvYWRSZXF1ZXN0T3JpZ2luYWxVUkxEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tEb3dubG9h
ZERlbGVnYXRlPgpAQCAtMzU1LDcgKzM1NSw3IEBAIFRFU1QoX1dLRG93bmxvYWQsIERvd25sb2Fk
UmVxdWVzdE9yaWdpbmEKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOmNvbnRlbnRVUkxdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnNvdXJjZVVSTF1dOwogICAgIGlzRG9uZSA9IGZhbHNl
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChpc0RvbmUpOwogfQogCiBAaW50ZXJmYWNlIEJsb2JEb3dubG9hZERlbGVn
YXRlIDogTlNPYmplY3QgPF9XS0Rvd25sb2FkRGVsZWdhdGU+CkBAIC01MjAsNyArNTIwLDcgQEAg
VEVTVChfV0tEb3dubG9hZCwgUmVkaXJlY3RlZERvd25sb2FkKQogICAgIFt3ZWJWaWV3IG9iamVj
dEJ5RXZhbHVhdGluZ0phdmFTY3JpcHRXaXRoVXNlckdlc3R1cmU6QCJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnbGluaycpLmNsaWNrKCk7Il07CiAKICAgICBpc0RvbmUgPSBmYWxzZTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoaXNEb25lKTsKICAgICBFWFBFQ1RfRVEoMVUsIHJlZGlyZWN0Q291bnQpOwogCiAgICAg
W1Rlc3RQcm90b2NvbCB1bnJlZ2lzdGVyXTsKQEAgLTU0Myw3ICs1NDMsNyBAQCBURVNUKF9XS0Rv
d25sb2FkLCBSZWRpcmVjdGVkTG9hZENvbnZlcnRlCiAgICAgcmVkaXJlY3RDb3VudCA9IDA7CiAg
ICAgaGFzUmVjZWl2ZWRSZXNwb25zZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRw
Oi8vcmVkaXJlY3QvP3JlZGlyZWN0Lz9wYXNzIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKICAg
ICBFWFBFQ1RfRVEoMFUsIHJlZGlyZWN0Q291bnQpOwogCiAgICAgW1Rlc3RQcm90b2NvbCB1bnJl
Z2lzdGVyXTsKQEAgLTU2Niw3ICs1NjYsNyBAQCBURVNUKF9XS0Rvd25sb2FkLCBSZWRpcmVjdGVk
U3ViZnJhbWVMb2FkCiAgICAgcmVkaXJlY3RDb3VudCA9IDA7CiAgICAgaGFzUmVjZWl2ZWRSZXNw
b25zZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGJvZHk+PGlmcmFt
ZSBzcmM9J2h0dHA6Ly9yZWRpcmVjdC8/cmVkaXJlY3QvP3Bhc3MnPjwvaWZyYW1lPjwvYm9keT4i
IGJhc2VVUkw6bmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKICAgICBFWFBFQ1RfRVEoMFUsIHJl
ZGlyZWN0Q291bnQpOwogCiAgICAgW1Rlc3RQcm90b2NvbCB1bnJlZ2lzdGVyXTsKQEAgLTU5OCw3
ICs1OTgsNyBAQCAtICh2b2lkKV9kb3dubG9hZERpZENhbmNlbDooX1dLRG93bmxvYWQgCiAtICh2
b2lkKV9kb3dubG9hZDooX1dLRG93bmxvYWQgKilkb3dubG9hZCBkZWNpZGVEZXN0aW5hdGlvbldp
dGhTdWdnZXN0ZWRGaWxlbmFtZTooTlNTdHJpbmcgKilmaWxlbmFtZSBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoQk9PTCBhbGxvd092ZXJ3cml0ZSwgTlNTdHJpbmcgKmRlc3RpbmF0aW9uKSlj
b21wbGV0aW9uSGFuZGxlcgogewogICAgIFtkb3dubG9hZCBjYW5jZWxdOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChp
c0RvbmUpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFlFUywgQCIvdG1wL1dlYktpdEFQSVRlc3Qv
X1dLRG93bmxvYWQiKTsKICAgICBkb3dubG9hZEhhc0RlY2lkZWREZXN0aW5hdGlvbiA9IHRydWU7
CiB9CkBAIC02MTksNyArNjE5LDcgQEAgVEVTVChfV0tEb3dubG9hZCwgRG93bmxvYWRDYW5jZWxl
ZFdoaWxlRAogICAgIGRvd25sb2FkSGFzRGVjaWRlZERlc3RpbmF0aW9uID0gZmFsc2U7CiAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAImh0dHA6Ly9wYXNzIl1dXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG93bmxvYWRIYXNEZWNpZGVkRGVzdGluYXRpb24pOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvd25sb2FkSGFzRGVjaWRlZERlc3RpbmF0aW9uKTsKIAogICAgIFtUZXN0
UHJvdG9jb2wgdW5yZWdpc3Rlcl07CiB9CkBAIC02NzYsMTQgKzY3NiwxNCBAQCAtIChpbnN0YW5j
ZXR5cGUpaW5pdAogCiAtICh2b2lkKXdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uCiB7Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZfZGlkRmluaXNoTmF2aWdhdGlvbik7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoX2RpZEZpbmlzaE5hdmlnYXRpb24pOwogICAgIF9kaWRTdGFy
dFByb3Zpc2lvbmFsTmF2aWdhdGlvbiA9IGZhbHNlOwogICAgIF9kaWRGaW5pc2hOYXZpZ2F0aW9u
ID0gZmFsc2U7CiB9CiAKIC0gKHZvaWQpd2FpdEZvckRvd25sb2FkRGlkU3RhcnQKIHsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJl9kb3dubG9hZERpZFN0YXJ0KTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChfZG93bmxvYWREaWRTdGFydCk7CiB9CiAKIC0gKHZvaWQpd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGaW5pc2hOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24g
KiluYXZpZ2F0aW9uCkBAIC03NzEsMTEgKzc3MSwxMSBAQCBURVNUKF9XS0Rvd25sb2FkLCBDcmFz
aEFmdGVyRG93bmxvYWREaWRGCiAgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6c291cmNlVVJMXV07CiAKICAgICAgICAgZGlkRG93bmxvYWRT
dGFydCA9IGZhbHNlOwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZERvd25s
b2FkU3RhcnQpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWREb3dubG9hZFN0
YXJ0KTsKICAgICB9CiAKICAgICBpc0RvbmUgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsK
ICAgICBFWFBFQ1RfTlVMTChwcm9jZXNzUG9vbC5nZXQoKSk7CiB9CiAKQEAgLTg2OCwxMyArODY4
LDEzIEBAIHZvaWQgZG93bmxvYWRBdFJhdGUoZG91YmxlIGRlc2lyZWRLYnBzLCAKICAgICBhdXRv
IHdlYlZpZXcgPSB3ZWJWaWV3V2l0aERvd25sb2FkTW9uaXRvclNwZWVkTXVsdGlwbGllcihzcGVl
ZE11bHRpcGxpZXIpOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3Jt
YXQ6QCJodHRwOi8vMTI3LjAuMC4xOiVkLyIsIHNlcnZlci5wb3J0KCldXV1dOwogICAgIHJlY2Vp
dmVkRGF0YSA9IGZhbHNlOwotICAgIFV0aWw6OnJ1bigmcmVjZWl2ZWREYXRhKTsKKyAgICBydW5V
bnRpbChyZWNlaXZlZERhdGEpOwogICAgIC8vIFN0YXJ0IHRoZSBEb3dubG9hZE1vbml0b3IncyB0
aW1lci4KICAgICBbW3dlYlZpZXcgY29uZmlndXJhdGlvbl0ucHJvY2Vzc1Bvb2wgX3N5bnRoZXNp
emVBcHBJc0JhY2tncm91bmQ6WUVTXTsKICAgICBpZiAocmV0dXJuVG9Gb3JlZ3JvdW5kID09IEFw
cFJldHVybnNUb0ZvcmVncm91bmQ6OlllcykKICAgICAgICAgW1t3ZWJWaWV3IGNvbmZpZ3VyYXRp
b25dLnByb2Nlc3NQb29sIF9zeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kOk5PXTsKICAgICBkaWRD
YW5jZWwgPSBmYWxzZTsKLSAgICBVdGlsOjpydW4oJmRpZENhbmNlbCk7CisgICAgcnVuVW50aWwo
ZGlkQ2FuY2VsKTsKICAgICB0ZXJtaW5hdGVTZXJ2ZXIgPSB0cnVlOwogICAgIFtbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOltOU1VSTCBmaWxlVVJMV2l0aFBh
dGg6ZGVzdGluYXRpb24uZ2V0KCkgaXNEaXJlY3Rvcnk6Tk9dIGVycm9yOm5pbF07CiB9CkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkUHJvZ3Jlc3Mu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9E
b3dubG9hZFByb2dyZXNzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkUHJvZ3Jlc3MubW0JKHdvcmtpbmcgY29weSkK
QEAgLTIyMiwxMiArMjIyLDEyIEBAIC0gKHZvaWQpc3Vic2NyaWJlQW5kV2FpdEZvclByb2dyZXNz
CiAgICAgICAgIG1fcHJvZ3Jlc3NTdWJzY3JpYmVyID0gW05TUHJvZ3Jlc3MgYWRkU3Vic2NyaWJl
ckZvckZpbGVVUkw6bV9wcm9ncmVzc1VSTC5nZXQoKSB3aXRoUHVibGlzaGluZ0hhbmRsZXI6cHVi
bGlzaGluZ0hhbmRsZXIuZ2V0KCldOwogI2VuZGlmCiAgICAgfQotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmbV9oYXNQcm9ncmVzcyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
bV9oYXNQcm9ncmVzcyk7CiB9CiAKIC0gKHZvaWQpd2FpdFRvTG9zZVByb2dyZXNzCiB7Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZtX2xvc3RQcm9ncmVzcyk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwobV9sb3N0UHJvZ3Jlc3MpOwogfQogCiAtICh2b2lkKXN0YXJ0RG93bmxv
YWQ6KERvd25sb2FkU3RhcnRUeXBlKXN0YXJ0VHlwZSBleHBlY3RlZExlbmd0aDooTlNJbnRlZ2Vy
KWV4cGVjdGVkTGVuZ3RoCkBAIC0yNTIsNyArMjUyLDcgQEAgLSAodm9pZClzdGFydERvd25sb2Fk
OihEb3dubG9hZFN0YXJ0VHlwZQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJm1fZG93bmxvYWRTdGFydGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChtX2Rvd25sb2FkU3RhcnRlZCk7CiB9CiAKIC0gKHZvaWQpcHVibGlzaFByb2dy
ZXNzCkBAIC0yODUsMjcgKzI4NSwyNyBAQCAtICh2b2lkKWZhaWxEb3dubG9hZFRhc2sKIAogLSAo
dm9pZCl3YWl0Rm9yRG93bmxvYWREaWRDcmVhdGVEZXN0aW5hdGlvbgogewotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmbV9kb3dubG9hZERpZENyZWF0ZURlc3RpbmF0aW9uKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChtX2Rvd25sb2FkRGlkQ3JlYXRlRGVzdGluYXRpb24pOwog
fQogCiAtICh2b2lkKXdhaXRGb3JEb3dubG9hZEZpbmlzaGVkCiB7Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZtX2Rvd25sb2FkRmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKG1fZG93bmxvYWRGaW5pc2hlZCk7CiB9CiAKIC0gKHZvaWQpd2FpdEZvckRvd25sb2Fk
Q2FuY2VsZWQKIHsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm1fZG93bmxvYWRDYW5j
ZWxlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwobV9kb3dubG9hZENhbmNlbGVkKTsK
IH0KIAogLSAodm9pZCl3YWl0Rm9yRG93bmxvYWRGYWlsZWQKIHsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJm1fZG93bmxvYWRGYWlsZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKG1fZG93bmxvYWRGYWlsZWQpOwogfQogCiAtIChpbnQ2NF90KXdhaXRGb3JVcGRhdGVkQ29t
cGxldGVkVW5pdENvdW50CiB7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZtX2hhc1Vw
ZGF0ZWRDb21wbGV0ZWRVbml0Q291bnQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKG1f
aGFzVXBkYXRlZENvbXBsZXRlZFVuaXRDb3VudCk7CiAgICAgbV9oYXNVcGRhdGVkQ29tcGxldGVk
VW5pdENvdW50ID0gZmFsc2U7CiAKICAgICByZXR1cm4gbV9wcm9ncmVzcy5nZXQoKS5jb21wbGV0
ZWRVbml0Q291bnQ7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0RyYWdBbmREcm9wVGVzdHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9EcmFnQW5kRHJvcFRlc3RzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RyYWdBbmREcm9wVGVzdHMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTIwMyw4ICsyMDMsOCBAQCBURVNUKERyYWdBbmREcm9wVGVz
dHMsIENvbG9ySW5wdXRFdmVudHMpCiAgICAgfV07CiAKICAgICBbc2ltdWxhdG9yIHJ1bkZyb206
Q0dQb2ludE1ha2UoNTAsIDUwKSB0bzpDR1BvaW50TWFrZSgxNTAsIDUwKV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZpbnB1dEV2ZW50RmlyZWQpOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmY2hhbmdlRXZlbnRGaXJlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoaW5wdXRFdmVudEZpcmVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChjaGFuZ2VF
dmVudEZpcmVkKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EdXBsaWNhdGVDb21wbGV0
aW9uSGFuZGxlckNhbGxzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscy5tbQkocmV2aXNp
b24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EdXBs
aWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsNSAr
MTM0LDUgQEAgVEVTVChXZWJLaXQsIER1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQwogICAgIFt3
ZWJWaWV3IF9zZXRJbnB1dERlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJkdXBsaWNhdGUtY29tcGxldGlvbi1oYW5kbGVyLWNhbGxz
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXV1dOwogCi0gICAgVXRpbDo6cnVuKCZ0ZXN0RmluaXNoZWQpOworICAgIHJ1blVudGls
KHRlc3RGaW5pc2hlZCk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0V4aXRGdWxsc2NyZWVuT25FbnRlclBpUC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0V4aXRGdWxsc2NyZWVuT25FbnRlclBpUC5t
bQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9FeGl0RnVsbHNjcmVlbk9uRW50ZXJQaVAubW0JKHdvcmtpbmcgY29weSkKQEAgLTgxLDE5
ICs4MSwxOSBAQCBURVNUKEV4aXRGdWxsc2NyZWVuT25FbnRlclBpUCwgVmlkZW9GdWxsCiAKICAg
ICBkaWRFbnRlckZ1bGxzY3JlZW4gPSBmYWxzZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZW50ZXItdmlkZW8tZnVsbHNjcmVlbicp
LmNsaWNrKCkiIGNvbXBsZXRpb25IYW5kbGVyOiBuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZGlkRW50ZXJGdWxsc2NyZWVuKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkaWRFbnRlckZ1bGxzY3JlZW4pOwogICAgIEFTU0VSVF9UUlVFKGRpZEVudGVyRnVsbHNjcmVl
bik7CiAKICAgICBkaWRFbnRlclBpUCA9IGZhbHNlOwogICAgIGRpZEV4aXRGdWxsc2NyZWVuID0g
ZmFsc2U7CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2VudGVyLXBpcCcpLmNsaWNrKCkiIGNvbXBsZXRpb25IYW5kbGVyOiBuaWxdOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRW50ZXJQaVApOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZGlkRXhpdEZ1bGxzY3JlZW4pOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRpZEVudGVyUGlQKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRF
eGl0RnVsbHNjcmVlbik7CiAKICAgICBzbGVlcCgxX3MpOyAvLyBXYWl0IGZvciBQSVBBZ2VudCB0
byBsYXVuY2gsIG9yIGl0IHdvbid0IGNhbGwgLXBpcERpZENsb3NlOiBjYWxsYmFjay4KIAogICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdl
eGl0LXBpcCcpLmNsaWNrKCkiIGNvbXBsZXRpb25IYW5kbGVyOiBuaWxdOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZGlkRXhpdFBpUCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZGlkRXhpdFBpUCk7CiB9CiAKIApAQCAtMTExLDI1ICsxMTEsMjUgQEAgVEVTVChFeGl0RnVs
bHNjcmVlbk9uRW50ZXJQaVAsIEVsZW1lbnRGdQogCiAgICAgZGlkRW50ZXJGdWxsc2NyZWVuID0g
ZmFsc2U7CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2VudGVyLWVsZW1lbnQtZnVsbHNjcmVlbicpLmNsaWNrKCkiIGNvbXBsZXRpb25I
YW5kbGVyOiBuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRW50ZXJGdWxs
c2NyZWVuKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRFbnRlckZ1bGxzY3JlZW4p
OwogICAgIEFTU0VSVF9UUlVFKGRpZEVudGVyRnVsbHNjcmVlbik7CiAKICAgICAvLyBNYWtlIHRo
ZSB2aWRlbyB0aGUgIm1haW4gY29udGVudCIgYnkgcGxheWluZyB3aXRoIGEgdXNlciBnZXN0dXJl
LgogICAgIF9fYmxvY2sgYm9vbCBkaWRCZWdpblBsYXlpbmcgPSBmYWxzZTsKICAgICBbd2ViVmll
dyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAicGxheWluZyIgYWN0aW9uOl57IGRpZEJl
Z2luUGxheWluZyA9IHRydWU7IH1dOwogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpA
ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwbGF5JykuY2xpY2soKSIgY29tcGxldGlvbkhhbmRs
ZXI6bmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEJlZ2luUGxheWluZyk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkQmVnaW5QbGF5aW5nKTsKIAogICAgIGRp
ZEVudGVyUGlQID0gZmFsc2U7CiAgICAgZGlkRXhpdEZ1bGxzY3JlZW4gPSBmYWxzZTsKICAgICBb
d2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZW50
ZXItcGlwJykuY2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6IG5pbF07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkaWRFbnRlclBpUCk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkaWRFeGl0RnVsbHNjcmVlbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlk
RW50ZXJQaVApOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEV4aXRGdWxsc2NyZWVu
KTsKIAogICAgIHNsZWVwKDFfcyk7IC8vIFdhaXQgZm9yIFBJUEFnZW50IHRvIGxhdW5jaCwgb3Ig
aXQgd29uJ3QgY2FsbCAtcGlwRGlkQ2xvc2U6IGNhbGxiYWNrLgogCiAgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4aXQtcGlwJykuY2xp
Y2soKSIgY29tcGxldGlvbkhhbmRsZXI6IG5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkaWRFeGl0UGlQKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRFeGl0UGlQ
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaW5kSW5QYWdlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFnZS5tbQkocmV2aXNp
b24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaW5k
SW5QYWdlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIHN0YXRpYyBGaW5kUmVz
dWx0IGZpbmRNYXRjaGVzKFdLV2ViVmlldyAKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07
CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTg4LDcgKzg4
LDcgQEAgc3RhdGljIE5TVUludGVnZXIgcmVwbGFjZU1hdGNoZXMoV0tXZWJWaQogICAgICAgICBk
b25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIApAQCAtMTE1LDcgKzExNSw3IEBAIFRFU1QoV2ViS2l0LCBGaW5kSW5QYWdlKQogICAg
ICAgICBFWFBFQ1RfRVEoaW1hZ2Uuc2l6ZS5oZWlnaHQsIENHSW1hZ2VHZXRIZWlnaHQoQ0dJbWFn
ZSkgLyAyKTsKICAgICAgICAgZ2VuZXJhdGVUZXh0SW1hZ2VEb25lID0gdHJ1ZTsKICAgICB9XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdlbmVyYXRlVGV4dEltYWdlRG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZ2VuZXJhdGVUZXh0SW1hZ2VEb25lKTsKIAogICAg
IC8vIEZpbmQgb25lIG1hdGNoLCBkb2luZyBhbiBpbmNyZW1lbnRhbCBzZWFyY2guCiAgICAgcmVz
dWx0ID0gZmluZE1hdGNoZXMod2ViVmlldy5nZXQoKSwgQCJCaXJ0aGRheSIsIG5vRmluZE9wdGlv
bnMsIDEpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaXhl
ZExheW91dFNpemUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9GaXhlZExheW91dFNpemUubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRml4ZWRMYXlvdXRTaXplLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIFRFU1QoV2ViS2l0LCBGaXhlZExheW91dFNpemUp
CiAgICAgICAgIH1dOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZm
aXhlZExheW91dFNpemVEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaXhlZExh
eW91dFNpemVEb25lKTsKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
InNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwpAQCAt
NjYsNyArNjYsNyBAQCBURVNUKFdlYktpdCwgRml4ZWRMYXlvdXRTaXplKQogICAgICAgICBmaXhl
ZExheW91dFNpemVBZnRlck5hdmlnYXRpb25Eb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZml4ZWRMYXlvdXRTaXplQWZ0ZXJOYXZpZ2F0aW9uRG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZml4ZWRMYXlvdXRTaXplQWZ0ZXJOYXZp
Z2F0aW9uRG9uZSk7CiAKICAgICBbd2ViVmlldyBfc2V0TGF5b3V0TW9kZTpfV0tMYXlvdXRNb2Rl
Vmlld1NpemVdOwogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LmJv
ZHkuY2xpZW50V2lkdGgiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICpl
cnJvcikgewpAQCAtNzQsNyArNzQsNyBAQCBURVNUKFdlYktpdCwgRml4ZWRMYXlvdXRTaXplKQog
ICAgICAgICBmaXhlZExheW91dFNpemVEaXNhYmxlZERvbmUgPSB0cnVlOwogICAgIH1dOwogCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaXhlZExheW91dFNpemVEaXNhYmxlZERvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpeGVkTGF5b3V0U2l6ZURpc2FibGVkRG9u
ZSk7CiB9CiAKICNlbmRpZgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW0JKHJldmlzaW9uIDI0
NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRnVsbHNjcmVl
bkRlbGVnYXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05OCwxOSArOTgsMTkgQEAgVEVTVChGdWxs
c2NyZWVuLCBEZWxlZ2F0ZSkKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAIkZ1bGxzY3JlZW5EZWxlZ2F0ZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRMb2FkZWRN
ZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZExvYWRlZE1lc3Nh
Z2UpOwogCiAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlm
aWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6d2luZG93LmdldCgpLndpbmRvd051
bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CiAg
ICAgW3dlYlZpZXcgbW91c2VEb3duOmV2ZW50XTsKIAogICAgIEFTU0VSVF9GQUxTRShbd2ViVmll
dyBfaXNJbkZ1bGxzY3JlZW5dKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2Vp
dmVkV2lsbEVudGVyRnVsbHNjcmVlbk1lc3NhZ2UpOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVjZWl2ZWREaWRFbnRlckZ1bGxzY3JlZW5NZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChyZWNlaXZlZFdpbGxFbnRlckZ1bGxzY3JlZW5NZXNzYWdlKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZERpZEVudGVyRnVsbHNjcmVlbk1lc3NhZ2Up
OwogCiAgICAgQVNTRVJUX1RSVUUoW3dlYlZpZXcgX2lzSW5GdWxsc2NyZWVuXSk7CiAgICAgW3dl
YlZpZXcgbW91c2VEb3duOmV2ZW50XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkV2lsbEV4aXRGdWxsc2NyZWVuTWVzc2FnZSk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZyZWNlaXZlZERpZEV4aXRGdWxsc2NyZWVuTWVzc2FnZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwocmVjZWl2ZWRXaWxsRXhpdEZ1bGxzY3JlZW5NZXNzYWdlKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZERpZEV4aXRGdWxsc2NyZWVuTWVzc2FnZSk7
CiAKICAgICBBU1NFUlRfRkFMU0UoW3dlYlZpZXcgX2lzSW5GdWxsc2NyZWVuXSk7CiB9CkBAIC0x
MzgsMTUgKzEzOCwxNSBAQCBURVNUKEZ1bGxzY3JlZW4sIFdLVmlld0RlbGVnYXRlKQogICAgIFdL
UmV0YWluUHRyPFdLVVJMUmVmPiB1cmwgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZVVSTEZvclJlc291
cmNlKCJGdWxsc2NyZWVuRGVsZWdhdGUiLCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdl
YlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZExvYWRlZE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJl
Y2VpdmVkTG9hZGVkTWVzc2FnZSk7CiAKICAgICB3ZWJWaWV3LnNpbXVsYXRlQnV0dG9uQ2xpY2so
a1dLRXZlbnRNb3VzZUJ1dHRvbkxlZnRCdXR0b24sIDUsIDUsIDApOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRXaWxsRW50ZXJGdWxsc2NyZWVuTWVzc2FnZSk7Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZERpZEVudGVyRnVsbHNjcmVlbk1lc3Nh
Z2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkV2lsbEVudGVyRnVsbHNj
cmVlbk1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkRGlkRW50
ZXJGdWxsc2NyZWVuTWVzc2FnZSk7CiAKICAgICB3ZWJWaWV3LnNpbXVsYXRlQnV0dG9uQ2xpY2so
a1dLRXZlbnRNb3VzZUJ1dHRvbkxlZnRCdXR0b24sIDUsIDUsIDApOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRXaWxsRXhpdEZ1bGxzY3JlZW5NZXNzYWdlKTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkRGlkRXhpdEZ1bGxzY3JlZW5NZXNzYWdl
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFdpbGxFeGl0RnVsbHNjcmVl
bk1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkRGlkRXhpdEZ1
bGxzY3JlZW5NZXNzYWdlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GdWxsc2NyZWVuTGF5b3V0
Q29uc3RyYWludHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9GdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMubW0JKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRnVsbHNjcmVlbkxh
eW91dENvbnN0cmFpbnRzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03MywxOSArNzMsMTkgQEAgVEVT
VChGdWxsc2NyZWVuLCBMYXlvdXRDb25zdHJhaW50cykKICAgICAKICAgICBOU1VSTFJlcXVlc3Qg
KnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
XTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJnJlY2VpdmVkTG9hZGVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwocmVjZWl2ZWRMb2FkZWRNZXNzYWdlKTsKIAogICAgIE5TRXZlbnQgKmV2ZW50ID0g
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2Nh
dGlvbjpOU01ha2VQb2ludCg1LCA1KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93
TnVtYmVyOndpbmRvdy5nZXQoKS53aW5kb3dOdW1iZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAg
Y2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwogICAgIFt3ZWJWaWV3IG1vdXNlRG93bjpldmVudF07
CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkRnVsbHNjcmVlbkNoYW5n
ZU1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkRnVsbHNjcmVl
bkNoYW5nZU1lc3NhZ2UpOwogICAgIAogICAgIHJlY2VpdmVkRnVsbHNjcmVlbkNoYW5nZU1lc3Nh
Z2UgPSBmYWxzZTsKICAgICAKICAgICBOU0V2ZW50ICpleGl0RlNFdmVudCA9IFtOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246TlNNYWtl
UG9pbnQoNSwgNSkgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjp3aW5k
b3cuZ2V0KCkud2luZG93TnVtYmVyIGNvbnRleHQ6MCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6
MCBwcmVzc3VyZTowXTsKICAgICBbd2ViVmlldyBtb3VzZURvd246ZXhpdEZTRXZlbnRdOwogICAg
IAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRGdWxsc2NyZWVuQ2hhbmdl
TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRGdWxsc2NyZWVu
Q2hhbmdlTWVzc2FnZSk7CiAKICAgICBOU0FycmF5KiBmaW5hbENvbnN0cmFpbnRzID0gW1t3aW5k
b3cgY29udGVudFZpZXddIGNvbnN0cmFpbnRzXTsKICAgICBBU1NFUlRfVFJVRShbb3JpZ2luYWxD
b25zdHJhaW50cyBpc0VxdWFsOmZpbmFsQ29uc3RyYWludHNdKTsKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Z1bGxz
Y3JlZW5Ub3BDb250ZW50SW5zZXQubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbQko
d29ya2luZyBjb3B5KQpAQCAtNjksMTggKzY5LDE4IEBAIFRFU1QoRnVsbHNjcmVlbiwgVG9wQ29u
dGVudEluc2V0KQogCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiRnVs
bHNjcmVlblRvcENvbnRlbnRJbnNldCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRMb2FkZWRN
ZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZExvYWRlZE1lc3Nh
Z2UpOwogCiAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlm
aWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6d2luZG93LmdldCgpLndpbmRvd051
bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CiAg
ICAgW3dlYlZpZXcgbW91c2VEb3duOmV2ZW50XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVjZWl2ZWRGdWxsc2NyZWVuQ2hhbmdlTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwocmVjZWl2ZWRGdWxsc2NyZWVuQ2hhbmdlTWVzc2FnZSk7CiAgICAgQVNTRVJU
X0VRKHdpbmRvdy5nZXQoKS5zY3JlZW4uZnJhbWUuc2l6ZS53aWR0aCwgd2ViVmlldy5nZXQoKS5m
cmFtZS5zaXplLndpZHRoKTsKICAgICBBU1NFUlRfRVEod2luZG93LmdldCgpLnNjcmVlbi5mcmFt
ZS5zaXplLmhlaWdodCArIHdlYlZpZXcuZ2V0KCkuX3RvcENvbnRlbnRJbnNldCwgd2ViVmlldy5n
ZXQoKS5mcmFtZS5zaXplLmhlaWdodCk7CiAKICAgICByZWNlaXZlZEZ1bGxzY3JlZW5DaGFuZ2VN
ZXNzYWdlID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbW91c2VEb3duOmV2ZW50XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkRnVsbHNjcmVlbkNoYW5nZU1lc3NhZ2UpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkRnVsbHNjcmVlbkNoYW5nZU1lc3Nh
Z2UpOwogICAgIEFTU0VSVF9FUSgxMCwgd2ViVmlldy5nZXQoKS5fdG9wQ29udGVudEluc2V0KTsK
IH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZW9sb2Nh
dGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0dlb2xvY2F0aW9uLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0dlb2xvY2F0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjAsNyArMTYwLDcgQEAgVEVTVChXZWJLaXQsIEdlb2xvY2F0aW9uRGVuaWVkQnlMb2NhdGlvbgog
ICAgIGhhc1JlY2VpdmVkQWxlcnQgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VO
YW1lZDpAIkdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uUmVzdWx0Il07CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmhhc1JlY2VpdmVkQWxlcnQpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGhhc1JlY2VpdmVkQWxlcnQpOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKHVp
RGVsZWdhdGUuZ2V0KCkuYWxlcnRNZXNzYWdlLCAiRVJST1I6MSIpOwogICAgIEVYUEVDVF9UUlVF
KGNvcmVMb2NhdGlvblByb3ZpZGVyLmdldCgpLmF1dGhvcml6YXRpb25XYXNSZXF1ZXN0ZWQpOwpA
QCAtMTg0LDcgKzE4NCw3IEBAIFRFU1QoV2ViS2l0LCBHZW9sb2NhdGlvbkRlbmllZEJ5QVBJKQog
ICAgIGhhc1JlY2VpdmVkQWxlcnQgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VO
YW1lZDpAIkdlb2xvY2F0aW9uR2V0Q3VycmVudFBvc2l0aW9uUmVzdWx0Il07CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmhhc1JlY2VpdmVkQWxlcnQpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGhhc1JlY2VpdmVkQWxlcnQpOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKHVp
RGVsZWdhdGUuZ2V0KCkuYWxlcnRNZXNzYWdlLCAiRVJST1I6MSIpOwogICAgIEVYUEVDVF9UUlVF
KGNvcmVMb2NhdGlvblByb3ZpZGVyLmdldCgpLmF1dGhvcml6YXRpb25XYXNSZXF1ZXN0ZWQpOwpA
QCAtMjA4LDcgKzIwOCw3IEBAIFRFU1QoV2ViS2l0LCBHZW9sb2NhdGlvbkFsbG93ZWRCeUFQSSkK
ICAgICBoYXNSZWNlaXZlZEFsZXJ0ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdl
TmFtZWQ6QCJHZW9sb2NhdGlvbkdldEN1cnJlbnRQb3NpdGlvblJlc3VsdCJdOwogCi0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZoYXNSZWNlaXZlZEFsZXJ0KTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChoYXNSZWNlaXZlZEFsZXJ0KTsKIAogICAgIEVYUEVDVF9XS19TVFJFUSh1
aURlbGVnYXRlLmdldCgpLmFsZXJ0TWVzc2FnZSwgIlNVQ0NFU1MiKTsKICAgICBFWFBFQ1RfVFJV
RShjb3JlTG9jYXRpb25Qcm92aWRlci5nZXQoKS5hdXRob3JpemF0aW9uV2FzUmVxdWVzdGVkKTsK
QEAgLTIzMyw3ICsyMzMsNyBAQCBURVNUKFdlYktpdCwgR2VvbG9jYXRpb25FcnJvcikKICAgICBo
YXNSZWNlaXZlZEFsZXJ0ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6
QCJHZW9sb2NhdGlvbkdldEN1cnJlbnRQb3NpdGlvblJlc3VsdCJdOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZoYXNSZWNlaXZlZEFsZXJ0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChoYXNSZWNlaXZlZEFsZXJ0KTsKIAogICAgIEVYUEVDVF9XS19TVFJFUSh1aURlbGVn
YXRlLmdldCgpLmFsZXJ0TWVzc2FnZSwgIkVSUk9SOjIiKTsKICAgICBFWFBFQ1RfVFJVRShjb3Jl
TG9jYXRpb25Qcm92aWRlci5nZXQoKS5hdXRob3JpemF0aW9uV2FzUmVxdWVzdGVkKTsKQEAgLTI1
OCw3ICsyNTgsNyBAQCBURVNUKFdlYktpdCwgRHVwbGljYXRlR2VvbG9jYXRpb25BdXRob3JpCiAg
ICAgaGFzUmVjZWl2ZWRBbGVydCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5h
bWVkOkAiR2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25SZXN1bHQiXTsKIAotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmaGFzUmVjZWl2ZWRBbGVydCk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoaGFzUmVjZWl2ZWRBbGVydCk7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEodWlE
ZWxlZ2F0ZS5nZXQoKS5hbGVydE1lc3NhZ2UsICJTVUNDRVNTIik7CiAgICAgRVhQRUNUX1RSVUUo
Y29yZUxvY2F0aW9uUHJvdmlkZXIuZ2V0KCkuYXV0aG9yaXphdGlvbldhc1JlcXVlc3RlZCk7Cklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dldERpc3BsYXlNZWRp
YS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0dldERpc3BsYXlNZWRpYS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEubW0JKHdvcmtpbmcgY29weSkK
QEAgLTEzOCw3ICsxMzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIE5TU3RyaW5nICpzY3JpcHQgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAInByb21wdEZvckNhcHR1cmUoJUApIiwgY29uc3Ry
YWludHNdOwogICAgICAgICBbbV93ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
c2NyaXB0XTsKIAotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2Ny
aXB0TWVzc2FnZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2Ny
aXB0TWVzc2FnZSk7CiAgICAgICAgIGlmIChzaG91bGRTdWNjZWVkKSB7CiAgICAgICAgICAgICBF
WFBFQ1RfU1RSRVEoWyhOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSBVVEY4U3Ry
aW5nXSwgImFsbG93ZWQiKTsKICAgICAgICAgICAgIEVYUEVDVF9UUlVFKGhhdmVTdHJlYW0odHJ1
ZSkpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZXRSZXNv
dXJjZURhdGEubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9HZXRSZXNvdXJjZURhdGEubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR2V0UmVzb3VyY2VEYXRhLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIFRFU1QoV2ViS2l0LCBHZXRQREZSZXNvdXJjZURhdGEp
CiAgICAgICAgIGlzRG9uZSA9IHRydWU7CiAgICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsK
IH0KIAogVEVTVChXZWJLaXQsIEdldFBERlJlc291cmNlRGF0YUluVW5wYXJlbnRlZFdlYlZpZXcp
CkBAIC03MCw3ICs3MCw3IEBAIFRFU1QoV2ViS2l0LCBHZXRQREZSZXNvdXJjZURhdGFJblVucGFy
ZW4KICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUp
OwogfQogCiAjZW5kaWYKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvSURCRGVsZXRlUmVjb3ZlcnkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9JREJEZWxldGVSZWNvdmVyeS5tbQkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JREJEZWxldGVSZWNv
dmVyeS5tbQkod29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNyBAQCBURVNUKEluZGV4ZWREQiwg
RGVsZXRlUmVjb3ZlcnkpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
SURCRGVsZXRlUmVjb3ZlcnkiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJU
ZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNz
YWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2Up
OwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAiRGVsZXRlZCBkYXRhYmFzZSIsIFtsYXN0U2NyaXB0
TWVzc2FnZSBib2R5XSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0lEQkluZGV4VXBncmFkZVRvVjIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JREJJbmRleFVwZ3JhZGVUb1YyLm1tCShyZXZpc2lv
biAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lEQklu
ZGV4VXBncmFkZVRvVjIubW0JKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDcgQEAgVEVTVChJ
bmRleGVkREIsIEluZGV4VXBncmFkZVRvVjIpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAiSURCSW5kZXhVcGdyYWRlVG9WMiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVk
U2NyaXB0TWVzc2FnZSk7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJPYmplY3QgZXhwZWN0ZWQg
dG8gYmUgYSBibG9iOiBbb2JqZWN0IEJsb2JdIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsK
IH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSWNvbkxvYWRp
bmdEZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0ljb25Mb2FkaW5nRGVsZWdhdGUubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSWNvbkxvYWRpbmdEZWxlZ2F0ZS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTczLDggKzE3Myw4IEBAIFRFU1QoSWNvbkxvYWRpbmcsIERl
ZmF1bHRGYXZpY29uKQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0aW5nOi8vL21haW4iXV07
CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmVXaXRoSWNvbnMpOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmaWNvbkRlbGVnYXRlLmdldCgpLT5yZWNlaXZlZEZhdmljb25EYXRhQ2FsbGJhY2spOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVXaXRoSWNvbnMpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGljb25EZWxlZ2F0ZS5nZXQoKS0+cmVjZWl2ZWRGYXZpY29uRGF0YUNhbGxi
YWNrKTsKIAogICAgIGF1dG8qIGZhdmljb25QYXJhbWV0ZXJzID0gaWNvbkRlbGVnYXRlLmdldCgp
LT5mYXZpY29uLmdldCgpOwogICAgIEVYUEVDVF9XS19TVFJFUSgidGVzdGluZzovLy9mYXZpY29u
LmljbyIsIGZhdmljb25QYXJhbWV0ZXJzLnVybC5hYnNvbHV0ZVN0cmluZyk7CkBAIC0yMTYsNyAr
MjE2LDcgQEAgVEVTVChJY29uTG9hZGluZywgQWxyZWFkeUNhY2hlZEljb24pCiAgICAgTlNVUkxS
ZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInRlc3Rpbmc6Ly8vbWFpbiJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaWNvbkRlbGVnYXRl
LmdldCgpLT5yZWNlaXZlZEZhdmljb25EYXRhQ2FsbGJhY2spOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGljb25EZWxlZ2F0ZS5nZXQoKS0+cmVjZWl2ZWRGYXZpY29uRGF0YUNhbGxiYWNr
KTsKIAogICAgIEVYUEVDVF9UUlVFKFtpY29uRGF0YUZyb21EaXNrLmdldCgpIGlzRXF1YWw6aWNv
bkRlbGVnYXRlLmdldCgpLT5yZWNlaXZlZEZhdmljb25EYXRhLmdldCgpXSk7CiAKQEAgLTIyNyw3
ICsyMjcsNyBAQCBURVNUKEljb25Mb2FkaW5nLCBBbHJlYWR5Q2FjaGVkSWNvbikKICAgICByZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InRlc3Rpbmc6Ly8vbWFpbjIiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmljb25EZWxlZ2F0ZS5nZXQoKS0+cmVj
ZWl2ZWRGYXZpY29uRGF0YUNhbGxiYWNrKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChp
Y29uRGVsZWdhdGUuZ2V0KCktPnJlY2VpdmVkRmF2aWNvbkRhdGFDYWxsYmFjayk7CiAKICAgICBF
WFBFQ1RfVFJVRShbaWNvbkRhdGFGcm9tRGlzay5nZXQoKSBpc0VxdWFsOmljb25EZWxlZ2F0ZS5n
ZXQoKS0+cmVjZWl2ZWRGYXZpY29uRGF0YS5nZXQoKV0pOwogfQpAQCAtMjQ5LDE1ICsyNDksMTUg
QEAgVEVTVChJY29uTG9hZGluZywgSWNvbkxvYWRDYW5jZWxsZWRDYWxsYgogICAgIE5TVVJMUmVx
dWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJ0ZXN0aW5nOi8vL21haW4iXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmhhbmRsZXIuZ2V0KCkt
PnJlY2VpdmVkRmF2aWNvblRhc2spOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGhhbmRs
ZXIuZ2V0KCktPnJlY2VpdmVkRmF2aWNvblRhc2spOwogCiAgICAgLy8gT3VyIHNjaGVtZSBoYW5k
bGVyIG5ldmVyIHJlcGxpZXMgdG8gdGhlIGZhdmljb24gdGFzaywgc28gb3VyIGljb24gZGVsZWdh
dGUgbG9hZCBjYWxsYmFjayBpcyBzdGlsbCBwZW5kaW5nLgogICAgIC8vIFN0b3AgdGhlIGRvY3Vt
ZW50bG9hZGVyJ3MgbG9hZGluZyBhbmQgdmVyaWZ5IHRoZSBpY29uIGRlbGVnYXRlIGNhbGxiYWNr
IGlzIGNhbGxlZC4KICAgICBbd2ViVmlldyBzdG9wTG9hZGluZ107CiAKICAgICAvLyBXYWl0IHVu
dGlsIHRoZSBkYXRhIGNhbGxiYWNrIGlzIGNhbGxlZCwgKmFuZCogdGhlIHRhc2sgaXMgc3RvcHBl
ZAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaGFuZGxlci5nZXQoKS0+ZmF2aWNvblRh
c2tTdG9wcGVkKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmljb25EZWxlZ2F0ZS5n
ZXQoKS0+cmVjZWl2ZWRGYXZpY29uRGF0YUNhbGxiYWNrKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChoYW5kbGVyLmdldCgpLT5mYXZpY29uVGFza1N0b3BwZWQpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGljb25EZWxlZ2F0ZS5nZXQoKS0+cmVjZWl2ZWRGYXZpY29uRGF0YUNh
bGxiYWNrKTsKIAogICAgIEVYUEVDVF9FUShpY29uRGVsZWdhdGUuZ2V0KCktPnJlY2VpdmVkRmF2
aWNvbkRhdGEuZ2V0KCkubGVuZ3RoLCAodW5zaWduZWQgbG9uZykwKTsKIH0KQEAgLTI3OSw3ICsy
NzksNyBAQCBURVNUKEljb25Mb2FkaW5nLCBJY29uTG9hZENhbmNlbGxlZENhbGxiCiAgICAgTlNV
UkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAInRlc3Rpbmc6Ly8vbWFpbiJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaWNvbkRlbGVn
YXRlLmdldCgpLT5kaWRTYXZlQ2FsbGJhY2spOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGljb25EZWxlZ2F0ZS5nZXQoKS0+ZGlkU2F2ZUNhbGxiYWNrKTsKIAogICAgIC8vIE91ciBzY2hl
bWUgaGFuZGxlciBuZXZlciByZXBsaWVzIHRvIHRoZSBmYXZpY29uIHRhc2ssIHNvIG91ciBpY29u
IGRlbGVnYXRlIGxvYWQgY2FsbGJhY2sgaXMgc3RpbGwgcGVuZGluZy4KICAgICAvLyBTdG9wIHRo
ZSBkb2N1bWVudGxvYWRlcidzIGxvYWRpbmcgYW5kIHZlcmlmeSB0aGUgaWNvbiBkZWxlZ2F0ZSBj
YWxsYmFjayBpcyBjYWxsZWQuCkBAIC0yOTUsNSArMjk1LDUgQEAgVEVTVChJY29uTG9hZGluZywg
SWNvbkxvYWRDYW5jZWxsZWRDYWxsYgogICAgICAgICAqaWNvbkNhbGxiYWNrQ2FsbGVkID0gdHJ1
ZTsKICAgICB9KTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaWNvbkNhbGxiYWNr
Q2FsbGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpY29uQ2FsbGJhY2tDYWxsZWQp
OwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVk
REJEYXRhYmFzZVByb2Nlc3NLaWxsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC5tbQkocmV2
aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9J
bmRleGVkREJEYXRhYmFzZVByb2Nlc3NLaWxsLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4
OSw3IEBAIFRFU1QoSW5kZXhlZERCLCBEYXRhYmFzZVByb2Nlc3NLaWxsKQogICAgICAgICAgICAg
YnJlYWs7CiAKICAgICAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7Ci0gICAgICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICAg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICAg
ICAgaWYgKCFraWxsZWREQlByb2Nlc3MgJiYgb3BlblJlcXVlc3RVcGdyYWRlTmVlZGVkKSB7CiAg
ICAgICAgICAgICBraWxsZWREQlByb2Nlc3MgPSB0cnVlOwogICAgICAgICAgICAgW2NvbmZpZ3Vy
YXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzXTsKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCRmlsZU5hbWUu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9J
bmRleGVkREJGaWxlTmFtZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJGaWxlTmFtZS5tbQkod29ya2luZyBjb3B5
KQpAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KCkKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpyZXF1ZXN0XTsKICAgICAKICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBm
YWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2Fn
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsK
ICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHN0cmluZyA9IChOU1N0cmluZyAqKVtsYXN0U2NyaXB0
TWVzc2FnZSBib2R5XTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJTdWNjZXNzIiwgc3RyaW5nLmdl
dCgpKTsKIApAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KCkKICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9
IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNz
YWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2Up
OwogICAgIFJldGFpblB0cjxOU1N0cmluZz4gc3RyaW5nMiA9IChOU1N0cmluZyAqKVtsYXN0U2Ny
aXB0TWVzc2FnZSBib2R5XTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJTdWNjZXNzIiwgc3RyaW5n
Mi5nZXQoKSk7CiAKQEAgLTE3OSwxMyArMTc5LDEzIEBAIFRFU1QoSW5kZXhlZERCLCBJbmRleGVk
REJGaWxlTmFtZUFQSSkKICAgICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKICAgICB9XTsK
ICAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlYWR5VG9Db250aW51ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVhZHlU
b0NvbnRpbnVlKTsKIAogICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVd
IHJlbW92ZURhdGFPZlR5cGVzOltOU1NldCBzZXRXaXRoT2JqZWN0czpXS1dlYnNpdGVEYXRhVHlw
ZUluZGV4ZWREQkRhdGFiYXNlcywgbmlsXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBh
c3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRy
dWU7CiAgICAgfV07CiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKHJlYWR5VG9Db250aW51ZSk7CiAgICAgCiAgICAgYXV0byBkZWZhdWx0RmlsZU1hbmFn
ZXIgPSBbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl07CiAgICAgTlNVUkwgKmlkYlJvb3RV
UkwgPSBbW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSBfaW5kZXhlZERCRGF0
YWJhc2VEaXJlY3RvcnldOwpAQCAtMjExLDcgKzIxMSw3IEBAIFRFU1QoSW5kZXhlZERCLCBJbmRl
eGVkREJGaWxlSGFzaENvbGxpc2kKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsK
IAogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIFJldGFpblB0cjxOU1N0cmluZz4g
c3RyaW5nID0gKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldOwogICAgIEVYUEVD
VF9XS19TVFJFUShAIkVycm9yIiwgc3RyaW5nLmdldCgpKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCTXVsdGlQcm9jZXNzLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERC
TXVsdGlQcm9jZXNzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQk11bHRpUHJvY2Vzcy5tbQkod29ya2luZyBjb3B5
KQpAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgV0tTY3JpcHRNZXNzYWdlICpnZXROZXh0TWVzc2Fn
ZSgpCiB7CiAgICAgaWYgKHNjcmlwdE1lc3NhZ2VzLmlzRW1wdHkoKSkgewogICAgICAgICByZWNl
aXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIH0KIAogICAgIHJldHVybiBbW3Njcmlw
dE1lc3NhZ2VzLnRha2VGaXJzdCgpIHJldGFpbl0gYXV0b3JlbGVhc2VdOwpJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJQZXJzaXN0ZW5jZS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4
ZWREQlBlcnNpc3RlbmNlLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNlLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC02NCwxMSArNjQsMTEgQEAgVEVTVChJbmRleGVkREIsIEluZGV4ZWREQlBlcnNpc3Rl
bmNlKQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4ZWREQlBl
cnNpc3RlbmNlLTEiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsK
IAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAg
IHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFJldGFpblB0cjxOU1N0cmluZz4g
c3RyaW5nMSA9IChOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIHJlY2VpdmVk
U2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFJldGFpblB0cjxOU1N0cmluZz4gc3RyaW5nMiA9
IChOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XTsKIApAQCAtODQsNyArODQsNyBA
QCBURVNUKEluZGV4ZWREQiwgSW5kZXhlZERCUGVyc2lzdGVuY2UpCiAgICAgcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIkluZGV4ZWREQlBlcnNpc3RlbmNlLTIiIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAg
IFJldGFpblB0cjxOU1N0cmluZz4gc3RyaW5nMyA9IChOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVz
c2FnZSBib2R5XTsKIApAQCAtMTA3LDExICsxMDcsMTEgQEAgVEVTVChJbmRleGVkREIsIEluZGV4
ZWREQlBlcnNpc3RlbmNlUHJpdgogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAIkluZGV4ZWREQlBlcnNpc3RlbmNlLTEiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRT
Y3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlw
dE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFJldGFp
blB0cjxOU1N0cmluZz4gc3RyaW5nMSA9IChOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBi
b2R5XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNz
YWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2Up
OwogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFJldGFpblB0cjxOU1N0
cmluZz4gc3RyaW5nMiA9IChOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XTsKIApA
QCAtMTI1LDcgKzEyNSw3IEBAIFRFU1QoSW5kZXhlZERCLCBJbmRleGVkREJQZXJzaXN0ZW5jZVBy
aXYKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiSW5kZXhlZERCUGVyc2lzdGVuY2UtMiIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlID0gZmFsc2U7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBzdHJpbmczID0gKE5TU3Ry
aW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldOwogCkBAIC0xNDUsMTQgKzE0NSwxNCBAQCBU
RVNUKEluZGV4ZWREQiwgSW5kZXhlZERCRGF0YVJlbW92YWwpCiAgICAgW1tXS1dlYnNpdGVEYXRh
U3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6d2Vic2l0ZURhdGFUeXBl
cy5nZXQoKSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5k
bGVyOl4oKSB7CiAgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7CiAgICAgfV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKHJlYWR5VG9Db250aW51ZSk7CiAKICAgICByZWFkeVRvQ29udGludWUg
PSBmYWxzZTsKICAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSBmZXRj
aERhdGFSZWNvcmRzT2ZUeXBlczp3ZWJzaXRlRGF0YVR5cGVzLmdldCgpIGNvbXBsZXRpb25IYW5k
bGVyOl4oTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+ICpkYXRhUmVjb3JkcykgewogICAg
ICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOwogICAgICAgICBBU1NFUlRfRVEoMHUsIGRhdGFS
ZWNvcmRzLmNvdW50KTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
YWR5VG9Db250aW51ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVhZHlUb0NvbnRp
bnVlKTsKIAogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIGF1dG8gaGFu
ZGxlciA9IGFkb3B0TlMoW1tJbmRleGVkREJNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwpA
QCAtMTYxLDcgKzE2MSw3IEBAIFRFU1QoSW5kZXhlZERCLCBJbmRleGVkREJEYXRhUmVtb3ZhbCkK
ICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKV0pOwogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkluZGV4
ZWREQlBlcnNpc3RlbmNlLTEiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJU
ZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2Fn
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsK
IAogICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOwogICAgIFtbV0tXZWJzaXRlRGF0YVN0b3Jl
IGRlZmF1bHREYXRhU3RvcmVdIGZldGNoRGF0YVJlY29yZHNPZlR5cGVzOndlYnNpdGVEYXRhVHlw
ZXMuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQg
Kj4gKmRhdGFSZWNvcmRzKSB7CkBAIC0xNzAsMTIgKzE3MCwxMiBAQCBURVNUKEluZGV4ZWREQiwg
SW5kZXhlZERCRGF0YVJlbW92YWwpCiAgICAgICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVl
OwogICAgICAgICB9XTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
YWR5VG9Db250aW51ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVhZHlUb0NvbnRp
bnVlKTsKIAogICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOwogICAgIFtbV0tXZWJzaXRlRGF0
YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIGZldGNoRGF0YVJlY29yZHNPZlR5cGVzOndlYnNpdGVE
YXRhVHlwZXMuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5PFdLV2Vic2l0ZURhdGFS
ZWNvcmQgKj4gKmRhdGFSZWNvcmRzKSB7CiAgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7
CiAgICAgICAgIEFTU0VSVF9FUSgwdSwgZGF0YVJlY29yZHMuY291bnQpOwogICAgIH1dOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChyZWFkeVRvQ29udGludWUpOwogfQpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2Fy
ZENvbXBhdGliaWxpdHkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdHJ1Y3R1cmVkQ2xvbmVCYWNrd2FyZENvbXBhdGliaWxp
dHkubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvSW5kZXhlZERCU3RydWN0dXJlZENsb25lQmFja3dhcmRDb21wYXRpYmlsaXR5Lm1t
CSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBXS1NjcmlwdE1lc3NhZ2Ug
KmdldE5leHRNZXNzYWdlKCkKIHsKICAgICBpZiAoc2NyaXB0TWVzc2FnZXMuaXNFbXB0eSgpKSB7
CiAgICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwotICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgfQogCiAgICAg
cmV0dXJuIFtbc2NyaXB0TWVzc2FnZXMudGFrZUZpcnN0KCkgcmV0YWluXSBhdXRvcmVsZWFzZV07
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN1
c3BlbmRJbW1pbmVudGx5Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCU3VzcGVuZEltbWluZW50bHkubW0JKHJldmlzaW9uIDI0
NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERC
U3VzcGVuZEltbWluZW50bHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgLSAo
dm9pZCl1c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbgogc3RhdGljIHZvaWQgcnVuVGVz
dEFuZENoZWNrUmVzdWx0KE5TU3RyaW5nKiBleHBlY3RlZFJlc3VsdCkKIHsKICAgICByZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2
ZWRTY3JpcHRNZXNzYWdlKTsKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHN0cmluZyA9IChOU1N0
cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoZXhw
ZWN0ZWRSZXN1bHQsIHN0cmluZy5nZXQoKSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlRlbXBGaWxlU2l6ZS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlRlbXBGaWxl
U2l6ZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9JbmRleGVkREJUZW1wRmlsZVNpemUubW0JKHdvcmtpbmcgY29weSkKQEAgLTc4
LDcgKzc4LDcgQEAgVEVTVChJbmRleGVkREIsIEluZGV4ZWREQlRlbXBGaWxlU2l6ZSkKICAgICAg
ICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKICAgICB9XTsKICAgICByZWFkeVRvQ29udGludWUg
PSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIC8v
IERvIHNvbWUgSW5kZXhlZERCIG9wZXJhdGlvbnMgdG8gZ2VuZXJhdGUgV0FMIGZpbGUuCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKQEAgLTg2LDExICs4NiwxMSBAQCBURVNUKEluZGV4ZWREQiwgSW5kZXhlZERCVGVtcEZp
bGVTaXplKQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCiAgICAgcmVjZWl2
ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2Vp
dmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBzdHJpbmcxID0gKE5T
U3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldOwogCiAgICAgcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNj
cmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0
TWVzc2FnZSk7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBzdHJpbmcyID0gKE5TU3RyaW5nICop
W2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldOwogCiAgICAgLy8gVGVybWluYXRlIG5ldHdvcmsgcHJv
Y2VzcyB0byBrZWVwIFdBTCBvbiBkaXNrLgpAQCAtMTA3LDcgKzEwNyw3IEBAIFRFU1QoSW5kZXhl
ZERCLCBJbmRleGVkREJUZW1wRmlsZVNpemUpCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVx
dWVzdF07CiAKICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICBSZXRhaW5QdHI8TlNT
dHJpbmc+IHN0cmluZzMgPSAoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV07CiAK
ICAgICBmaWxlQXR0cmlidXRlcyA9IFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gYXR0
cmlidXRlc09mSXRlbUF0UGF0aDp3YWxGaWxlUGF0aC5nZXQoKS5wYXRoIGVycm9yOm5pbF07Cklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlVzZXJE
ZWxldGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9JbmRleGVkREJVc2VyRGVsZXRlLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlVzZXJEZWxldGUubW0JKHdv
cmtpbmcgY29weSkKQEAgLTY3LDE0ICs2NywxNCBAQCBURVNUKEluZGV4ZWREQiwgSW5kZXhlZERC
VXNlckRlbGV0ZSkKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAogICAgIHJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIFJldGFpblB0cjxOU1N0cmluZz4gc3RyaW5nID0g
KE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldOwogCiAgICAgW2NvbmZpZ3VyYXRp
b24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbTlNTZXQgc2V0V2l0
aE9iamVjdHM6V0tXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJEYXRhYmFzZXMsIG5pbF0gbW9kaWZp
ZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgewogICAg
ICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOwogICAgIH1dOwogICAgIHJlYWR5VG9Db250aW51
ZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVl
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRvQ29udGludWUpOwogCiAgICAg
RVhQRUNUX1dLX1NUUkVRKEAiQ29udGludWUiLCBzdHJpbmcuZ2V0KCkpOwogfQpAQCAtOTMsNSAr
OTMsNSBAQCBURVNUKEluZGV4ZWREQiwgSW5kZXhlZERCVXNlckRlbGV0ZUJlZm9yCiAgICAgICAg
IHJlYWR5VG9Db250aW51ZSA9IHRydWU7CiAgICAgfV07CiAgICAgcmVhZHlUb0NvbnRpbnVlID0g
ZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlYWR5VG9Db250aW51ZSk7CiB9CkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0pJVEVuYWJsZWQubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9KSVRFbmFibGVk
Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0pJVEVuYWJsZWQubW0JKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAgVEVT
VChXZWJLaXQsIEpJVEVuYWJsZWQpCiAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAg
ICAgICAgICB9XTsKICAgICAgICAgfV07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIH07
CiAKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW19XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiBuZXddKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvSmF2YVNjcmlwdER1cmluZ05hdmlnYXRpb24ubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9KYXZhU2NyaXB0RHVyaW5n
TmF2aWdhdGlvbi5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9KYXZhU2NyaXB0RHVyaW5nTmF2aWdhdGlvbi5tbQkod29ya2luZyBj
b3B5KQpAQCAtODcsOCArODcsOCBAQCBURVNUKFdlYktpdCwgSmF2YVNjcmlwdER1cmluZ05hdmln
YXRpb24pCiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOmZpcnN0
VVJMLmdldCgpXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZuYXZpZ2F0aW9uQ29t
cGxldGUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKG5hdmlnYXRpb25Db21wbGV0ZSk7
CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OnNlY29uZFVSTC5nZXQoKV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2
ZWRCb3RoQWxlcnRzKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZEJvdGhB
bGVydHMpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9M
b2FkQWx0ZXJuYXRlSFRNTFN0cmluZy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvYWRBbHRlcm5hdGVIVE1MU3RyaW5nLm1tCShyZXZpc2lv
biAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvYWRB
bHRlcm5hdGVIVE1MU3RyaW5nLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02OCwxNSArNjgsMTUgQEAg
VEVTVChXS1dlYlZpZXcsIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nRgogICAgIFt3ZWJWaWV3IHNl
dE5hdmlnYXRpb25EZWxlZ2F0ZTpjb250cm9sbGVyLmdldCgpXTsKIAogICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6dW5sb2FkYWJsZVVSTF1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKICAgICBpc0RvbmUgPSBm
YWxzZTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6bG9hZGFibGVVUkxdXV07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlz
RG9uZSk7CiAgICAgaXNEb25lID0gZmFsc2U7CiAKICAgICBbd2ViVmlldyBnb0JhY2tdOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChpc0RvbmUpOwogICAgIGlzRG9uZSA9IGZhbHNlOwogCiAgICAgV0tCYWNrRm9yd2Fy
ZExpc3QgKmxpc3QgPSBbd2ViVmlldyBiYWNrRm9yd2FyZExpc3RdOwpAQCAtOTAsNyArOTAsNyBA
QCBURVNUKFdLV2ViVmlldywgTG9hZEFsdGVybmF0ZUhUTUxTdHJpbmdGCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFt3ZWJWaWV3IGdvRm9yd2FyZF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAg
aXNEb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEoKE5TVUludGVnZXIpMSwgbGlzdC5iYWNr
TGlzdC5jb3VudCk7CkBAIC0xMTMsNyArMTEzLDcgQEAgVEVTVChXS1dlYlZpZXcsIExvYWRBbHRl
cm5hdGVIVE1MU3RyaW5nRgogICAgICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOnRhcmdldFVSTF1dOwogCiAgICAgICAgIGlzRG9uZSA9IGZhbHNl
OwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAgICAgIC8vIEluIHN1Y2Nlc3MsIHdl
IHNob3VsZCBvbmx5IHN0YXJ0IDIgcHJvdmlzaW9uYWwgbG9hZHM6IDEgZm9yIHRoZSBzZWNvbmQg
bG9hZFJlcXVlc3QsIGFuZCAxIGZvciB0aGUgX2xvYWRBbHRlcm5hdGVIVE1MU3RyaW5nLgogICAg
ICAgICAvLyBUaGUgc2Vjb25kIGxvYWRSZXF1ZXN0IGNhbmNlbHMgdGhlIGZpcnN0IG9uZSBiZWZv
cmUgaXRzIHByb3Zpc2lvbmFsIGxvYWQgc3RhcnRzLgogICAgICAgICBFWFBFQ1RfRVEoMiwgcHJv
dmlzaW9uYWxMb2FkQ291bnQpOwpAQCAtMTM0LDE5ICsxMzQsMTkgQEAgVEVTVChXS1dlYlZpZXcs
IExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nRgogCiAgICAgTlNVUkwgKmludmFsaWRVUkwgPSBbTlNV
UkwgVVJMV2l0aFN0cmluZzpAImh0dHBzOi8vd3d3LmV4YW1wbGUuY29tJTNDJTNFLyJdOwogICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6aW52YWxp
ZFVSTF1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAgIGlzRG9uZSA9IGZhbHNlOwogCiAgICAg
W3dlYlZpZXcgcmVsb2FkXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKICAgICBpc0RvbmUgPSBmYWxz
ZTsKIAogICAgIFt3ZWJWaWV3IHJlbG9hZEZyb21PcmlnaW5dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUp
OwogICAgIGlzRG9uZSA9IGZhbHNlOwogCiAgICAgW3dlYlZpZXcgX3JlbG9hZEV4cGlyZWRPbmx5
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoaXNEb25lKTsKICAgICBpc0RvbmUgPSBmYWxzZTsKIAogICAgIFdLQmFj
a0ZvcndhcmRMaXN0ICpsaXN0ID0gW3dlYlZpZXcgYmFja0ZvcndhcmRMaXN0XTsKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9hZEZpbGVUaGVuUmVsb2FkLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9h
ZEZpbGVUaGVuUmVsb2FkLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvYWRGaWxlVGhlblJlbG9hZC5tbQkod29ya2luZyBjb3B5
KQpAQCAtNjUsNSArNjUsNSBAQCBURVNUKFdLV2ViVmlldywgTG9hZEZpbGVUaGVuUmVsb2FkKQog
ICAgIFt3ZWJWaWV3IGxvYWRGaWxlVVJMOmZpbGUgYWxsb3dpbmdSZWFkQWNjZXNzVG9VUkw6Zmls
ZS5VUkxCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOwogICAgIFt3ZWJWaWV3IHJlbG9hZF07
CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Mb2FkSW52YWxpZFVSTFJlcXVlc3QubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2FkSW52YWxpZFVSTFJlcXVlc3QubW0J
KHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3
IEBAIFRFU1QoV2ViS2l0LCBMb2FkSW52YWxpZFVSTFJlcXVlc3QpCiAKICAgICAgICAgZGlkRmlu
aXNoVGVzdCA9IGZhbHNlOwogICAgICAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkID0gZmFsc2U7
Ci0gICAgICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoVGVzdCk7CisgICAgICAgIHJ1blVudGlsKGRp
ZEZpbmlzaFRlc3QpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKGRpZEZhaWxQcm92aXNpb25hbExv
YWQpOwogICAgIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
TG9jYWxTdG9yYWdlQ2xlYXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VDbGVhci5tbQkocmV2aXNpb24gMjQ1NTE2KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VDbGVh
ci5tbQkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBAQCBURVNUKFdLV2ViVmlldywgTG9j
YWxTdG9yYWdlQ2xlYXIpCiAgICAgICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAIkxvY2FsU3RvcmFnZUNsZWFyIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnJlcXVlc3RdOwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlU
b0NvbnRpbnVlKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVhZHlUb0NvbnRp
bnVlKTsKICAgICAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CiAKICAgICAgICAgd2ViVmll
dyA9IG5pbDsKQEAgLTg4LDcgKzg4LDcgQEAgVEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZUNs
ZWFyKQogICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKHJlYWR5VG9Db250aW51ZSk7CiB9CiAKIHN0YXRpYyBsb25nIGxvbmcgZmls
ZVNpemUoTlNVUkwqIHVybCkKQEAgLTEzNiw3ICsxMzYsNyBAQCBURVNUKFdLV2ViVmlldywgQ2xl
YXJBcHBDYWNoZSkKICAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSBy
ZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNd
IG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6Xigp
IHsKICAgICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwocmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIC8vIFN0YXJ0IHdpdGggYSBjbGVhbiBz
bGF0ZSBvZiBXZWJzaXRlIGNhY2hlcy4KICAgICBpZiAoYXV0byAqd2Vic2l0ZUNhY2hlRGlyZWN0
b3J5ID0gZGVmYXVsdFdlYnNpdGVDYWNoZURpcmVjdG9yeSgpKSB7CkBAIC0xODgsNyArMTg4LDcg
QEAgVEVTVChXS1dlYlZpZXcsIENsZWFyQXBwQ2FjaGUpCiAgICAgICAgIG9yaWdpbmFsV2Vic2l0
ZURhdGFSZWNvcmRDb3VudCA9IHdlYnNpdGVEYXRhUmVjb3Jkcy5jb3VudDsKICAgICAgICAgcmVh
ZHlUb0NvbnRpbnVlID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlYWR5VG9Db250aW51ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVhZHlU
b0NvbnRpbnVlKTsKIAogICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOwogICAgIFtbV0tXZWJz
aXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNp
dGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRp
c3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkKQEAgLTIwNCw1ICsyMDQsNSBAQCBURVNU
KFdLV2ViVmlldywgQ2xlYXJBcHBDYWNoZSkKICAgICAgICAgICAgIHJlYWR5VG9Db250aW51ZSA9
IHRydWU7CiAgICAgICAgIH1dOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVhZHlUb0NvbnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRv
Q29udGludWUpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIu
bW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01
MSwxNCArNTEsMTQgQEAgVEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZUZldGNoRGF0YVJlYwog
ICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5
cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5j
ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgewogICAgICAgICBy
ZWFkeVRvQ29udGludWUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFk
eVRvQ29udGludWUpOwogCiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CiAgICAgYXV0byBj
b25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbi5nZXQoKV0pOwogICAgIHdlYlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IFtbW0xvY2Fs
U3RvcmFnZVVJRGVsZWdhdGUgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKICAgICBbd2ViVmll
dyBsb2FkSFRNTFN0cmluZzpAIjxzY3JpcHQ+bG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Rlc3RLZXkn
LCAndGVzdFZhbHVlJyk7YWxlcnQobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Rlc3RLZXknKSk7PC9z
Y3JpcHQ+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL2xvY2FsaG9zdCJd
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIC8vIExvY2Fs
IHN0b3JhZ2UgZGF0YWJhc2UgdXBkYXRlIGludGVydmFsIGlzIDEgc2Vjb25kLgogICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDEpOwpAQCAtNzEsNSArNzEsNSBAQCBURVNUKFdLV2ViVmll
dywgTG9jYWxTdG9yYWdlRmV0Y2hEYXRhUmVjCiAgICAgICAgIEFTU0VSVF9FUSgxdSwgb3JpZ2lu
cy5jb3VudCk7CiAgICAgICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL2xvY2FsaG9zdCIsIFtvcmln
aW5zIG9iamVjdEF0SW5kZXg6MF0uVVRGOFN0cmluZyk7CiAgICAgfV07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKHJlYWR5VG9Db250aW51ZSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZU51bGxFbnRyaWVzLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlTnVsbEVu
dHJpZXMubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlTnVsbEVudHJpZXMubW0JKHdvcmtpbmcgY29weSkKQEAg
LTc0LDcgKzc0LDcgQEAgVEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZU51bGxFbnRyaWVzKQog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCiAgICAgcmVhZHlUb0NvbnRpbnVl
ID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlYWR5VG9Db250aW51ZSk7CiAKICAgICB3
ZWJWaWV3ID0gbmlsOwogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0JKHJl
dmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
TG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcg
QEAgVEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZUVtcHR5U3RyaW5nKQogICAgIFtbV0tXZWJz
aXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNp
dGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRp
c3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgewogICAgICAgICByZWFkeVRvQ29udGlu
dWUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlU
b0NvbnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRvQ29udGludWUp
OwogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CiAgICAgICAgIFJldGFpblB0cjxMb2NhbFN0b3Jh
Z2VNZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMoW1tMb2NhbFN0b3JhZ2VNZXNzYWdl
SGFuZGxlciBhbGxvY10gaW5pdF0pOwpAQCAtNzMsNyArNzMsNyBAQCBURVNUKFdLV2ViVmlldywg
TG9jYWxTdG9yYWdlRW1wdHlTdHJpbmcpCiAgICAgICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9
IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAImxvY2Fsc3RvcmFnZS1lbXB0eS1zdHJpbmctdmFsdWUiIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAg
ICAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAgICAgCi0gICAgICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICAgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICAgICAgcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAgICAgICAgIFJldGFpblB0cjxOU1N0cmluZz4g
c3RyaW5nMSA9IChOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XTsKICAgICAgICAg
RVhQRUNUX1dLX1NUUkVRKEAic2V0SXRlbSBFbXB0eVN0cmluZyIsIHN0cmluZzEuZ2V0KCkpOwpA
QCAtOTYsNyArOTYsNyBAQCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlRW1wdHlTdHJpbmcp
CiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAibG9jYWxzdG9yYWdlLWVt
cHR5LXN0cmluZy12YWx1ZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOwogICAgIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UpOwogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFJldGFpblB0cjxO
U1N0cmluZz4gc3RyaW5nMiA9IChOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XTsK
ICAgICBFWFBFQ1RfV0tfU1RSRVEoQCIiLCBzdHJpbmcyLmdldCgpKTsKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUXVpcmtUZXN0Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxT
dG9yYWdlUXVpcmtUZXN0Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVF1aXJrVGVzdC5tbQkod29ya2luZyBj
b3B5KQpAQCAtNjcsNyArNjcsNyBAQCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlUXVpcmtF
bmFibGVkCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKICAgICByZWFkeVRv
Q29udGludWUgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9D
b250aW51ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVhZHlUb0NvbnRpbnVlKTsK
IAogICAgIHdlYlZpZXcgPSBuaWw7CiAKQEAgLTkwLDcgKzkwLDcgQEAgVEVTVChXS1dlYlZpZXcs
IExvY2FsU3RvcmFnZVF1aXJrRGlzYWJsZQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOwogICAgIAogICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChyZWFkeVRvQ29udGludWUpOwogICAgIAogICAgIHdlYlZpZXcgPSBuaWw7CiAgICAgCkBA
IC0xMTMsNyArMTEzLDcgQEAgVEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZVF1aXJrRGlzYWJs
ZQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogICAgIAogICAgIHJlYWR5VG9D
b250aW51ZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0Nv
bnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRvQ29udGludWUpOwog
ICAgIAogICAgIHdlYlZpZXcgPSBuaWw7CiAgICAgCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL01lZGlhQnVmZmVyaW5nUG9saWN5Lm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTWVkaWFCdWZmZXJpbmdQb2xp
Y3kubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvTWVkaWFCdWZmZXJpbmdQb2xpY3kubW0JKHdvcmtpbmcgY29weSkKQEAgLTYxLDcg
KzYxLDcgQEAgVEVTVChXZWJLaXQsIE1lZGlhQnVmZmVyaW5nUG9saWN5KQogICAgIFt3ZWJWaWV3
IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJwbGF5aW5nIiBhY3Rpb246XigpIHsgaXNQ
bGF5aW5nID0gdHJ1ZTsgfV07CiAKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQ
YWdlTmFtZWQ6QCJ2aWRlby13aXRoLWF1ZGlvIl07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZpc1BsYXlpbmcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzUGxheWluZyk7
CiAKICAgICB3YWl0VW50aWxCdWZmZXJpbmdQb2xpY3lJc0VxdWFsVG8od2ViVmlldy5nZXQoKSwg
IkRlZmF1bHQiKTsKIApAQCAtOTIsNyArOTIsNyBAQCBURVNUKFdlYktpdCwgTWVkaWFCdWZmZXJp
bmdQb2xpY3kpCiAgICAgLy8gUG9saWN5IHNob3VsZCBnbyBiYWNrIHRvIGRlZmF1bHQgd2hlbiBw
bGF5YmFjayBzdGFydHMuCiAgICAgaXNQbGF5aW5nID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdvKCkiXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmlzUGxheWluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNQbGF5
aW5nKTsKIAogICAgIHdhaXRVbnRpbEJ1ZmZlcmluZ1BvbGljeUlzRXF1YWxUbyh3ZWJWaWV3Lmdl
dCgpLCAiRGVmYXVsdCIpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9NZXNzYWdlUG9ydFByb3ZpZGVycy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL01lc3NhZ2VQb3J0UHJvdmlkZXJzLm1tCShyZXZp
c2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL01l
c3NhZ2VQb3J0UHJvdmlkZXJzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIFRF
U1QoTWVzc2FnZVBvcnQsIFByb3ZpZGVycykKICAgICBbd2sxVmlldy5nZXQoKSBzZXRGcmFtZUxv
YWREZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW1t3azFWaWV3IG1haW5GcmFtZV0gbG9h
ZEhUTUxTdHJpbmc6QCI8c2NyaXB0Pm5ldyBNZXNzYWdlQ2hhbm5lbDs8L3NjcmlwdD4iIGJhc2VV
Ukw6bmlsXTsKIAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwo
ZGlkRmluaXNoTG9hZCk7CiAKICAgICAvLyBOb3cgdXNpbmcgYSBXS1dlYlZpZXcgdG8gbG9hZCBj
b250ZW50IHRoYXQgdXNlcyBtZXNzYWdlIHBvcnRzIHdpbGwgdXNlIHRoZSBXSzItc3R5bGUgbWVz
c2FnZSBwb3J0cy4KICAgICAvLyBUaGlzIHNob3VsZCBub3QgY29uZmxpY3Qgd2l0aCBXSzEtc3R5
bGUgbWVzc2FnZSBwb3J0cy4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvTW9kYWxBbGVydHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Nb2RhbEFsZXJ0cy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Nb2RhbEFsZXJ0cy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTM5LDUgKzEzOSw1IEBAIFRFU1QoV2ViS2l0LCBNb2RhbEFsZXJ0cykKICAg
ICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJtb2RhbC1hbGVydHMtaW4tbmV3
LWFib3V0LWJsYW5rLXdpbmRvdyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJl
cXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRp
b24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDcgQEAgVEVTVChXS05hdmlnYXRpb24s
IExvYWRSZXF1ZXN0KQogICAgIEFTU0VSVF9UUlVFKFtbY3VycmVudE5hdmlnYXRpb24gX3JlcXVl
c3RdIGlzRXF1YWw6cmVxdWVzdF0pOwogCiAgICAgaXNEb25lID0gZmFsc2U7Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGlzRG9uZSk7CiB9CiAKIEBpbnRlcmZhY2UgRGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbkRl
bGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPgpAQCAtMTQwLDcgKzE0MCw3
IEBAIFRFU1QoV0tOYXZpZ2F0aW9uLCBEaWRGYWlsUHJvdmlzaW9uYWxOYXYKICAgICBBU1NFUlRf
VFJVRShbW2N1cnJlbnROYXZpZ2F0aW9uIF9yZXF1ZXN0XSBpc0VxdWFsOnJlcXVlc3RdKTsKIAog
ICAgIGlzRG9uZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogfQogCiBAaW50ZXJmYWNl
IENyYXNoUmVhc29uRGVsZWdhdGUgOiBOU09iamVjdCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+CkBA
IC0xNjYsNyArMTY2LDcgQEAgVEVTVChXS05hdmlnYXRpb24sIENyYXNoUmVhc29uKQogICAgIFt3
ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGh0bWw+c3RhcnQgdGhlIHdlYiBwcm9jZXNzPC9odG1s
PiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBzOi8vd2Via2l0Lm9yZy8iXV07
CiAgICAgW3dlYlZpZXcgX2tpbGxXZWJDb250ZW50UHJvY2Vzc0FuZFJlc2V0U3RhdGVdOwogICAg
IAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChpc0RvbmUpOwogfQogCiBAaW50ZXJmYWNlIERlY2lkZVBvbGljeUZvclBh
Z2VDYWNoZU5hdmlnYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0
ZT4KQEAgLTIwMSwxNyArMjAxLDE3IEBAIFRFU1QoV0tOYXZpZ2F0aW9uLCBEZWNpZGVQb2xpY3lG
b3JQYWdlQ2EKIAogICAgIGlzRG9uZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJkYXRhOnRleHQvaHRt
bCwyIl1dOwogCiAgICAgaXNEb25lID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBpc0RvbmUgPSBmYWxzZTsKICAg
ICBbd2ViVmlldyBnb0JhY2tdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAgQVNTRVJUX1RS
VUUoW2RlbGVnYXRlIGRlY2lkZWRQb2xpY3lGb3JCYWNrRm9yd2FyZE5hdmlnYXRpb25dKTsKIH0K
QEAgLTI0OSw3ICsyNDksNyBAQCBURVNUKFdLTmF2aWdhdGlvbiwgTmF2aWdhdGlvbkFjdGlvbkhh
c05hCiAKICAgICBpc0RvbmUgPSBmYWxzZTsKICAgICBkZWxlZ2F0ZS0+bmF2aWdhdGlvbiA9IFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogfQogCiBA
aW50ZXJmYWNlIENsaWVudFJlZGlyZWN0TmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3Q8V0tO
YXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPgpAQCAtMjg0LDcgKzI4NCw3IEBAIFRFU1QoV0tOYXZp
Z2F0aW9uLCBXZWJWaWV3V2lsbFBlcmZvcm1DbGkKICAgICByZWRpcmVjdFVSTCA9IG5pbDsKICAg
ICByZWRpcmVjdERlbGF5ID0gMDsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgIEFTU0VSVF9ET1VCTEVfRVEocmVkaXJlY3REZWxh
eSwgMTIzKTsKICAgICBBU1NFUlRfU1RSRVEocmVkaXJlY3RVUkwuZ2V0KCkuYWJzb2x1dGVTdHJp
bmcuVVRGOFN0cmluZywgImRhdGE6dGV4dC9odG1sLFBhZ2UxIik7CkBAIC0yOTQsNyArMjk0LDcg
QEAgVEVTVChXS05hdmlnYXRpb24sIFdlYlZpZXdXaWxsUGVyZm9ybUNsaQogICAgIHJlZGlyZWN0
VVJMID0gbmlsOwogICAgIHJlZGlyZWN0RGVsYXkgPSBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MDsg
Ly8gVXNlIGFueSBub24temVybyB2YWx1ZSwgd2Ugd2lsbCB0ZXN0IHRoYXQgdGhlIGRlbGVnYXRl
IHJlY2VpdmVzIGEgZGVsYXkgb2YgMC4KICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgIEFTU0VSVF9ET1VCTEVfRVEocmVkaXJlY3RE
ZWxheSwgMCk7CiAgICAgQVNTRVJUX1NUUkVRKHJlZGlyZWN0VVJMLmdldCgpLmFic29sdXRlU3Ry
aW5nLlVURjhTdHJpbmcsICJkYXRhOnRleHQvaHRtbCxQYWdlMiIpOwpAQCAtMzE0LDcgKzMxNCw3
IEBAIFRFU1QoV0tOYXZpZ2F0aW9uLCBXZWJWaWV3RGlkQ2FuY2VsQ2xpZW4KICAgICBpc0RvbmUg
PSBmYWxzZTsKICAgICBkaWRDYW5jZWxSZWRpcmVjdCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAgQVNTRVJUX0ZB
TFNFKGRpZENhbmNlbFJlZGlyZWN0KTsKIApAQCAtMzI1LDEyICszMjUsMTIgQEAgVEVTVChXS05h
dmlnYXRpb24sIFdlYlZpZXdEaWRDYW5jZWxDbGllbgogICAgIGlzRG9uZSA9IGZhbHNlOwogICAg
IGRpZENhbmNlbFJlZGlyZWN0ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVx
dWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBBU1NFUlRfRkFMU0UoZGlkQ2FuY2Vs
UmVkaXJlY3QpOwogCiAgICAgaXNEb25lID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAK
ICAgICBBU1NFUlRfVFJVRShkaWRDYW5jZWxSZWRpcmVjdCk7CiAKQEAgLTM0MiwxNCArMzQyLDE0
IEBAIFRFU1QoV0tOYXZpZ2F0aW9uLCBXZWJWaWV3RGlkQ2FuY2VsQ2xpZW4KICAgICBpc0RvbmUg
PSBmYWxzZTsKICAgICBkaWRDYW5jZWxSZWRpcmVjdCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAgQVNTRVJUX0ZB
TFNFKGRpZENhbmNlbFJlZGlyZWN0KTsKIAogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiZGF0YTp0ZXh0L2h0bWwsUGFnZTQi
XV07CiAgICAgaXNEb25lID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVz
dF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBBU1NFUlRfVFJVRShkaWRDYW5jZWxSZWRp
cmVjdCk7CiB9CkBAIC0zODIsMTIgKzM4MiwxMiBAQCBURVNUKFdLTmF2aWdhdGlvbiwgV2lsbEdv
VG9CYWNrRm9yd2FyZExpCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tCYWNrRm9yd2Fy
ZERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJzaW1wbGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZuYXZpZ2F0
aW9uQ29tcGxldGUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKG5hdmlnYXRpb25Db21w
bGV0ZSk7CiAgICAgbmF2aWdhdGlvbkNvbXBsZXRlID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5k
bGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlMiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJm5hdmlnYXRpb25Db21wbGV0ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwobmF2aWdhdGlvbkNvbXBsZXRlKTsKICAgICBbd2ViVmlldyBnb0JhY2tdOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChpc0RvbmUpOwogfQogCiBSZXRhaW5QdHI8V0tCYWNrRm9yd2FyZExpc3RJdGVtPiBmaXJz
dEl0ZW07CkBAIC00MzgsMTEgKzQzOCwxMSBAQCBURVNUKFdLTmF2aWdhdGlvbiwgTGlzdEl0ZW1B
ZGRlZFJlbW92ZWQpCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tMaXN0SXRlbURlbGVn
YXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRl
bGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1w
bGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZuYXZpZ2F0aW9uQ29t
cGxldGUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKG5hdmlnYXRpb25Db21wbGV0ZSk7
CiAgICAgbmF2aWdhdGlvbkNvbXBsZXRlID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAic2ltcGxlMiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJm5hdmlnYXRpb25Db21wbGV0ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
bmF2aWdhdGlvbkNvbXBsZXRlKTsKICAgICBbW3dlYlZpZXcgYmFja0ZvcndhcmRMaXN0XSBfcmVt
b3ZlQWxsSXRlbXNdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogfQogI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2aWdh
dGlvbkFjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL05hdmlnYXRpb25BY3Rpb24ubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbkFjdGlvbi5tbQkod29y
a2luZyBjb3B5KQpAQCAtNjMsMTMgKzYzLDEzIEBAIC0gKHZvaWQpd2FpdEZvck5hdmlnYXRpb25B
Y3Rpb25DYWxsYmFjawogewogICAgIF9uYXZpZ2F0aW9uQWN0aW9uID0gbnVsbHB0cjsKICAgICBf
aGFzUmVjZWl2ZWROYXZpZ2F0aW9uQ2FsbGJhY2sgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJl9oYXNSZWNlaXZlZE5hdmlnYXRpb25DYWxsYmFjayk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoX2hhc1JlY2VpdmVkTmF2aWdhdGlvbkNhbGxiYWNrKTsKIH0KIAog
LSAodm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbgogewogICAgIF9oYXNGaW5pc2hlZE5h
dmlnYXRpb24gPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJl9oYXNGaW5p
c2hlZE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKF9oYXNGaW5pc2hl
ZE5hdmlnYXRpb24pOwogfQogCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2
aWdhdGlvbkFjdGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlv
blBvbGljeSkpZGVjaXNpb25IYW5kbGVyCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL05ldHdvcmtQcm9jZXNzQ3Jhc2hOb25QZXJzaXN0ZW50RGF0YVN0b3JlLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmV0
d29ya1Byb2Nlc3NDcmFzaE5vblBlcnNpc3RlbnREYXRhU3RvcmUubW0JKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmV0d29ya1Byb2Nl
c3NDcmFzaE5vblBlcnNpc3RlbnREYXRhU3RvcmUubW0JKHdvcmtpbmcgY29weSkKQEAgLTY3LDEw
ICs2NywxMCBAQCBURVNUKFdlYktpdCwgTmV0d29ya1Byb2Nlc3NDcmFzaE5vblBlcnNpCiAgICAg
W3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAogICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6c2ltcGxlXV07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBbW3dlYlZpZXcgY29u
ZmlndXJhdGlvbl0ucHJvY2Vzc1Bvb2wgX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzXTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnNpbXBsZTJd
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Ob3dQbGF5aW5nLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvTm93UGxheWluZy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Ob3dQbGF5aW5nLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TVJOb3dQbGF5aW5n
Q2xpZW50UmVmPiAKICAgICAgICAgICAgIG5vd1BsYXlpbmdDbGllbnQgPSBwbGF5ZXI7CiAgICAg
ICAgIGdvdE5vd1BsYXlpbmcgPSB0cnVlOwogICAgIH0pOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZ290Tm93UGxheWluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZ290
Tm93UGxheWluZyk7CiAgICAgcmV0dXJuIG5vd1BsYXlpbmdDbGllbnQ7CiB9CiAKQEAgLTExNywx
NCArMTE3LDE0IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGJvb2wgY29tcGxldGUgPSBmYWxz
ZTsKICAgICAgICAgW193ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpzY3JpcHQgY29tcGxldGlv
bkhhbmRsZXI6WyZdIChpZCwgTlNFcnJvciAqKSB7IGNvbXBsZXRlID0gdHJ1ZTsgfV07Ci0gICAg
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmY29tcGxldGUpOworICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChjb21wbGV0ZSk7CiAgICAgfQogCiAgICAgdm9pZCBydW5TY3JpcHRX
aXRob3V0VXNlckdlc3R1cmUoY29uc3QgU3RyaW5nJiBzY3JpcHQpCiAgICAgewogICAgICAgICBi
b29sIGNvbXBsZXRlID0gZmFsc2U7CiAgICAgICAgIFtfd2ViVmlldyBfZXZhbHVhdGVKYXZhU2Ny
aXB0V2l0aG91dFVzZXJHZXN0dXJlOnNjcmlwdCBjb21wbGV0aW9uSGFuZGxlcjpbJl0gKGlkLCBO
U0Vycm9yICopIHsgY29tcGxldGUgPSB0cnVlOyB9XTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZjb21wbGV0ZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGNv
bXBsZXRlKTsKICAgICB9CiAKICAgICB2b2lkIGV4ZWN1dGVBbmRXYWl0Rm9yUGxheWluZyhGdW5j
dGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCkBAIC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgogICAg
ICAgICBib29sIGlzUGxheWluZyA9IGZhbHNlOwogICAgICAgICBbX3dlYlZpZXcgcGVyZm9ybUFm
dGVyUmVjZWl2aW5nTWVzc2FnZTpAInBsYXlpbmciIGFjdGlvbjpbJl0geyBpc1BsYXlpbmcgPSB0
cnVlOyB9XTsKICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZpc1BsYXlpbmcpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc1Bs
YXlpbmcpOwogICAgIH0KIAogICAgIHZvaWQgZXhlY3V0ZUFuZFdhaXRGb3JXZWJWaWV3VG9CZWNv
bWVOb3dQbGF5aW5nKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKQEAgLTE0Niw3ICsxNDYs
NyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfSk7CiAgICAg
ICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmYmVjYW1l
Tm93UGxheWluZyk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGJlY2FtZU5vd1Bs
YXlpbmcpOwogICAgIH0KIAogcHJpdmF0ZToKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvTm93UGxheWluZ0NvbnRyb2xzVGVzdHMubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Ob3dQbGF5aW5nQ29udHJvbHNU
ZXN0cy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Ob3dQbGF5aW5nQ29udHJvbHNUZXN0cy5tbQkod29ya2luZyBjb3B5KQpAQCAt
NjQsNyArNjQsNyBAQCAtIChCT09MKWhhc0FjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uCiAKICAgICBb
c2VsZiBfcmVxdWVzdEFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbzpjb21wbGV0aW9uSGFuZGxl
cl07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJl9yZWNlaXZlZE5vd1BsYXlpbmdJ
bmZvUmVzcG9uc2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKF9yZWNlaXZlZE5vd1Bs
YXlpbmdJbmZvUmVzcG9uc2UpOwogCiAgICAgcmV0dXJuIF9oYXNBY3RpdmVOb3dQbGF5aW5nU2Vz
c2lvbjsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvT2Jz
ZXJ2ZWRSZW5kZXJpbmdQcm9ncmVzc0V2ZW50c0FmdGVyQ3Jhc2gubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9PYnNlcnZlZFJlbmRlcmluZ1By
b2dyZXNzRXZlbnRzQWZ0ZXJDcmFzaC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9PYnNlcnZlZFJlbmRlcmluZ1Byb2dyZXNzRXZl
bnRzQWZ0ZXJDcmFzaC5tbQkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBURVNUKFdl
YktpdCwgT2JzZXJ2ZWRSZW5kZXJpbmdQcm9ncmVzc0V2CiAgICAgW3dlYlZpZXcgX3NldE9ic2Vy
dmVkUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHM6X1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0
UGFpbnRBZnRlclN1cHByZXNzZWRJbmNyZW1lbnRhbFJlbmRlcmluZ107CiAgICAgW3dlYlZpZXcg
X2tpbGxXZWJDb250ZW50UHJvY2Vzc0FuZFJlc2V0U3RhdGVdOwogICAgIFt3ZWJWaWV3IGxvYWRI
VE1MU3RyaW5nOkAiY29udGVudCIgYmFzZVVSTDpuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAK
ICNlbmRpZgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9PcGVu
QW5kQ2xvc2VXaW5kb3cubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9PcGVuQW5kQ2xvc2VXaW5kb3cubW0JKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvT3BlbkFuZENsb3NlV2luZG93
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIFRFU1QoV2ViS2l0LCBPcGVuQW5k
Q2xvc2VXaW5kb3cpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAib3Bl
bi1hbmQtY2xvc2Utd2luZG93IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVx
dWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIH0KIAogQGludGVyZmFjZSBPcGVuQW5kQ2xv
c2VXaW5kb3dVSURlbGVnYXRlQXN5bmMgOiBPcGVuQW5kQ2xvc2VXaW5kb3dVSURlbGVnYXRlCkBA
IC0xNTIsNyArMTUyLDcgQEAgVEVTVChXZWJLaXQsIE9wZW5BbmRDbG9zZVdpbmRvd0FzeW5jKQog
ICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIm9wZW4tYW5kLWNsb3NlLXdp
bmRvdyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGlzRG9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0LCBPcGVuQXN5bmNXaXRoTmlsKQpAQCAt
MTcxLDcgKzE3MSw3IEBAIFRFU1QoV2ViS2l0LCBPcGVuQXN5bmNXaXRoTmlsKQogICAgIE5TVVJM
UmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIm9wZW4tYW5kLWNsb3NlLXdpbmRvdyIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlz
RG9uZSk7CiB9CiAKIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzEwODMgLSBUcnkgdG8gZmlndXJlIG91dCB3aHkgdGhpcyBmYWlscyBmb3Igc29tZSBjb25maWdz
IGJ1dCBub3Qgb3RoZXJzLCBhbmQgcmVzb2x2ZS4KQEAgLTE5MCw3ICsxOTAsNyBAQCBURVNUKFdl
YktpdCwgT3BlbkFzeW5jV2l0aE5pbCkKIC8vICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIm9wZW4tYW5kLWNsb3NlLXdpbmRvdyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogLy8gICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAvLwotLy8gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZpc0RvbmUpOworLy8gICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIC8vCiAv
LyAgICBib29sIGNhdWdodEV4Y2VwdGlvbiA9IGZhbHNlOwogLy8gICAgQHRyeSB7CkBAIC0yMzgs
NyArMjM4LDcgQEAgVEVTVChXZWJLaXQsIE9wZW5XaW5kb3dGZWF0dXJlcykKICAgICBOU1N0cmlu
ZyAqd2luZG93T3BlbkZvcm1hdFN0cmluZyA9IEAid2luZG93Lm9wZW4oXCJhYm91dDpibGFua1wi
LCBcIl9ibGFua1wiLCBcIiVAXCIpIjsKIAogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlw
dDpAIndpbmRvdy5vcGVuKFwiYWJvdXQ6YmxhbmtcIikiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAgaXNEb25lID0gZmFsc2U7CiAKIC8vICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MjcxIC0gV2ViQ29yZSBjdXJyZW50
bHkgZG9lc24ndCBkaXN0aW5ndWlzaCBiZXR3ZWVuIHVuc3BlY2lmaWVkIChuaWwpIGFuZCBmYWxz
ZQpAQCAtMjU1LDcgKzI1NSw3IEBAIFRFU1QoV2ViS2l0LCBPcGVuV2luZG93RmVhdHVyZXMpCiAK
ICAgICBOU1N0cmluZyAqZmVhdHVyZXNTdHJpbmdBbGxTcGVjaWZpZWRBbmRUcnVlID0gQCJtZW51
YmFyPXllcyxzdGF0dXM9eWVzLHRvb2xiYXI9eWVzLHJlc2l6YWJsZT15ZXMsbG9jYXRpb249eWVz
LHNjcm9sbGJhcnM9eWVzLGZ1bGxzY3JlZW49eWVzIjsKICAgICBbd2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHQ6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6d2luZG93T3BlbkZvcm1hdFN0cmlu
ZywgZmVhdHVyZXNTdHJpbmdBbGxTcGVjaWZpZWRBbmRUcnVlXSBjb21wbGV0aW9uSGFuZGxlcjpu
aWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAgIGlzRG9uZSA9IGZhbHNlOwogCiAgICAgRVhQ
RUNUX1RSVUUoW29wZW5XaW5kb3dGZWF0dXJlcyBtZW51QmFyVmlzaWJpbGl0eV0uYm9vbFZhbHVl
KTsKQEAgLTI2OSw3ICsyNjksNyBAQCBURVNUKFdlYktpdCwgT3BlbldpbmRvd0ZlYXR1cmVzKQog
CiAgICAgTlNTdHJpbmcgKmZlYXR1cmVzU3RyaW5nQWxsU3BlY2lmaWVkQW5kRmFsc2UgPSBAIm1l
bnViYXI9bm8sc3RhdHVzPW5vLHRvb2xiYXI9bm8scmVzaXphYmxlPW5vLGxvY2F0aW9uPW5vLHNj
cm9sbGJhcnM9bm8sZnVsbHNjcmVlbj1ubyI7CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2Ny
aXB0OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OndpbmRvd09wZW5Gb3JtYXRTdHJpbmcsIGZl
YXR1cmVzU3RyaW5nQWxsU3BlY2lmaWVkQW5kRmFsc2VdIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAgaXNEb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1Rf
RkFMU0UoW29wZW5XaW5kb3dGZWF0dXJlcyBtZW51QmFyVmlzaWJpbGl0eV0uYm9vbFZhbHVlKTsK
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGFyc2VyWWllbGRU
b2tlblRlc3RzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUGFyc2VyWWllbGRUb2tlblRlc3RzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1BhcnNlcllpZWxkVG9rZW5UZXN0
cy5tbQkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYsNyBAQCBzdGF0aWMgdm9pZCB3YWl0Rm9y
RGVsYXkoU2Vjb25kcyBkZWxheSkKICAgICBkaXNwYXRjaF9hZnRlcihkaXNwYXRjaF90aW1lKERJ
U1BBVENIX1RJTUVfTk9XLCBkZWxheS5uYW5vc2Vjb25kcygpKSwgZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKSwgXnsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfSk7Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKIH0KIAogVEVTVChQYXJzZXJZaWVsZFRva2VuVGVzdHMsIFByZXZlbnREb2N1bWVudExvYWRC
eVRha2luZ1BhcnNlcllpZWxkVG9rZW4pCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Bhc3RlSW1hZ2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QYXN0ZUltYWdlLm1tCShyZXZpc2lvbiAyNDU1MTYpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Bhc3RlSW1hZ2UubW0JKHdv
cmtpbmcgY29weSkKQEAgLTY1LDggKzY1LDggQEAgLSAodm9pZCl3YWl0Rm9yTWVzc2FnZTooTlNT
dHJpbmcgKiltZXNzYQogICAgIFtzZWxmIGV2YWx1YXRlSmF2YVNjcmlwdDpzY3JpcHQgY29tcGxl
dGlvbkhhbmRsZXI6XihpZCwgTlNFcnJvciAqKSB7CiAgICAgICAgIGV2YWx1YXRlZFNjcmlwdCA9
IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZldmFsdWF0ZWRT
Y3JpcHQpOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChldmFsdWF0ZWRTY3JpcHQpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7CiB9CiAKIEBlbmQKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUGljdHVyZUluUGljdHVyZURlbGVn
YXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUGljdHVyZUluUGljdHVyZURlbGVnYXRlLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1BpY3R1cmVJblBpY3R1cmVEZWxlZ2F0
ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMgdm9pZCB3YWl0VW50
aWxPbkxvYWRJc0NvbXBsZXRlZChXCiAgICAgd2hpbGUgKCFvbkxvYWRDb21wbGV0ZWQpIHsKICAg
ICAgICAgZmV0Y2hPbkxvYWRlZENvbXBsZXRlZERvbmUgPSBmYWxzZTsKICAgICAgICAgV0tQYWdl
UnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHBhZ2UsIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnRvV0so
IndpbmRvdy5vbmxvYWRjb21wbGV0ZWQgIT09IHVuZGVmaW5lZCIpLmdldCgpLCAwLCBvbkxvYWRl
ZENvbXBsZXRlZENhbGxiYWNrKTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZm
ZXRjaE9uTG9hZGVkQ29tcGxldGVkRG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGZldGNoT25Mb2FkZWRDb21wbGV0ZWREb25lKTsKICAgICB9CiB9CiAKQEAgLTEzMyw3ICsx
MzMsNyBAQCBURVNUKFBpY3R1cmVJblBpY3R1cmUsIFdLVUlEZWxlZ2F0ZSkKICAgICByZWNlaXZl
ZExvYWRlZE1lc3NhZ2UgPSBmYWxzZTsKICAgICAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpy
ZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTG9hZGVkTWVz
c2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRMb2FkZWRNZXNzYWdl
KTsKIAogICAgIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlVmFsdWUgPSBmYWxzZTsKICAgICBo
YXNWaWRlb0luUGljdHVyZUluUGljdHVyZUNhbGxlZCA9IGZhbHNlOwpAQCAtMTQ5LDcgKzE0OSw3
IEBAIFRFU1QoUGljdHVyZUluUGljdHVyZSwgV0tVSURlbGVnYXRlKQogICAgIFt3ZWJWaWV3IG1v
dXNlRG93bjpldmVudF07CiAjZW5kaWYKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
aGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVDYWxsZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlQ2FsbGVkKTsKICAgICBBU1NFUlRfVFJV
RShoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZVZhbHVlKTsKIAogICAgIC8vIFdhaXQgZm9yIFBJ
UEFnZW50IHRvIGxhdW5jaCwgb3IgaXQgd29uJ3QgY2FsbCAtcGlwRGlkQ2xvc2U6IGNhbGxiYWNr
LgpAQCAtMTY4LDcgKzE2OCw3IEBAIFRFU1QoUGljdHVyZUluUGljdHVyZSwgV0tVSURlbGVnYXRl
KQogICAgIFt3ZWJWaWV3IG1vdXNlRG93bjpldmVudF07CiAjZW5kaWYKIAotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVDYWxsZWQpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlQ2FsbGVk
KTsKICAgICBBU1NFUlRfRkFMU0UoaGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVWYWx1ZSk7CiB9
CiAKQEAgLTIyOCwyMCArMjI4LDIwIEBAIFRFU1QoUGljdHVyZUluUGljdHVyZSwgV0tQYWdlVUlD
bGllbnQpCiAgICAgcmVjZWl2ZWRMb2FkZWRNZXNzYWdlID0gZmFsc2U7CiAgICAgV0tSZXRhaW5Q
dHI8V0tVUkxSZWY+IHVybCA9IGFkb3B0V0soVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2UoIlBp
Y3R1cmVJblBpY3R1cmVEZWxlZ2F0ZSIsICJodG1sIikpOwogICAgIFdLUGFnZUxvYWRVUkwod2Vi
Vmlldy5wYWdlKCksIHVybC5nZXQoKSk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWNlaXZlZExvYWRlZE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2Vp
dmVkTG9hZGVkTWVzc2FnZSk7CiAgICAgd2FpdFVudGlsT25Mb2FkSXNDb21wbGV0ZWQod2ViVmll
dy5wYWdlKCkpOwogICAgIAogICAgIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlVmFsdWUgPSBm
YWxzZTsKICAgICBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZUNhbGxlZCA9IGZhbHNlOwogICAg
IHdlYlZpZXcuc2ltdWxhdGVCdXR0b25DbGljayhrV0tFdmVudE1vdXNlQnV0dG9uTGVmdEJ1dHRv
biwgNSwgNSwgMCk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZoYXNWaWRlb0luUGlj
dHVyZUluUGljdHVyZUNhbGxlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaGFzVmlk
ZW9JblBpY3R1cmVJblBpY3R1cmVDYWxsZWQpOwogICAgIEFTU0VSVF9UUlVFKGhhc1ZpZGVvSW5Q
aWN0dXJlSW5QaWN0dXJlVmFsdWUpOwogICAgIAogICAgIHNsZWVwKDFfcyk7IC8vIFdhaXQgZm9y
IFBJUEFnZW50IHRvIGxhdW5jaCwgb3IgaXQgd29uJ3QgY2FsbCAtcGlwRGlkQ2xvc2U6IGNhbGxi
YWNrLgogICAgIAogICAgIGhhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlQ2FsbGVkID0gZmFsc2U7
CiAgICAgd2ViVmlldy5zaW11bGF0ZUJ1dHRvbkNsaWNrKGtXS0V2ZW50TW91c2VCdXR0b25MZWZ0
QnV0dG9uLCA1LCA1LCAwKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmhhc1ZpZGVv
SW5QaWN0dXJlSW5QaWN0dXJlQ2FsbGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbCho
YXNWaWRlb0luUGljdHVyZUluUGljdHVyZUNhbGxlZCk7CiAgICAgQVNTRVJUX0ZBTFNFKGhhc1Zp
ZGVvSW5QaWN0dXJlSW5QaWN0dXJlVmFsdWUpOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1BsdWdpbkxvYWRDbGllbnRQb2xpY2llcy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1BsdWdpbkxvYWRD
bGllbnRQb2xpY2llcy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9QbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTEyNCw3ICsxMjQsNyBAQCBURVNUKFdlYktpdCwgUGx1Z2luTG9hZENsaWVudFBv
bGljaWVzV2l0CiAgICAgfV07CiAgICAgW3dlYlZpZXcucGxhdGZvcm1WaWV3KCkuYnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlciBsb2FkSFRNTFN0cmluZzpAIjxodG1sPjxib2R5PjxzY3JpcHQ+bmF2
aWdhdG9yLnBsdWdpbnMubGVuZ3RoOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+IiBiYXNlVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6YmxhbmsiXV07CiAKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJnRlc3RGaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
dGVzdEZpbmlzaGVkKTsKIH0KIAogI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkKSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlZmVyZW5jZXMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVmZXJlbmNlcy5t
bQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9QcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtOTksNyArOTksNyBAQCBURVNU
KFdlYktpdCwgV2ViR0xFbmFibGVkKQogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dl
YlZpZXcgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRl
LmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6bmlsXTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkQWxlcnQpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkQWxlcnQpOwogICAgIEVYUEVDVF9TVFJFUShbZGVs
ZWdhdGUgYWxlcnRdLlVURjhTdHJpbmcsICJlbmFibGVkIik7CiAKICAgICByZWNlaXZlZEFsZXJ0
ID0gZmFsc2U7CkBAIC0xMDgsNyArMTA4LDcgQEAgVEVTVChXZWJLaXQsIFdlYkdMRW5hYmxlZCkK
ICAgICB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBb
d2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6bmlsXTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkQWxlcnQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKHJlY2VpdmVkQWxlcnQpOwogICAgIEVYUEVDVF9TVFJFUShbZGVsZWdhdGUgYWxlcnRdLlVU
RjhTdHJpbmcsICJkaXNhYmxlZCIpOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1ByZWZlcnJlZEF1ZGlvQnVmZmVyU2l6ZS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZWZlcnJlZEF1ZGlvQnVm
ZmVyU2l6ZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9QcmVmZXJyZWRBdWRpb0J1ZmZlclNpemUubW0JKHdvcmtpbmcgY29weSkK
QEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgICAgICBfX2Jsb2NrIGJvb2wgaXNQbGF5aW5n
ID0gZmFsc2U7CiAgICAgICAgIFt3ZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6
QCJwbGF5aW5nIiBhY3Rpb246XigpIHsgaXNQbGF5aW5nID0gdHJ1ZTsgfV07CiAgICAgICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpuYW1lXTsKLSAgICAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc1BsYXlpbmcpOworICAgICAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChpc1BsYXlpbmcpOwogICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRBdWRpb0J1
ZmZlclNpemUsIHByZWZlcnJlZEF1ZGlvQnVmZmVyU2l6ZSgpKTsKICAgICB9CiAKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlcGFyZUZvck1vdmVUb1dpbmRv
dy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1ByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbQko
d29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBURVNUKFdLV2ViVmlldywgUHJlcGFyZUZv
ck1vdmVUb1dpbmRvdykKICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChpc0RvbmUpOwogfQogCiAKQEAgLTczLDcgKzczLDcgQEAgVEVTVChXS1dlYlZpZXcsIFBy
ZXBhcmVGb3JNb3ZlVG9XaW5kb3dUaAogCiAgICAgW3dlYlZpZXcgX2Nsb3NlXTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChpc0RvbmUpOwogfQogCiAjZW5kaWYKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N1c3BlbmRNZWRpYUJ1ZmZlcmluZy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTdXNwZW5k
TWVkaWFCdWZmZXJpbmcubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N1c3BlbmRNZWRpYUJ1ZmZlcmluZy5tbQkod29y
a2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBURVNUKFdlYktpdCwgUHJvY2Vzc1N1c3BlbmRN
ZWRpYUJ1ZmZlcmluCiAKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFt
ZWQ6QCJ2aWRlby13aXRoLWF1ZGlvIl07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmlzUGxheWluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNQbGF5aW5nKTsKIAog
ICAgIGF1dG8gaXNFbGVtZW50QWxsb3dlZFRvQnVmZmVyID0gWyZdIHsKICAgICAgICAgcmV0dXJu
IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuaW50ZXJuYWxz
LmVsZW1lbnRTaG91bGRCdWZmZXJEYXRhKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykp
Il0uYm9vbFZhbHVlOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCShyZXZp
c2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1By
b2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01MTcsNyArNTE3LDcg
QEAgc3RhdGljIHZvaWQgcnVuQmFzaWNUZXN0KFNjaGVtZUhhbmRsZXJTaAogICAgIE5TVVJMUmVx
dWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXTsKICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogCiAgICAgYXV0byBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XTsKQEAgLTUyNSw3ICs1MjUsNyBAQCBzdGF0aWMgdm9pZCBydW5CYXNpY1Rlc3QoU2NoZW1lSGFu
ZGxlclNoCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCJdXTsKICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQyID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXTsKQEAgLTUzMyw3ICs1MzMsNyBAQCBzdGF0aWMgdm9pZCBydW5CYXNpY1Rlc3QoU2No
ZW1lSGFuZGxlclNoCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluMi5odG1sIl1d
OwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDMgPSBbd2ViVmlldyBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdOwpAQCAtNTcyLDcgKzU3Miw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIExvYWRB
ZnRlclBvbGljeURlY2lzaW8KICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJr
aXQub3JnL21haW4xLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIG5hdmlnYXRpb25E
ZWxlZ2F0ZS0+ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiA9IF4oV0tOYXZpZ2F0aW9u
QWN0aW9uICosIHZvaWQgKF5kZWNpc2lvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eSkpIHsKQEAgLTYxMSw3ICs2MTEsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBLaWxsV2ViQ29udGVu
dFByb2Nlc3NBCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluMS5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBfX2Jsb2NrIEJPT0wgaXNSZWRp
cmVjdGlvbiA9IE5POwpAQCAtNjMwLDEzICs2MzAsMTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgS2ls
bFdlYkNvbnRlbnRQcm9jZXNzQQogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4y
Lmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNw
aW5SdW5Mb29wKDEwKTsKICAgICBbd2ViVmlldyByZWxvYWRdOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiB9CiAKQEAgLTY1Nyw3ICs2NTcsNyBAQCBURVNUKFByb2Nlc3NT
d2FwLCBOb1N3YXBwaW5nRm9yZVRMRFBsdXMyCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246
Ly93d3cxLndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAg
YXV0byBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTY2NSw3ICs2
NjUsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOb1N3YXBwaW5nRm9yZVRMRFBsdXMyCiAgICAgcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJwc29uOi8vd3d3Mi53ZWJraXQub3JnL21haW4yLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsK
IAogICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC03
MDAsOSArNzAwLDkgQEAgVEVTVChQcm9jZXNzU3dhcCwgQmFjaykKICAgICBOU1VSTFJlcXVlc3Qg
KnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZE1lc3Nh
Z2UpOwogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byB3ZWJraXRQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdOwpAQCAtNzEwLDcgKzcxMCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEJhY2sp
CiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBm
YWxzZTsKIAogICAgIGF1dG8gYXBwbGVQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZp
ZXJdOwpAQCAtNzE5LDcgKzcxOSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEJhY2spCiAgICAgcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJwc29uOi8vd3d3Lmdvb2dsZS5jb20vbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICBhdXRvIGdvb2dsZVBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBA
IC03MjgsNyArNzI4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQmFjaykKICAgICByZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246
Ly93d3cuYmluZy5jb20vbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJl
cXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRv
IGJpbmdQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtNzM2LDkgKzcz
Niw5IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEJhY2spCiAKICAgICBbd2ViVmlldyBnb0JhY2tdOyAv
LyBCYWNrIHRvIGdvb2dsZS5jb20uCiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRNZXNz
YWdlKTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkQWZ0ZXJGaXJzdEJhY2tOYXZpZ2F0aW9uID0g
W3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTc0Niw5ICs3NDYsOSBAQCBURVNU
KFByb2Nlc3NTd2FwLCBCYWNrKQogCiAgICAgW3dlYlZpZXcgZ29CYWNrXTsgLy8gQmFjayB0byBh
cHBsZS5jb20uCiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2Fn
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRNZXNzYWdlKTsKICAgICBy
ZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxz
ZTsKIAogICAgIGF1dG8gcGlkQWZ0ZXJTZWNvbmRCYWNrTmF2aWdhdGlvbiA9IFt3ZWJWaWV3IF93
ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC04MDAsNyArODAwLDcgQEAgVEVTVChQcm9jZXNzU3dh
cCwgSGlzdG9yeU5hdmlnYXRpb25Ub0ZyYQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJl
cXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRv
IHdlYmtpdFBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC04MDgsMTkg
KzgwOCwxOSBAQCBURVNUKFByb2Nlc3NTd2FwLCBIaXN0b3J5TmF2aWdhdGlvblRvRnJhCiAgICAg
cmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwjZm9vIl1dOwogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFs
c2U7CiAKICAgICBhdXRvIGFwcGxlUElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XTsKIAogICAgIFt3ZWJWaWV3IGdvQmFja107Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0g
ZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEod2Via2l0UElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdKTsKIAogICAgIFt3ZWJWaWV3IGdvRm9yd2FyZF07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEoYXBwbGVQSUQsIFt3ZWJWaWV3IF93
ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwpAQCAtODMxLDcgKzgzMSw3IEBAIFRFU1QoUHJvY2Vzc1N3
YXAsIEhpc3RvcnlOYXZpZ2F0aW9uVG9GcmEKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiVEVT
VCIsIGlubmVyVGV4dCk7CiAgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7CiAg
ICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdTY3Jp
cHQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkUnVubmluZ1NjcmlwdCk7
CiB9CiAKIFRFU1QoUHJvY2Vzc1N3YXAsIFN1c3BlbmRlZFBhZ2VEaWVzQWZ0ZXJCYWNrRm9yd2Fy
ZExpc3RJdGVtSXNHb25lKQpAQCAtODUzLDcgKzg1Myw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFN1
c3BlbmRlZFBhZ2VEaWVzQWZ0ZXIKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53
ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byB3ZWJr
aXRQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtODYxLDcgKzg2MSw3
IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFN1c3BlbmRlZFBhZ2VEaWVzQWZ0ZXIKICAgICByZXF1ZXN0
ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBz
b246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAg
YXV0byBhcHBsZVBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC04NzEs
NyArODcxLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU3VzcGVuZGVkUGFnZURpZXNBZnRlcgogICAg
IEVYUEVDVF9FUSgyVSwgW3Byb2Nlc3NQb29sIF93ZWJQcm9jZXNzQ291bnRJZ25vcmluZ1ByZXdh
cm1lZEFuZENhY2hlZF0pOwogCiAgICAgW3dlYlZpZXcgZ29CYWNrXTsgLy8gQmFjayB0byB3ZWJr
aXQub3JnLgotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNU
X0VRKHdlYmtpdFBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CkBAIC04ODIs
NyArODgyLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU3VzcGVuZGVkUGFnZURpZXNBZnRlcgogICAg
IHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiXV07CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxz
ZTsKIAogICAgIEVYUEVDVF9FUSh3ZWJraXRQSUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl0pOwpAQCAtOTE1LDcgKzkxNSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFN1c3BlbmRlZFBh
Z2VzSW5BY3RpdmkKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3Jn
L21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byB3ZWJraXRQSUQgPSBb
d2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtOTI0LDEzICs5MjQsMTMgQEAgVEVT
VChQcm9jZXNzU3dhcCwgU3VzcGVuZGVkUGFnZXNJbkFjdGl2aQogICAgICAgICBFWFBFQ1RfV0tf
U1RSRVEoQCJwc29uOi8vd3d3LndlYmtpdC5vcmciLCBhY3RpdmVEb21haW5zWzBdKTsKICAgICAg
ICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFs
c2U7CiAKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuZ29vZ2xlLmNvbS9tYWluLmh0bWwiXV07CiAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRv
bmUgPSBmYWxzZTsKIAogICAgIGF1dG8gZ29vZ2xlUElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXTsKQEAgLTk0MSw3ICs5NDEsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBTdXNwZW5k
ZWRQYWdlc0luQWN0aXZpCiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cuZ29v
Z2xlLmNvbSIsIGFjdGl2ZURvbWFpbnNbMF0pOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFtwcm9jZXNzUG9v
bCBfZ2V0QWN0aXZlUGFnZXNPcmlnaW5zSW5XZWJQcm9jZXNzRm9yVGVzdGluZzp3ZWJraXRQSUQg
Y29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5PE5TU3RyaW5nICo+ICphY3RpdmVEb21haW5zKSB7
CkBAIC05NDksMTQgKzk0OSwxNCBAQCBURVNUKFByb2Nlc3NTd2FwLCBTdXNwZW5kZWRQYWdlc0lu
QWN0aXZpCiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZyIs
IGFjdGl2ZURvbWFpbnNbMF0pOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFt3ZWJWaWV3IGdvQmFja107IC8v
IEJhY2sgdG8gd2Via2l0Lm9yZy4KIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZE1lc3Nh
Z2UpOwogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWRBZnRlckJhY2tOYXZpZ2F0aW9uID0gW3dlYlZp
ZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTk2Nyw3ICs5NjcsNyBAQCBURVNUKFByb2Nl
c3NTd2FwLCBTdXNwZW5kZWRQYWdlc0luQWN0aXZpCiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShA
InBzb246Ly93d3cuZ29vZ2xlLmNvbSIsIGFjdGl2ZURvbWFpbnNbMF0pOwogICAgICAgICBkb25l
ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAog
ICAgIFtwcm9jZXNzUG9vbCBfZ2V0QWN0aXZlUGFnZXNPcmlnaW5zSW5XZWJQcm9jZXNzRm9yVGVz
dGluZzp3ZWJraXRQSUQgY29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5PE5TU3RyaW5nICo+ICph
Y3RpdmVEb21haW5zKSB7CkBAIC05NzUsNyArOTc1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU3Vz
cGVuZGVkUGFnZXNJbkFjdGl2aQogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3
LndlYmtpdC5vcmciLCBhY3RpdmVEb21haW5zWzBdKTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAg
ICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAKQEAgLTEwMDIs
OSArMTAwMiw5IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEJhY2tXaXRob3V0U3VzcGVuZGVkUGEKICAg
ICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsK
ICAgICBbd2ViVmlldzEgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwocmVjZWl2ZWRNZXNzYWdlKTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3
MSBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtMTAyMCwxNiArMTAyMCwxNiBAQCBURVNUKFBy
b2Nlc3NTd2FwLCBCYWNrV2l0aG91dFN1c3BlbmRlZFBhCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFw
cGxlLmNvbS9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcyIGxvYWRSZXF1ZXN0OnJlcXVlc3Rd
OwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDIg
PSBbd2ViVmlldzIgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKIAogICAgIFt3ZWJWaWV3MiBnb0Jh
Y2tdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZE1lc3NhZ2UpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7CiAgICAgcmVjZWl2
ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICBhdXRvIHBpZDMgPSBbd2ViVmlldzIgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTEw
NTUsNyArMTA1NSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEJhY2tOYXZpZ2F0aW9uQWZ0ZXJTZXMK
ICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJd
XTsKICAgICBbd2ViVmlldzEgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3MSBfd2ViUHJv
Y2Vzc0lkZW50aWZpZXJdOwpAQCAtMTA2Myw3ICsxMDYzLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwg
QmFja05hdmlnYXRpb25BZnRlclNlcwogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFp
bi5odG1sIl1dOwogICAgIFt3ZWJWaWV3MSBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQyID0gW3dlYlZpZXcx
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0xMDc3LDE0ICsxMDc3LDE0IEBAIFRFU1QoUHJv
Y2Vzc1N3YXAsIEJhY2tOYXZpZ2F0aW9uQWZ0ZXJTZXMKICAgICBbd2ViVmlldzIgc2V0TmF2aWdh
dGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAogICAgIFt3ZWJWaWV3MiBfcmVzdG9yZVNl
c3Npb25TdGF0ZTpzZXNzaW9uU3RhdGUuZ2V0KCkgYW5kTmF2aWdhdGU6WUVTXTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246
Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCIsIFtbd2ViVmlldzIgVVJMXSBhYnNvbHV0ZVN0cmlu
Z10pOwogICAgIGF1dG8gcGlkMyA9IFt3ZWJWaWV3MiBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwog
CiAgICAgW3dlYlZpZXcyIGdvQmFja107Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFs
c2U7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5o
dG1sIiwgW1t3ZWJWaWV3MiBVUkxdIGFic29sdXRlU3RyaW5nXSk7CkBAIC0xMTE1LDEzICsxMTE1
LDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZVdpbmRvd09wZW5Ob08KICAgICBOU1VS
TFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDcmVhdGVXZWJW
aWV3KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDcmVhdGVXZWJWaWV3KTsKICAg
ICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgRVhQ
RUNUX0VRKDIsIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMpOwogCkBAIC0xMTU0LDEzICsxMTU0
LDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzT3JpZ2luQnV0U2FtZVNpdGUKICAgICBOU1VS
TFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDcmVhdGVXZWJW
aWV3KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDcmVhdGVXZWJWaWV3KTsKICAg
ICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgRVhQ
RUNUX0VRKDIsIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMpOwogCkBAIC0xMTk0LDEzICsxMTk0
LDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZVdpbmRvd09wZW5XaXQKICAgICBOU1VS
TFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDcmVhdGVXZWJW
aWV3KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDcmVhdGVXZWJWaWV3KTsKICAg
ICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgRVhQ
RUNUX0VRKDIsIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMpOwogCkBAIC0xMjMyLDEzICsxMjMy
LDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNhbWVTaXRlV2luZG93T3Blbk5vT3AKICAgICBOU1VS
TFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDcmVhdGVXZWJW
aWV3KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDcmVhdGVXZWJWaWV3KTsKICAg
ICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgRVhQ
RUNUX0VRKDIsIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMpOwogCkBAIC0xMjcxLDEzICsxMjcx
LDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZUJsYW5rVGFyZ2V0V2kKICAgICBOU1VS
TFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDcmVhdGVXZWJW
aWV3KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDcmVhdGVXZWJWaWV3KTsKICAg
ICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgRVhQ
RUNUX0VRKDMsIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMpOwogCkBAIC0xMzEwLDEzICsxMzEw
LDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZUJsYW5rVGFyZ2V0SW0KICAgICBOU1VS
TFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDcmVhdGVXZWJW
aWV3KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDcmVhdGVXZWJWaWV3KTsKICAg
ICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgRVhQ
RUNUX0VRKDMsIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMpOwogCkBAIC0xMzQ5LDEzICsxMzQ5
LDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzU2l0ZUJsYW5rVGFyZ2V0Tm8KICAgICBOU1VS
TFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDcmVhdGVXZWJW
aWV3KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDcmVhdGVXZWJWaWV3KTsKICAg
ICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgRVhQ
RUNUX0VRKDMsIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMpOwogCkBAIC0xMzg4LDEzICsxMzg4
LDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNhbWVTaXRlQmxhbmtUYXJnZXROb08KICAgICBOU1VS
TFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDcmVhdGVXZWJW
aWV3KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDcmVhdGVXZWJWaWV3KTsKICAg
ICBkaWRDcmVhdGVXZWJWaWV3ID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgRVhQ
RUNUX0VRKDMsIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMpOwogCkBAIC0xNDI2LDEyICsxNDI2
LDEyIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNlcnZlclJlZGlyZWN0RnJvbU5ld1cKICAgICBOU1VS
TFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmc2VydmVyUmVkaXJlY3RlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoc2Vy
dmVyUmVkaXJlY3RlZCk7CiAgICAgc2VydmVyUmVkaXJlY3RlZCA9IGZhbHNlOwogCiAgICAgc2Vl
blBJRHMuYWRkKFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwogCi0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBzZWVuUElEcy5hZGQoW3dlYlZpZXcgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXSk7CkBAIC0xNDU5LDcgKzE0NTksNyBAQCBURVNUKFByb2Nlc3NT
d2FwLCBTZXJ2ZXJSZWRpcmVjdCkKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5n
b29nbGUuY29tL21haW4xLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVz
dF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlk
QWZ0ZXJGaXJzdExvYWQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtMTQ3
MSwxNCArMTQ3MSwxNCBAQCBURVNUKFByb2Nlc3NTd2FwLCBTZXJ2ZXJSZWRpcmVjdCkKICAgICBy
ZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnNlcnZl
clJlZGlyZWN0ZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHNlcnZlclJlZGlyZWN0
ZWQpOwogICAgIHNlcnZlclJlZGlyZWN0ZWQgPSBmYWxzZTsKIAogICAgIHNlZW5QSURzLmFkZChb
d2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKICAgICBpZiAoYXV0byBwcm92aXNpb25h
bFBJRCA9IFt3ZWJWaWV3IF9wcm92aXNpb25hbFdlYlByb2Nlc3NJZGVudGlmaWVyXSkKICAgICAg
ICAgc2VlblBJRHMuYWRkKHByb3Zpc2lvbmFsUElEKTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgc2VlblBJRHMuYWRkKFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRl
bnRpZmllcl0pOwpAQCAtMTUxMSw3ICsxNTExLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU2VydmVy
UmVkaXJlY3QyKQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcv
bWFpbjEuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWRBZnRlckZpcnN0
TG9hZCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0xNTI0LDE0ICsxNTI0
LDE0IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNlcnZlclJlZGlyZWN0MikKICAgICByZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZzZXJ2ZXJSZWRpcmVj
dGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChzZXJ2ZXJSZWRpcmVjdGVkKTsKICAg
ICBzZXJ2ZXJSZWRpcmVjdGVkID0gZmFsc2U7CiAKICAgICBzZWVuUElEcy5hZGQoW3dlYlZpZXcg
X3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CiAgICAgaWYgKGF1dG8gcHJvdmlzaW9uYWxQSUQgPSBb
d2ViVmlldyBfcHJvdmlzaW9uYWxXZWJQcm9jZXNzSWRlbnRpZmllcl0pCiAgICAgICAgIHNlZW5Q
SURzLmFkZChwcm92aXNpb25hbFBJRCk7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBm
YWxzZTsKIAogICAgIHNlZW5QSURzLmFkZChbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJd
KTsKQEAgLTE1NDYsNyArMTU0Niw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNlcnZlclJlZGlyZWN0
MikKIAogICAgIFt3ZWJWaWV3IGdvQmFja107CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluMS5odG1sIiwgW1t3ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKQEAgLTE1NzAsNyAr
MTU3MCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNlcnZlclJlZGlyZWN0VG9BYm91dEIKICAgICBO
U1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5nb29nbGUuY29tL21haW4uaHRtbCJdXTsKICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWRBZnRlckZpcnN0TG9hZCA9IFt3ZWJWaWV3IF93
ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0xNTgyLDE0ICsxNTgyLDE0IEBAIFRFU1QoUHJvY2Vz
c1N3YXAsIFNlcnZlclJlZGlyZWN0VG9BYm91dEIKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0
Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnNlcnZlclJlZGlyZWN0ZWQpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKHNlcnZlclJlZGlyZWN0ZWQpOwogICAgIHNlcnZlclJlZGly
ZWN0ZWQgPSBmYWxzZTsKIAogICAgIHNlZW5QSURzLmFkZChbd2ViVmlldyBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdKTsKICAgICBpZiAoYXV0byBwcm92aXNpb25hbFBJRCA9IFt3ZWJWaWV3IF9wcm92
aXNpb25hbFdlYlByb2Nlc3NJZGVudGlmaWVyXSkKICAgICAgICAgc2VlblBJRHMuYWRkKHByb3Zp
c2lvbmFsUElEKTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAg
c2VlblBJRHMuYWRkKFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwpAQCAtMTYyNSw3
ICsxNjI1LDcgQEAgc3RhdGljIHZvaWQgcnVuU2FtZU9yaWdpblNlcnZlclJlZGlyZWN0VAogICAg
ICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4zLmh0bWwiXV07CiAgICAgICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwog
ICAgICAgICBkb25lID0gZmFsc2U7CiAgICAgfQogCkBAIC0xNjQxLDEzICsxNjQxLDEzIEBAIHN0
YXRpYyB2b2lkIHJ1blNhbWVPcmlnaW5TZXJ2ZXJSZWRpcmVjdFQKICAgICByZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93
d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVx
dWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJndpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3QpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHdpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3QpOwogCiAgICAgc2VlblBJRHMuYWRkKFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl0pOwogICAgIGlmIChhdXRvIHByb3Zpc2lvbmFsUElEID0gW3dlYlZpZXcgX3Byb3Zpc2lv
bmFsV2ViUHJvY2Vzc0lkZW50aWZpZXJdKQogICAgICAgICBzZWVuUElEcy5hZGQocHJvdmlzaW9u
YWxQSUQpOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRQZXJmb3JtQ2xpZW50
UmVkaXJlY3QpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZFBlcmZvcm1DbGllbnRS
ZWRpcmVjdCk7CiAgICAgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0ID0gZmFsc2U7CiAgICAgd2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdCA9IGZhbHNlOwogCkBAIC0xNjU1LDE0ICsxNjU1LDE0IEBA
IHN0YXRpYyB2b2lkIHJ1blNhbWVPcmlnaW5TZXJ2ZXJSZWRpcmVjdFQKICAgICBpZiAoYXV0byBw
cm92aXNpb25hbFBJRCA9IFt3ZWJWaWV3IF9wcm92aXNpb25hbFdlYlByb2Nlc3NJZGVudGlmaWVy
XSkKICAgICAgICAgc2VlblBJRHMuYWRkKHByb3Zpc2lvbmFsUElEKTsKIAotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmc2VydmVyUmVkaXJlY3RlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoc2VydmVyUmVkaXJlY3RlZCk7CiAgICAgc2VydmVyUmVkaXJlY3RlZCA9IGZhbHNl
OwogCiAgICAgc2VlblBJRHMuYWRkKFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwog
ICAgIGlmIChhdXRvIHByb3Zpc2lvbmFsUElEID0gW3dlYlZpZXcgX3Byb3Zpc2lvbmFsV2ViUHJv
Y2Vzc0lkZW50aWZpZXJdKQogICAgICAgICBzZWVuUElEcy5hZGQocHJvdmlzaW9uYWxQSUQpOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBzZWVuUElEcy5hZGQo
W3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CkBAIC0xNzAxLDcgKzE3MDEsNyBAQCBU
RVNUKFByb2Nlc3NTd2FwLCBUZXJtaW5hdGVQcm9jZXNzUmlnaHRBCiAgICAgTlNVUkxSZXF1ZXN0
ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxz
ZTsKIAogICAgIGRlbGVnYXRlLT5kaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbkhhbmRsZXIg
PSBeewpAQCAtMTc0OCw3ICsxNzQ4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUG9saWN5Q2FuY2Vs
QWZ0ZXJTZXJ2ZQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3Lmdvb2dsZS5jb20v
bWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgYXV0byBwaWRBZnRlckZpcnN0TG9h
ZCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAKQEAgLTE3NTYsNyArMTc1Niw3
IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFBvbGljeUNhbmNlbEFmdGVyU2VydmUKIAogICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInRlc3RMaW5rLmNsaWNrKCkiIGNvbXBsZXRpb25IYW5k
bGVyOm5pbF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZhaWxlZCk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmFpbGVkKTsKICAgICBmYWlsZWQgPSBmYWxzZTsKICAg
ICBkb25lID0gZmFsc2U7CiAKQEAgLTE3NzAsNyArMTc3MCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IFBvbGljeUNhbmNlbEFmdGVyU2VydmUKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiTGluayIs
IGlubmVyVGV4dCk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9u
ZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogfQogCkBAIC0xNzkzLDE0ICsxNzkzLDE0IEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIENyb3NzU2l0ZURvd25sb2FkKQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVz
dCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJw
c29uOi8vd3d3Lmdvb2dsZS5jb20vbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAg
YXV0byBwaWRBZnRlckZpcnN0TG9hZCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07
CiAKICAgICBzaG91bGRDb252ZXJ0VG9Eb3dubG9hZCA9IHRydWU7CiAgICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0OkAidGVzdExpbmsuY2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6bmls
XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmFpbGVkKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChmYWlsZWQpOwogICAgIGZhaWxlZCA9IGZhbHNlOwogICAgIHNob3Vs
ZENvbnZlcnRUb0Rvd25sb2FkID0gZmFsc2U7CiAKQEAgLTE4MTIsNyArMTgxMiw3IEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIENyb3NzU2l0ZURvd25sb2FkKQogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEo
QCJMaW5rIiwgaW5uZXJUZXh0KTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAKQEAgLTE4NTUsNyArMTg1NSw3IEBA
IFRFU1QoUHJvY2Vzc1N3YXAsIFNhbWVPcmlnaW5TeXN0ZW1QcmV2aWUKICAgICBOU1VSTFJlcXVl
c3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZh
bHNlOwogICAgIGF1dG8gcGlkQWZ0ZXJGaXJzdExvYWQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdOwogCkBAIC0xODkxLDcgKzE4OTEsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDcm9z
c09yaWdpblN5c3RlbVByZXZpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Vi
a2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHBpZEFmdGVy
Rmlyc3RMb2FkID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKIApAQCAtMTkyOSw3
ICsxOTI5LDcgQEAgc3RhdGljIHZvaWQgcnVuQ2xpZW50U2lkZVJlZGlyZWN0VGVzdChTaAogICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHdlYmtpdFBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CkBAIC0xOTM3LDcgKzE5MzcsNyBAQCBzdGF0aWMgdm9pZCBydW5DbGll
bnRTaWRlUmVkaXJlY3RUZXN0KFNoCiAgICAgLy8gTmF2aWdhdGUgdG8gdGhlIHBhZ2UgZG9pbmcg
YSBjbGllbnQtc2lkZSByZWRpcmVjdCB0byBhcHBsZS5jb20uCiAgICAgW3dlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0OkAidGVzdExpbmsuY2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsK
IAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX1dLX1NU
UkVRKEAicHNvbjovL3d3dy5nb29nbGUuY29tL2NsaWVudFNpZGVSZWRpcmVjdC5odG1sIiwgW1t3
ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKQEAgLTE5NDcsNyArMTk0Nyw3IEBAIHN0YXRp
YyB2b2lkIHJ1bkNsaWVudFNpZGVSZWRpcmVjdFRlc3QoU2gKICAgICBlbHNlCiAgICAgICAgIEVY
UEVDVF9FUSh3ZWJraXRQSUQsIGdvb2dsZVBJRCk7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRv
bmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cuYXBwbGUuY29t
L21haW4uaHRtbCIsIFtbd2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSk7CkBAIC0xOTg2LDcg
KzE5ODYsNyBAQCBzdGF0aWMgdm9pZCBydW5DbGllbnRTaWRlUmVkaXJlY3RUZXN0KFNoCiAKICAg
ICAvLyBOYXZpZ2F0ZSBiYWNrLgogICAgIFt3ZWJWaWV3IGdvQmFja107Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3
LndlYmtpdC5vcmcvbWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsK
QEAgLTIwMTEsNyArMjAxMSw3IEBAIHN0YXRpYyB2b2lkIHJ1bkNsaWVudFNpZGVSZWRpcmVjdFRl
c3QoU2gKIAogICAgIC8vIE5hdmlnYXRlIGZvcndhcmQuCiAgICAgW3dlYlZpZXcgZ29Gb3J3YXJk
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19T
VFJFUShAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCIsIFtbd2ViVmlldyBVUkxdIGFi
c29sdXRlU3RyaW5nXSk7CkBAIC0yMDY0LDEyICsyMDY0LDEyIEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IENyb3NzU2l0ZUNsaWVudFNpZGVSZWQKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJjbGllbnQtc2lkZS1yZWRpcmVjdCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDIgPSBbd2ViVmll
dyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtMjA5OSw3ICsyMDk5LDcgQEAgVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGVCYWNrQWZ0ZXJDbGllbgogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVz
dCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJw
c29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAg
ICBhdXRvIHdlYmtpdFBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0y
MTEwLDE0ICsyMTEwLDE0IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQmFja0FmdGVyQ2xp
ZW4KICAgICAvLyBOYXZpZ2F0ZSB0byB0aGUgcGFnZSBkb2luZyBhIGNsaWVudC1zaWRlIHJlZGly
ZWN0IHRvIGFwcGxlLmNvbS4KICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ0ZXN0
TGluay5jbGljaygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3Lmdv
b2dsZS5jb20vY2xpZW50U2lkZVJlZGlyZWN0Lmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0
ZVN0cmluZ10pOwogICAgIGF1dG8gZ29vZ2xlUElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXTsKICAgICBFWFBFQ1RfTkUod2Via2l0UElELCBnb29nbGVQSUQpOwogCi0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29u
Oi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmlu
Z10pOwpAQCAtMjEzNywxNCArMjEzNywxNCBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUJh
Y2tBZnRlckNsaWVuCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluMi5odG1sIl1d
OwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEoYXBwbGVQSUQsIFt3ZWJWaWV3IF93
ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwogCiAgICAgW3dlYlZpZXcgZ29CYWNrXTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0VRKGFwcGxlUElELCBb
d2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKQEAgLTIxNzcsMTMgKzIxNzcsMTMgQEAg
c3RhdGljIHZvaWQgcnVuTmF2aWdhdGlvbldpdGhMb2NrZWRIaXN0bwogICAgIE5TVVJMUmVxdWVz
dCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFs
c2U7CiAKICAgICBhdXRvIHdlYmtpdFBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmll
cl07CiAKICAgICAvLyBQYWdlIHJlZGlyZWN0cyB0byBhcHBsZS5jb20uCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIGFwcGxlUElEID0gW3dlYlZpZXcgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTIyMDAsOSArMjIwMCw5IEBAIHN0YXRpYyB2b2lkIHJ1
bk5hdmlnYXRpb25XaXRoTG9ja2VkSGlzdG8KIAogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNl
OwogICAgIFt3ZWJWaWV3IGdvQmFja107Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWNlaXZlZE1lc3NhZ2UpOyAvLyBTaG91bGQgYmUgcmVzdG9yZWQgZnJvbSBQYWdlQ2FjaGUuCisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRNZXNzYWdlKTsgLy8gU2hvdWxkIGJl
IHJlc3RvcmVkIGZyb20gUGFnZUNhY2hlLgogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0VRKHdlYmtp
dFBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CkBAIC0yMjEyLDggKzIyMTIs
OCBAQCBzdGF0aWMgdm9pZCBydW5OYXZpZ2F0aW9uV2l0aExvY2tlZEhpc3RvCiAgICAgRVhQRUNU
X1dLX1NUUkVRKEAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgW2JhY2tGb3J3YXJk
TGlzdC5mb3J3YXJkSXRlbS5VUkwgYWJzb2x1dGVTdHJpbmddKTsKIAogICAgIFt3ZWJWaWV3IGdv
Rm9yd2FyZF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7IC8vIFNob3VsZCBiZSByZXN0
b3JlZCBmcm9tIFBhZ2VDYWNoZS4KKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOyAvLyBTaG91bGQg
YmUgcmVzdG9yZWQgZnJvbSBQYWdlQ2FjaGUuCiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7
CiAgICAgZG9uZSA9IGZhbHNlOwogCkBAIC0yMjUwLDcgKzIyNTAsNyBAQCBzdGF0aWMgdm9pZCBy
dW5RdWlja0JhY2tGb3J3YXJkTmF2aWdhdGlvCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBh
dXRvIHdlYmtpdFBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0yMjU4
LDcgKzIyNTgsNyBAQCBzdGF0aWMgdm9pZCBydW5RdWlja0JhY2tGb3J3YXJkTmF2aWdhdGlvCiAg
ICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCJdXTsKICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZh
bHNlOwogCiAgICAgRVhQRUNUX0VRKHdlYmtpdFBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXSk7CkBAIC0yMjY2LDcgKzIyNjYsNyBAQCBzdGF0aWMgdm9pZCBydW5RdWlja0JhY2tG
b3J3YXJkTmF2aWdhdGlvCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwi
XV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gYXBwbGVQSUQgPSBbd2ViVmlldyBfd2Vi
UHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtMjM1MSw5ICsyMzUxLDkgQEAgVEVTVChQcm9jZXNzU3dh
cCwgU2Vzc2lvblN0b3JhZ2UpCiAgICAgICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3
LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogICAgICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpy
ZXF1ZXN0XTsKIAotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVz
c2FnZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7
CiAgICAgICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgICAgIGF1dG8gd2Via2l0UElEID0gW3dl
YlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTIzNjEsNyArMjM2MSw3IEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIFNlc3Npb25TdG9yYWdlKQogICAgICAgICByZXF1ZXN0ID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBw
bGUuY29tL21haW4uaHRtbCJdXTsKICAgICAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVz
dF07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICAgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgICAgIGRvbmUgPSBmYWxzZTsKIAog
ICAgICAgICBhdXRvIGFwcGxlUElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsK
QEAgLTIzNzIsOSArMjM3Miw5IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNlc3Npb25TdG9yYWdlKQog
ICAgICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwocmVjZWl2ZWRNZXNzYWdlKTsKICAgICAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7
Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgICAgICBkb25lID0gZmFsc2U7CiAKICAgICAg
ICAgLy8gV2Ugc2hvdWxkIGhhdmUgZ29uZSBiYWNrIHRvIHRoZSB3ZWJraXQub3JnIHByb2Nlc3Mg
Zm9yIHRoaXMgbG9hZCBzaW5jZSB3ZSByZXVzZSBTdXNwZW5kZWRQYWdlcycgcHJvY2VzcyB3aGVu
IHBvc3NpYmxlLgpAQCAtMjQwNSw3ICsyNDA1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUmV1c2VT
dXNwZW5kZWRQcm9jZXNzKQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtp
dC5vcmcvbWFpbjEuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsK
IAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byB3ZWJraXRQ
SUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtMjQxMyw3ICsyNDEzLDcg
QEAgVEVTVChQcm9jZXNzU3dhcCwgUmV1c2VTdXNwZW5kZWRQcm9jZXNzKQogICAgIHJlcXVlc3Qg
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNv
bjovL3d3dy5hcHBsZS5jb20vbWFpbjEuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAg
YXV0byBhcHBsZVBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0yNDIz
LDcgKzI0MjMsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBSZXVzZVN1c3BlbmRlZFByb2Nlc3MpCiAg
ICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCJdXTsKICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZh
bHNlOwogCiAgICAgLy8gV2Ugc2hvdWxkIGhhdmUgZ29uZSBiYWNrIHRvIHRoZSB3ZWJraXQub3Jn
IHByb2Nlc3MgZm9yIHRoaXMgbG9hZCBzaW5jZSB3ZSByZXVzZSBTdXNwZW5kZWRQYWdlcycgcHJv
Y2VzcyB3aGVuIHBvc3NpYmxlLgpAQCAtMjQzMiw3ICsyNDMyLDcgQEAgVEVTVChQcm9jZXNzU3dh
cCwgUmV1c2VTdXNwZW5kZWRQcm9jZXNzKQogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20v
bWFpbjIuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgLy8gV2Ugc2hvdWxkIGhhdmUg
Z29uZSBiYWNrIHRvIHRoZSBhcHBsZS5jb20gcHJvY2VzcyBmb3IgdGhpcyBsb2FkIHNpbmNlIHdl
IHJldXNlIFN1c3BlbmRlZFBhZ2VzJyBwcm9jZXNzIHdoZW4gcG9zc2libGUuCkBAIC0yNDU3LDE0
ICsyNDU3LDE0IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFJldXNlU3VzcGVuZGVkUHJvY2Vzc0wKICAg
ICBOU1N0cmluZyAqaHRtbFN0cmluZyA9IEAiPGh0bWw+PGJvZHk+VEVTVDwvYm9keT48L2h0bWw+
IjsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sU3RyaW5nIGJhc2VVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXTsKIAot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byB3ZWJraXRQSUQg
PSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogCiAgICAgW3dlYlZpZXcgbG9hZEhU
TUxTdHJpbmc6aHRtbFN0cmluZyBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjov
L3d3dy5hcHBsZS5jb20vbWFpbjEuaHRtbCJdXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9u
ZSA9IGZhbHNlOwogCiAgICAgYXV0byBhcHBsZVBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRl
bnRpZmllcl07CkBAIC0yNDczLDcgKzI0NzMsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBSZXVzZVN1
c3BlbmRlZFByb2Nlc3NMCiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sU3RyaW5n
IGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFp
bjIuaHRtbCJdXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAg
Ly8gV2Ugc2hvdWxkIGhhdmUgZ29uZSBiYWNrIHRvIHRoZSB3ZWJraXQub3JnIHByb2Nlc3MgZm9y
IHRoaXMgbG9hZCBzaW5jZSB3ZSByZXVzZSBTdXNwZW5kZWRQYWdlcycgcHJvY2VzcyB3aGVuIHBv
c3NpYmxlLgpAQCAtMjQ4MSw3ICsyNDgxLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUmV1c2VTdXNw
ZW5kZWRQcm9jZXNzTAogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6aHRtbFN0cmluZyBi
YXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbjIu
aHRtbCJdXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgLy8g
V2Ugc2hvdWxkIGhhdmUgZ29uZSBiYWNrIHRvIHRoZSBhcHBsZS5jb20gcHJvY2VzcyBmb3IgdGhp
cyBsb2FkIHNpbmNlIHdlIHJldXNlIFN1c3BlbmRlZFBhZ2VzJyBwcm9jZXNzIHdoZW4gcG9zc2li
bGUuCkBAIC0yNTE1LDcgKzI1MTUsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBSZXVzZVN1c3BlbmRl
ZFByb2Nlc3NFCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluMS5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHdlYmtpdFBJRCA9IFt3
ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0yNTIzLDcgKzI1MjMsNyBAQCBURVNU
KFByb2Nlc3NTd2FwLCBSZXVzZVN1c3BlbmRlZFByb2Nlc3NFCiAgICAgcmVxdWVzdCA9IFtOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3
LmFwcGxlLmNvbS9tYWluMS5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIGFw
cGxlUElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTI1MzMsNyArMjUz
Myw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFJldXNlU3VzcGVuZGVkUHJvY2Vzc0UKICAgICByZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICAvLyBXZSBzaG91bGQgaGF2ZSBnb25lIGJhY2sgdG8gdGhlIHdlYmtpdC5vcmcgcHJvY2Vz
cyBmb3IgdGhpcyBsb2FkIHNpbmNlIHdlIHJldXNlIFN1c3BlbmRlZFBhZ2VzJyBwcm9jZXNzIHdo
ZW4gcG9zc2libGUuCkBAIC0yNTQyLDcgKzI1NDIsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBSZXVz
ZVN1c3BlbmRlZFByb2Nlc3NFCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluMi5o
dG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICAvLyBXZSBzaG91bGQgaGF2ZSBnb25lIGJh
Y2sgdG8gdGhlIGFwcGxlLmNvbSBwcm9jZXNzIGZvciB0aGlzIGxvYWQgc2luY2Ugd2UgcmV1c2Ug
U3VzcGVuZGVkUGFnZXMnIHByb2Nlc3Mgd2hlbiBwb3NzaWJsZS4KQEAgLTI1NjcsNyArMjU2Nyw3
IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFJldXNlU3VzcGVuZGVkUHJvY2Vzc08KICAgICBOU1VSTFJl
cXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxX
aXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwiXV07CiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAogICAgIGF1dG8gd2Via2l0UElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXTsKQEAgLTI1NzUsNyArMjU3NSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFJldXNlU3Vz
cGVuZGVkUHJvY2Vzc08KICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4xLmh0bWwi
XV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gYXBwbGVQSUQgPSBbd2ViVmlldyBfd2Vi
UHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtMjU4NCw3ICsyNTg0LDcgQEAgVEVTVChQcm9jZXNzU3dh
cCwgUmV1c2VTdXNwZW5kZWRQcm9jZXNzTwogCiAgICAgW3dlYlZpZXcgZ29CYWNrXTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0VRKHdlYmtpdFBJ
RCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CkBAIC0yNjE2LDcgKzI2MTYsNyBA
QCBURVNUKFByb2Nlc3NTd2FwLCBIaXN0b3J5SXRlbUlEQ29uZnVzaW9uCiAgICAgTlNVUkxSZXF1
ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBm
YWxzZTsKIAogICAgIGF1dG8gd2Via2l0UElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlm
aWVyXTsKQEAgLTI2MjQsNyArMjYyNCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEhpc3RvcnlJdGVt
SURDb25mdXNpb24KICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsK
ICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBhcHBsZVBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CkBAIC0yNjMzLDcgKzI2MzMsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBI
aXN0b3J5SXRlbUlEQ29uZnVzaW9uCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3Lmdvb2dsZS5jb20vbWFp
bi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIGdvb2dsZVBJRCA9IFt3ZWJW
aWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0yNjQyLDE0ICsyNjQyLDE0IEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIEhpc3RvcnlJdGVtSURDb25mdXNpb24KIAogICAgIFt3ZWJWaWV3IGdvQmFj
a107CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9F
UShhcHBsZVBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CiAKICAgICBbd2Vi
VmlldyBnb0JhY2tdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAg
ICBFWFBFQ1RfRVEod2Via2l0UElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsK
QEAgLTI2ODIsNyArMjY4Miw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEdvVG9TZWNvbmRJdGVtSW5C
YWNrSGkKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4x
Lmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gd2Via2l0UElEID0gW3dlYlZp
ZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTI2OTAsNyArMjY5MCw3IEBAIFRFU1QoUHJv
Y2Vzc1N3YXAsIEdvVG9TZWNvbmRJdGVtSW5CYWNrSGkKICAgICByZXF1ZXN0ID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Vi
a2l0Lm9yZy9tYWluMi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3Rd
OwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEo
d2Via2l0UElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKQEAgLTI2OTgsMjEg
KzI2OTgsMjEgQEAgVEVTVChQcm9jZXNzU3dhcCwgR29Ub1NlY29uZEl0ZW1JbkJhY2tIaQogICAg
IHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7
CiAKICAgICBhdXRvIGFwcGxlUElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsK
ICAgICBFWFBFQ1RfTkUod2Via2l0UElELCBhcHBsZVBJRCk7CiAKICAgICBbd2ViVmlldyBnb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbTp3ZWJWaWV3LmdldCgpLmJhY2tGb3J3YXJkTGlzdC5iYWNrTGlz
dFswXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1Rf
RVEod2Via2l0UElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKICAgICBFWFBF
Q1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCIsIFtbd2ViVmll
dyBVUkxdIGFic29sdXRlU3RyaW5nXSk7CiAKICAgICBbd2ViVmlldyBnb1RvQmFja0ZvcndhcmRM
aXN0SXRlbTp3ZWJWaWV3LmdldCgpLmJhY2tGb3J3YXJkTGlzdC5mb3J3YXJkTGlzdFsxXV07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEoYXBwbGVQ
SUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwpAQCAtMjc0Miw3ICsyNzQyLDcg
QEAgVEVTVChQcm9jZXNzU3dhcCwgUHJpdmF0ZUFuZFJlZ3VsYXJTZXNzaQogICAgIE5TVVJMUmVx
dWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJwc29uOi8vd3d3Lmdvb2dsZS5jb20vbWFpbi5odG1sIl1dOwogICAgIFtyZWd1
bGFyV2ViVmlldzEgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKIAogICAgIFtyZWd1bGFyV2ViVmlldzEgX2Nsb3NlXTsKQEAgLTI3NTQs
NyArMjc1NCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFByaXZhdGVBbmRSZWd1bGFyU2Vzc2kKICAg
ICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3ByaXZhdGVX
ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25l
ID0gZmFsc2U7CiAKICAgICBhdXRvIHByaXZhdGVTZXNzaW9uV2Via2l0UElEID0gW3ByaXZhdGVX
ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC0yNzYyLDcgKzI3NjIsNyBAQCBURVNU
KFByb2Nlc3NTd2FwLCBQcml2YXRlQW5kUmVndWxhclNlc3NpCiAgICAgcmVxdWVzdCA9IFtOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3
LmFwcGxlLmNvbS9tYWluLmh0bWwiXV07CiAgICAgW3ByaXZhdGVXZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBh
dXRvIHByaXZhdGVTZXNzaW9uQXBwbGVQSUQgPSBbcHJpdmF0ZVdlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXTsKQEAgLTI3NzcsNyArMjc3Nyw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFByaXZh
dGVBbmRSZWd1bGFyU2Vzc2kKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuZ29vZ2xlLmNvbS9tYWluLmh0
bWwiXV07CiAgICAgW3JlZ3VsYXJXZWJWaWV3MiBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byByZWd1bGFyU2Vzc2lv
bkdvb2dsZVBJRCA9IFtyZWd1bGFyV2ViVmlldzIgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAg
LTI3ODUsNyArMjc4NSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFByaXZhdGVBbmRSZWd1bGFyU2Vz
c2kKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3Jl
Z3VsYXJXZWJWaWV3MiBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byByZWd1bGFyU2Vzc2lvbldlYmtpdFBJRCA9IFty
ZWd1bGFyV2ViVmlldzIgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTI4NDQsNyArMjg0NCw3
IEBAIHZvaWQgdGVzdFJldXNlU3VzcGVuZGVkUHJvY2Vzc0ZvclJlZ3VsYXIKICAgICBOU1VSTFJl
cXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxX
aXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwiXV07CiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAogICAgIGF1dG8gd2Via2l0UElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXTsKQEAgLTI4NTIsNyArMjg1Miw3IEBAIHZvaWQgdGVzdFJldXNlU3VzcGVuZGVkUHJv
Y2Vzc0ZvclJlZ3VsYXIKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJd
XTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBhcHBsZVBJRCA9IFt3ZWJWaWV3IF93ZWJQ
cm9jZXNzSWRlbnRpZmllcl07CkBAIC0yODYxLDcgKzI4NjEsNyBAQCB2b2lkIHRlc3RSZXVzZVN1
c3BlbmRlZFByb2Nlc3NGb3JSZWd1bGFyCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcv
bWFpbjIuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0VRKHdlYmtpdFBJ
RCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CkBAIC0yOTIzLDcgKzI5MjMsNyBA
QCBURVNUKFByb2Nlc3NTd2FwLCBNYWluRnJhbWVzT25seSkKICAgICBOU1VSTFJlcXVlc3QgKnJl
cXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2
ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2Up
OwogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0VRKDF1LCBzZWVu
UElEcy5zaXplKCkpOwpAQCAtMjk1Niw3ICsyOTU2LDcgQEAgc3RhdGljIHVuc2lnbmVkIHdhaXRV
bnRpbENsaWVudFdpZHRoSXMoVwogICAgICAgICAgICAgY2xpZW50V2lkdGggPSBbcmVzdWx0IGlu
dGVnZXJWYWx1ZV07CiAgICAgICAgICAgICBkb25lID0gdHJ1ZTsKICAgICAgICAgfV07Ci0gICAg
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogICAgICAgICBkb25lID0gZmFsc2U7CiAgICAgICAgIC0tdGlt
ZW91dDsKICAgICB9IHdoaWxlIChjbGllbnRXaWR0aCAhPSBleHBlY3RlZENsaWVudFdpZHRoICYm
IHRpbWVvdXQgPj0gMCk7CkBAIC0yOTg4LDcgKzI5ODgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBQ
YWdlWm9vbUxldmVsQWZ0ZXJTd2FwCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cu
d2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVz
dF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIHVuc2lnbmVk
IGNsaWVudFdpZHRoID0gd2FpdFVudGlsQ2xpZW50V2lkdGhJcyh3ZWJWaWV3LmdldCgpLCA0MDAp
OwpAQCAtMjk5Nyw3ICsyOTk3LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUGFnZVpvb21MZXZlbEFm
dGVyU3dhcAogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwogICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiAKICAgICBjbGllbnRXaWR0aCA9IHdhaXRVbnRpbENsaWVudFdpZHRoSXMo
d2ViVmlldy5nZXQoKSwgNDAwKTsKQEAgLTMwMDYsNyArMzAwNiw3IEBAIFRFU1QoUHJvY2Vzc1N3
YXAsIFBhZ2Vab29tTGV2ZWxBZnRlclN3YXAKICAgICAvLyBLaWxsIHRoZSBXZWJQcm9jZXNzLCB0
aGUgcGFnZSBzaG91bGQgcmVsb2FkIGF1dG9tYXRpY2FsbHkgYW5kIHRoZSBwYWdlIHpvb20gbGV2
ZWwgc2hvdWxkIGJlIG1haW50YWluZWQuCiAgICAga2lsbChbd2ViVmlldyBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdLCA5KTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAg
ICAgY2xpZW50V2lkdGggPSB3YWl0VW50aWxDbGllbnRXaWR0aElzKHdlYlZpZXcuZ2V0KCksIDQw
MCk7CkBAIC0zMDUyLDcgKzMwNTIsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUNyb3Nz
U2l0ZUJlZm9yCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9GQUxTRShmYWlsZWQp
OwpAQCAtMzA3OSw3ICszMDc5LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgRG9TYW1lU2l0ZU5hdmln
YXRpb25BZgogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFp
bjEuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byB3ZWJraXRQSUQgPSBbd2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtMzA5NCw3ICszMDk0LDcgQEAgVEVTVChQ
cm9jZXNzU3dhcCwgRG9TYW1lU2l0ZU5hdmlnYXRpb25BZgogICAgIHJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5h
cHBsZS5jb20vbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3Rd
OwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfV0tf
U1RSRVEoQCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjIuaHRtbCIsIFtbd2ViVmlldyBVUkxd
IGFic29sdXRlU3RyaW5nXSk7CkBAIC0zMTIxLDMxICszMTIxLDMxIEBAIFRFU1QoUHJvY2Vzc1N3
YXAsIFN1c3BlbmRlZFBhZ2VMaW1pdCkKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3
dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgcmVxdWVz
dCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJw
c29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAg
IHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAicHNvbjovL3d3dy5nb29nbGUuY29tL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNl
OwogCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmJpbmcuY29tL21haW4uaHRtbCJdXTsKICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LnlhaG9vLmNvbS9tYWluLmh0bWwiXV07CiAg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKIAogICAgIC8vIE5hdmlnYXRpb25zIHRvIDUgZGlmZmVyZW50IGRvbWFp
bnMsIHdlIGV4cGVjdCB0byBoYXZlIHNlZW4gNSBkaWZmZXJlbnQgUElEcwpAQCAtMzE4NCw3ICsz
MTg0LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUGFnZUNhY2hlMSkKICAgICBOU1VSTFJlcXVlc3Qg
KnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKIAogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNl
OwogCiAgICAgYXV0byBwaWRBZnRlckxvYWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlm
aWVyXTsKQEAgLTMxOTQsNyArMzE5NCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFBhZ2VDYWNoZTEp
CiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiXV07CiAKICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBm
YWxzZTsKIAogICAgIGF1dG8gcGlkQWZ0ZXJMb2FkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRl
bnRpZmllcl07CkBAIC0zMjAzLDkgKzMyMDMsOSBAQCBURVNUKFByb2Nlc3NTd2FwLCBQYWdlQ2Fj
aGUxKQogICAgIEVYUEVDVF9ORShwaWRBZnRlckxvYWQxLCBwaWRBZnRlckxvYWQyKTsKIAogICAg
IFt3ZWJWaWV3IGdvQmFja107Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7
CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25l
ID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZEFmdGVyTG9hZDMgPSBbd2ViVmlldyBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdOwpAQCAtMzIxNyw5ICszMjE3LDkgQEAgVEVTVChQcm9jZXNzU3dhcCwgUGFn
ZUNhY2hlMSkKICAgICBFWFBFQ1RfRVEoMnUsIHNlZW5QSURzLnNpemUoKSk7CiAKICAgICBbd2Vi
VmlldyBnb0ZvcndhcmRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRN
ZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwog
ICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogCiAgICAgYXV0byBwaWRBZnRlckxvYWQ0ID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXTsKQEAgLTMyNTMsNyArMzI1Myw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFBhZ2VD
YWNoZVdoZW5OYXZpZ2F0aW4KICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJr
aXQub3JnL21haW4uaHRtbCJdXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3Rd
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWRBZnRl
ckxvYWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTMyNjMsNyArMzI2
Myw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFBhZ2VDYWNoZVdoZW5OYXZpZ2F0aW4KICAgICByZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAg
ICAgYXV0byBwaWRBZnRlckxvYWQyID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsK
QEAgLTMyNzIsOSArMzI3Miw5IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFBhZ2VDYWNoZVdoZW5OYXZp
Z2F0aW4KICAgICBFWFBFQ1RfTkUocGlkQWZ0ZXJMb2FkMSwgcGlkQWZ0ZXJMb2FkMik7CiAKICAg
ICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJoaXN0b3J5LmJhY2soKSIgY29tcGxldGlv
bkhhbmRsZXI6IG5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZE1l
c3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7CiAg
ICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0g
ZmFsc2U7CiAKICAgICBhdXRvIHBpZEFmdGVyTG9hZDMgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdOwpAQCAtMzI4Niw5ICszMjg2LDkgQEAgVEVTVChQcm9jZXNzU3dhcCwgUGFnZUNh
Y2hlV2hlbk5hdmlnYXRpbgogICAgIEVYUEVDVF9FUSgydSwgc2VlblBJRHMuc2l6ZSgpKTsKIAog
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImhpc3RvcnkuZm9yd2FyZCgpIiBjb21w
bGV0aW9uSGFuZGxlcjogbmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2Vp
dmVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRNZXNzYWdl
KTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRv
bmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkQWZ0ZXJMb2FkNCA9IFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CkBAIC0zMzI2LDcgKzMzMjYsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBV
c2VXZWJQcm9jZXNzQ2FjaGVBZnRlCiAgICAgICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogCiAgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnJlcXVlc3RdOwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICAgICAgZG9uZSA9IGZh
bHNlOwogICAgICAgICB3ZWJraXRQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJd
OwogICAgIH0KQEAgLTMzMzgsNyArMzMzOCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFVzZVdlYlBy
b2Nlc3NDYWNoZUFmdGUKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxl
LmNvbS9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgYXV0byBhcHBsZVBJRCA9IFt3
ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAKQEAgLTMzNTIsMTQgKzMzNTIsMTQgQEAg
VEVTVChQcm9jZXNzU3dhcCwgVXNlV2ViUHJvY2Vzc0NhY2hlQWZ0ZQogICAgIH1dOwogCiAgICAg
a2lsbChhcHBsZVBJRCwgOSk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZ3ZWJQcm9j
ZXNzVGVybWluYXRlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwod2ViUHJvY2Vzc1Rl
cm1pbmF0ZWQpOwogICAgIHdlYlByb2Nlc3NUZXJtaW5hdGVkID0gZmFsc2U7CiAKICAgICBFWFBF
Q1RfRVEoMCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CiAKICAgICByZXF1ZXN0
ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBz
b246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBF
WFBFQ1RfRVEod2Via2l0UElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKQEAg
LTMzOTEsNyArMzM5MSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFVzZVdlYlByb2Nlc3NDYWNoZUZv
ckwKIAogICAgICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21h
aW4xLmh0bWwiXV07CiAgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAg
ICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgICAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICAgICAgZG9uZSA9IGZhbHNlOwogICAgICAgICB3ZWJr
aXRQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAgICAgICBFWFBFQ1Rf
TkUoMCwgd2Via2l0UElEKTsKQEAgLTM0MDgsNyArMzQwOCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IFVzZVdlYlByb2Nlc3NDYWNoZUZvckwKIAogICAgICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3Qg
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNv
bjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiXV07CiAgICAgICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICAgICAgZG9uZSA9
IGZhbHNlOwogCiAgICAgICAgIEVYUEVDVF9FUSh3ZWJraXRQSUQsIFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl0pOwpAQCAtMzQyNiw3ICszNDI2LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwg
VXNlV2ViUHJvY2Vzc0NhY2hlRm9yTAogCiAgICAgICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9
IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29u
Oi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiXV07CiAgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnJlcXVlc3RdOwotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICAgICAgZG9uZSA9IGZh
bHNlOwogCiAgICAgICAgIEVYUEVDVF9ORSh3ZWJraXRQSUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNz
SWRlbnRpZmllcl0pOwpAQCAtMzQ1Myw3ICszNDUzLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgTnVt
YmVyT2ZQcmV3YXJtZWRQcm9jZQogCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cu
d2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVz
dF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEo
MnUsIFtwcm9jZXNzUG9vbCBfd2ViUHJvY2Vzc0NvdW50XSk7CkBAIC0zNDYyLDcgKzM0NjIsNyBA
QCBURVNUKFByb2Nlc3NTd2FwLCBOdW1iZXJPZlByZXdhcm1lZFByb2NlCiAKICAgICByZXF1ZXN0
ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBz
b246Ly93d3cuZ29vZ2xlLmNvbS9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBF
WFBFQ1RfRVEoM3UsIFtwcm9jZXNzUG9vbCBfd2ViUHJvY2Vzc0NvdW50XSk7CkBAIC0zNDk3LDcg
KzM0OTcsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOdW1iZXJPZkNhY2hlZFByb2Nlc3NlCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1heFN1c3BlbmRlZFBhZ2VDb3VudCArIDE7IGkrKykg
ewogICAgICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOm1ha2VTdHJpbmcoInBzb246Ly93d3cuZG9tYWlu
LSIsIGksICIuY29tIildXTsKICAgICAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgICAgICBkb25lID0gZmFsc2U7CiAKICAgICAg
ICAgRVhQRUNUX0VRKGkgKyAxLCBbcHJvY2Vzc1Bvb2wgX3dlYlByb2Nlc3NDb3VudF0pOwpAQCAt
MzUwNyw3ICszNTA3LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgTnVtYmVyT2ZDYWNoZWRQcm9jZXNz
ZQogCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzptYWtlU3RyaW5nKCJwc29uOi8vd3d3LmRvbWFpbi0i
LCBtYXhTdXNwZW5kZWRQYWdlQ291bnQgKyAxLCAiLmNvbSIpXV07CiAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICBpbnQgdGltZW91dCA9IDEwMDsKQEAgLTM1MjQsNyArMzUyNCw3IEBAIFRFU1QoUHJvY2Vz
c1N3YXAsIE51bWJlck9mQ2FjaGVkUHJvY2Vzc2UKICAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBk
ZWZhdWx0RGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIF9h
bGxXZWJzaXRlRGF0YVR5cGVzSW5jbHVkaW5nUHJpdmF0ZV0gbW9kaWZpZWRTaW5jZTpbTlNEYXRl
IGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgewogICAgICAgICByZWFkeVRvQ29u
dGludWUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVh
ZHlUb0NvbnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRvQ29udGlu
dWUpOwogCiAgICAgdGltZW91dCA9IDEwMDsKICAgICB3aGlsZSAoW3Byb2Nlc3NQb29sIF93ZWJQ
cm9jZXNzQ291bnRdID4gMSAmJiB0aW1lb3V0ID4gMCkgewpAQCAtMzU3NywyOSArMzU3NywyOSBA
QCBURVNUKFByb2Nlc3NTd2FwLCBQYWdlU2hvd0hpZGUpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAKICAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVk
TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRNZXNzYWdlKTsK
ICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwog
CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KHJlY2VpdmVkTWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBbd2ViVmlldyBnb0JhY2tdOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkTWVzc2FnZSA9
IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgW3dlYlZp
ZXcgZ29Gb3J3YXJkXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVz
c2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRNZXNzYWdlKTsKICAg
ICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBm
YWxzZTsKIAogICAgIHdoaWxlIChbcmVjZWl2ZWRNZXNzYWdlcyBjb3VudF0gPCA3KQpAQCAtMzY2
OSwyOSArMzY2OSwyOSBAQCBURVNUKFByb2Nlc3NTd2FwLCBMb2FkVW5sb2FkKQogICAgIE5TVVJM
UmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogCiAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2Vp
dmVkTWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21h
aW4uaHRtbCJdXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZh
bHNlOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgW3dlYlZpZXcg
Z29CYWNrXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRNZXNzYWdlKTsKICAgICByZWNl
aXZlZE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsK
IAogICAgIFt3ZWJWaWV3IGdvRm9yd2FyZF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVk
TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiAKICAgICB3aGlsZSAoW3JlY2VpdmVkTWVzc2FnZXMgY291bnRd
IDwgNykKQEAgLTM3NDEsNyArMzc0MSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFdlYkluc3BlY3Rv
cikKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0
bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQ
cm9jZXNzSWRlbnRpZmllcl07CkBAIC0zNzUxLDcgKzM3NTEsNyBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBXZWJJbnNwZWN0b3IpCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluMi5odG1s
Il1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDIgPSBbd2ViVmlldyBfd2ViUHJv
Y2Vzc0lkZW50aWZpZXJdOwpAQCAtMzc2MSw3ICszNzYxLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwg
V2ViSW5zcGVjdG9yKQogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwi
XV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMyA9IFt3ZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CkBAIC0zODAzLDE0ICszODAzLDE0IEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IFNhbWVPcmlnaW5CbG9iTmF2aWdhdGkKICAgICBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzID0g
MDsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJd
XV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHBpZDEg
PSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9UUlVFKCEhcGlk
MSk7CiAKICAgICBbd2ViVmlldyBfZXZhbHVhdGVKYXZhU2NyaXB0V2l0aG91dFVzZXJHZXN0dXJl
OkAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpbmsnKS5jbGljaygpIiBjb21wbGV0aW9uSGFu
ZGxlcjogbmlsXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1
dG8gcGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAgICAgRVhQRUNUX1RS
VUUoISFwaWQyKTsKQEAgLTM4MzYsNyArMzgzNiw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3Nz
T3JpZ2luQmxvYk5hdmlnYXQKIAogICAgIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMgPSAwOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dXTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHBpZDEgPSBbd2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9UUlVFKCEhcGlkMSk7CkBA
IC0zODQ3LDEwICszODQ3LDEwIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzT3JpZ2luQmxvYk5h
dmlnYXQKICAgICAgICAgYmxvYlVSTCA9IFN0cmluZyhbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpAIiVAIiwgcmVzdWx0XSk7CiAgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRydWU7
CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5pbmdT
Y3JpcHQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkUnVubmluZ1Njcmlw
dCk7CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1s
Il1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHBpZDIg
PSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9UUlVFKCEhcGlk
Mik7CkBAIC0zODYwLDEzICszODYwLDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyb3NzT3JpZ2lu
QmxvYk5hdmlnYXQKICAgICBbd2ViVmlldyBfZXZhbHVhdGVKYXZhU2NyaXB0V2l0aG91dFVzZXJH
ZXN0dXJlOihOU1N0cmluZyAqKXNjcmlwdCBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1
bHQsIE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAgIGZpbmlzaGVkUnVubmluZ1NjcmlwdCA9IHRy
dWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFJ1bm5p
bmdTY3JpcHQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkUnVubmluZ1Nj
cmlwdCk7CiAKICAgICAvLyBUaGlzIG5hdmlnYXRpb24gd2lsbCBmYWlsLgogICAgIFt3ZWJWaWV3
IF9ldmFsdWF0ZUphdmFTY3JpcHRXaXRob3V0VXNlckdlc3R1cmU6QCJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnbGluaycpLmNsaWNrKCkiIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3Vs
dCwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgYXV0byBwaWQzID0gW3dlYlZpZXcg
X3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKICAgICBFWFBFQ1RfVFJVRSghIXBpZDMpOwpAQCAtMzg5
NCwxMyArMzg5NCwxMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZVRvQWJvdXRCbGFuaykK
IAogICAgIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMgPSAwOwogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwog
ICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdOwogICAgIEVYUEVDVF9UUlVFKCEhcGlkMSk7CiAKICAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAiYWJvdXQ6YmxhbmsiXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwog
ICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAgICAgRVhQ
RUNUX1RSVUUoISFwaWQyKTsKQEAgLTM5MjcsMTMgKzM5MjcsMTMgQEAgVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGVUb0RhdGFVUkwpCiAKICAgICBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzID0g
MDsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJd
XV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgYXV0byBwaWQxID0g
W3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKICAgICBFWFBFQ1RfVFJVRSghIXBpZDEp
OwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImRhdGE6dGV4dC9wbGFpbixQQVNTIl1dXTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHBpZDIgPSBbd2ViVmlldyBf
d2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9UUlVFKCEhcGlkMik7CkBAIC0zOTU5
LDcgKzM5NTksNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBQcm9jZXNzUmV1c2UpCiAgICAgTlNVUkxS
ZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIl1dOwogICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25l
ID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZp
ZXJdOwpAQCAtMzk2Nyw3ICszOTY3LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUHJvY2Vzc1JldXNl
KQogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxX
aXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwogICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0g
ZmFsc2U7CiAKICAgICBhdXRvIHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJd
OwpAQCAtMzk3NSw3ICszOTc1LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUHJvY2Vzc1JldXNlKQog
ICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4yLmh0bWwiXV07CiAgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBm
YWxzZTsKIAogICAgIGF1dG8gcGlkMyA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07
CkBAIC00MDA0LDcgKzQwMDQsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBQcm9jZXNzUmV1c2VlVExE
UGx1czIpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cxLndlYmtpdC5vcmcvbWFp
bjEuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQxID0gW3dlYlZpZXcg
X3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTQwMTIsNyArNDAxMiw3IEBAIFRFU1QoUHJvY2Vz
c1N3YXAsIFByb2Nlc3NSZXVzZWVUTERQbHVzMikKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUu
Y29tL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQyID0gW3dl
YlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTQwMjAsNyArNDAyMCw3IEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIFByb2Nlc3NSZXVzZWVUTERQbHVzMikKICAgICByZXF1ZXN0ID0gW05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cy
LndlYmtpdC5vcmcvbWFpbjIuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBw
aWQzID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTQwNDcsMTMgKzQwNDcs
MTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ29uY3VycmVudEhpc3RvcnlOYXZpZwogICAgIFt3ZWJW
aWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOwogCiAg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byB3ZWJraXRQSUQg
PSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogCiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIGFwcGxlUElEID0gW3dlYlZpZXcgX3dlYlByb2Nl
c3NJZGVudGlmaWVyXTsKQEAgLTQwNjEsNyArNDA2MSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENv
bmN1cnJlbnRIaXN0b3J5TmF2aWcKICAgICBFWFBFQ1RfTkUod2Via2l0UElELCBhcHBsZVBJRCk7
CiAKICAgICBbd2ViVmlldyBnb0JhY2tdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZh
bHNlOwogCiAgICAgRVhQRUNUX0VRKHdlYmtpdFBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXSk7CkBAIC00MDc3LDcgKzQwNzcsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDb25jdXJy
ZW50SGlzdG9yeU5hdmlnCiAgICAgW3dlYlZpZXcgZ29Gb3J3YXJkXTsKICAgICBbd2ViVmlldyBn
b0ZvcndhcmRdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBF
WFBFQ1RfRVEoYXBwbGVQSUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwpAQCAt
NDA4OSw3ICs0MDg5LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ29uY3VycmVudEhpc3RvcnlOYXZp
ZwogICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwi
LCBbYmFja0ZvcndhcmRMaXN0LmJhY2tJdGVtLlVSTCBhYnNvbHV0ZVN0cmluZ10pOwogCiAgICAg
W3dlYlZpZXcgZ29CYWNrXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAog
ICAgIEVYUEVDVF9ORShhcHBsZVBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7
CkBAIC00MTE5LDcgKzQxMTksNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZVRvSW52YWxp
ZFVSTCkKIAogICAgIG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMgPSAwOwogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dXTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJv
Y2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9UUlVFKCEhcGlkMSk7CkBAIC00MTI5LDcgKzQx
MjksNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZVRvSW52YWxpZFVSTCkKICAgICBbd2Vi
VmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJsb2NhdGlvbi5ocmVmID0gJ2h0dHA6Ly9BPWElQj1i
JyIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKIAogICAgIGRpZFJlcG9uZFRvUG9saWN5RGVjaXNp
b25DYWxsID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRSZXBvbmRU
b1BvbGljeURlY2lzaW9uQ2FsbCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkUmVw
b25kVG9Qb2xpY3lEZWNpc2lvbkNhbGwpOwogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3Bp
blJ1bkxvb3AoMSk7CiAKQEAgLTQxNzUsMTUgKzQxNzUsMTUgQEAgVEVTVChQcm9jZXNzU3dhcCwg
TmF2aWdhdGVUb0RhdGFVUkxUaGVuQgogCiAgICAgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyA9
IDA7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwi
XV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gcGlkMSA9
IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50
aWZpZXJdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgYXV0byBw
aWQzID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKIApAQCAtNDIwOSwxOSArNDIw
OSwxOSBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUNyb3NzU2l0ZVdpdGhQCiAgICAgW3dl
YlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07CiAK
ICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXV07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgYXV0byB3ZWJraXRQSUQg
PSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogCiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAgICAgYXV0byBhcHBsZVBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNz
SWRlbnRpZmllcl07CiAKICAgICBFWFBFQ1RfTkUod2Via2l0UElELCBhcHBsZVBJRCk7CiAKICAg
ICBbd2ViVmlldyBnb0JhY2tdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwog
CiAgICAgRVhQRUNUX05FKGFwcGxlUElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJd
KTsKQEAgLTQyMzksMTMgKzQyMzksMTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgQVBJQ29udHJvbGxl
ZFByb2Nlc3NTdwogCiAgICAgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyA9IDA7CiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy8xIl1dXTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdOwogCiAgICAgLy8gTmF2aWdhdGluZyBmcm9tIHRoZSBhYm92ZSBVUkwgdG8g
dGhpcyBVUkwgbm9ybWFsbHkgc2hvdWxkIG5vdCBwcm9jZXNzIHN3YXAuCiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy8yIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50
aWZpZXJdOwogCkBAIC00MjU4LDcgKzQyNTgsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBBUElDb250
cm9sbGVkUHJvY2Vzc1N3CiAgICAgICAgIGRlY2lzaW9uSGFuZGxlcihfV0tOYXZpZ2F0aW9uQWN0
aW9uUG9saWN5QWxsb3dJbk5ld1Byb2Nlc3MpOwogICAgIH07CiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InBzb246Ly93d3cud2ViaXQub3JnLzMiXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogICAgIGF1dG8gcGlkMyA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07
CiAKQEAgLTQzMDIsMTcgKzQzMDIsMTcgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVUb0Ny
b3NzU2l0ZVRoZQogCiAgICAgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyA9IDA7CiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV1dOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gd2Via2l0UElEID0gW3dlYlZp
ZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogICAgIGF1dG8gYXBwbGVQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZp
ZXJdOwogICAgIEVYUEVDVF9ORSh3ZWJraXRQSUQsIGFwcGxlUElEKTsgLy8gU2hvdWxkIGhhdmUg
cHJvY2Vzcy1zd2FwcGVkIHdoZW4gZ29pbmcgZnJvbSB3ZWJraXQub3JnIHRvIGFwcGxlLmNvbS4K
IAogICAgIC8vIFBhZ2Ugbm93IGNhbGxzIGhpc3RvcnkuYmFjaygpIHRvIG5hdmlnYXRlIGJhY2sg
dG8gd2Via2l0Lm9yZy4KLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAg
IEVYUEVDVF9FUSgzLCBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzKTsKQEAgLTQzNDcsMzggKzQz
NDcsMzggQEAgVEVTVChQcm9jZXNzU3dhcCwgU3dhcE9uRm9ybVN1Ym1pc3Npb24pCiAgICAgW3dl
YlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07CiAK
ICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXV07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgYXV0byB3ZWJraXRQSUQg
PSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9XS19TVFJFUShA
InBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0
ZVN0cmluZ10pOwogCiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic3VibWl0QnV0
dG9uLmNsaWNrKCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAgICAgYXV0byBhcHBsZVBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNz
SWRlbnRpZmllcl07CiAgICAgRVhQRUNUX05FKHdlYmtpdFBJRCwgYXBwbGVQSUQpOwogICAgIEVY
UEVDVF9XS19TVFJFUShAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCIsIFtbd2ViVmll
dyBVUkxdIGFic29sdXRlU3RyaW5nXSk7CiAKICAgICBbd2ViVmlldyByZWxvYWRdOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIEVYUEVDVF9FUShhcHBsZVBJRCwgW3dl
YlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNv
bjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJp
bmddKTsKIAogICAgIFt3ZWJWaWV3IGdvQmFja107Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25l
ID0gZmFsc2U7CiAgICAgRVhQRUNUX0VRKHdlYmtpdFBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQub3Jn
L21haW4uaHRtbCIsIFtbd2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSk7CiAKICAgICBbd2Vi
VmlldyBnb0ZvcndhcmRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAg
IEVYUEVDVF9FUShhcHBsZVBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CiAg
ICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgW1t3
ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKIAogICAgIFt3ZWJWaWV3IGdvQmFja107Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1J
TFkpCiAgICAgLy8gVGhpcyBpcyBub3QgZ3VhcmFudGVlZCBvbiBpT1MgYmVjYXVzZSB0aGUgV2Vi
UHJvY2VzcyBjYWNoZSBpcyBkaXNhYmxlZCBvbiBkZXZpY2VzIHdpdGggdG9vIGxpdHRsZSBSQU0u
CkBAIC00NDA2LDcgKzQ0MDYsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDbG9zZVBhZ2VBZnRlckNy
b3NzU2l0CiAgICAgW3dlYlZpZXcgY29uZmlndXJhdGlvbl0ucHJlZmVyZW5jZXMuX3NhZmVCcm93
c2luZ0VuYWJsZWQgPSBOTzsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtp
dC5vcmcvbWFpbi5odG1sIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsK
IAogICAgIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkID0gZmFsc2U7CkBAIC00NDE5LDcgKzQ0MTks
NyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDbG9zZVBhZ2VBZnRlckNyb3NzU2l0CiAgICAgICAgIGRv
bmUgPSB0cnVlOwogICAgIH07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsK
IAogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuNSk7CkBAIC00NDY0LDcgKzQ0NjQs
NyBAQCBURVNUKFByb2Nlc3NTd2FwLCBMb2FkaW5nU3RhdGVBZnRlclBvbGljCiAgICAgW3dlYlZp
ZXcgY29uZmlndXJhdGlvbl0ucHJlZmVyZW5jZXMuX3NhZmVCcm93c2luZ0VuYWJsZWQgPSBOTzsK
IAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1d
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gbG9hZE9i
c2VydmVyID0gYWRvcHROUyhbW1BTT05Mb2FkaW5nT2JzZXJ2ZXIgYWxsb2NdIGluaXRdKTsKQEAg
LTQ0OTMsNyArNDQ5Myw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIExvYWRpbmdTdGF0ZUFmdGVyUG9s
aWMKIAogICAgIEVYUEVDVF9FUSgxVSwgbG9hZGluZ1N0YXRlQ2hhbmdlcy5zaXplKCkpOwogCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRTdGFydFByb3Zpc2lvbmFsTG9hZCk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkU3RhcnRQcm92aXNpb25hbExvYWQpOwogICAg
IGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEoMVUsIGxv
YWRpbmdTdGF0ZUNoYW5nZXMuc2l6ZSgpKTsKQEAgLTQ1MDIsNyArNDUwMiw3IEBAIFRFU1QoUHJv
Y2Vzc1N3YXAsIExvYWRpbmdTdGF0ZUFmdGVyUG9saWMKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJw
c29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0
cmluZ10pOwogICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGlzTG9hZGluZ10pOwogCi0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29u
Oi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmlu
Z10pOwpAQCAtNDU0MiwxNCArNDU0MiwxNCBAQCBURVNUKFByb2Nlc3NTd2FwLCBPcGVuZXJMaW5r
QWZ0ZXJBUElDb250CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgp
XTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRt
bCJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgYXV0byBwaWQx
ID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZGlkQ3JlYXRlV2ViVmlldyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZGlkQ3JlYXRlV2ViVmlldyk7CiAgICAgZGlkQ3JlYXRlV2ViVmlldyA9IGZhbHNlOwogCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEocGlkMSwg
W2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwpAQCAtNDU1OSw3ICs0NTU5
LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udAogICAgICAgICBF
WFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCIsIGhhc09w
ZW5lcik7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogCiAgICAgLy8gV2UgZm9yY2UgYSBwcm9jZXMtc3dhcCB2aWEgY2xp
ZW50IEFQSS4KQEAgLTQ1NjksNyArNDU2OSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE9wZW5lckxp
bmtBZnRlckFQSUNvbnQKIAogICAgIC8vIE5hdmlnYXRpbmcgZnJvbSB0aGUgYWJvdmUgVVJMIHRv
IHRoaXMgVVJMIG5vcm1hbGx5IHNob3VsZCBub3QgcHJvY2VzcyBzd2FwLgogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjMuaHRtbCJdXV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDIgPSBbd2ViVmlldyBfd2Vi
UHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtNDU4Niw3ICs0NTg2LDcgQEAgVEVTVChQcm9jZXNzU3dh
cCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udAogICAgICAgICAgICAgaGFzT3BlbmVyID0gW2hhc09w
ZW5lclN0cmluZyBpc0VxdWFsVG9TdHJpbmc6QCJ0cnVlIl07CiAgICAgICAgICAgICBkb25lID0g
dHJ1ZTsKICAgICAgICAgfV07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgICAgICBkb25l
ID0gZmFsc2U7CiAgICAgfSB3aGlsZSAoaGFzT3BlbmVyICYmICgtLXRpbWVvdXQpKTsKICAgICBF
WFBFQ1RfRkFMU0UoaGFzT3BlbmVyKTsKQEAgLTQ1OTUsNyArNDU5NSw3IEBAIFRFU1QoUHJvY2Vz
c1N3YXAsIE9wZW5lckxpbmtBZnRlckFQSUNvbnQKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAi
dHJ1ZSIsIHNhdmVkT3BlbmVySXNDbG9zZWQpOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIH0KIApAQCAtNDYxNSwxNCAr
NDYxNSwxNCBAQCBURVNUKFByb2Nlc3NTd2FwLCBPcGVuZXJMaW5rQWZ0ZXJBUElDb250CiAgICAg
W3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKIAogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgYXV0byBwaWQxID0gW3dlYlZpZXcgX3dlYlBy
b2Nlc3NJZGVudGlmaWVyXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQ3Jl
YXRlV2ViVmlldyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkQ3JlYXRlV2ViVmll
dyk7CiAgICAgZGlkQ3JlYXRlV2ViVmlldyA9IGZhbHNlOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEocGlkMSwgW2NyZWF0ZWRXZWJWaWV3IF93
ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwpAQCAtNDYzMiw3ICs0NjMyLDcgQEAgVEVTVChQcm9jZXNz
U3dhcCwgT3BlbmVyTGlua0FmdGVyQVBJQ29udAogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJw
c29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCIsIGhhc09wZW5lcik7CiAgICAgICAgIGRv
bmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwog
CiAgICAgLy8gV2UgZm9yY2UgYSBwcm9jZXMtc3dhcCB2aWEgY2xpZW50IEFQSS4KQEAgLTQ2NDIs
NyArNDY0Miw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE9wZW5lckxpbmtBZnRlckFQSUNvbnQKIAog
ICAgIC8vIE5hdmlnYXRpbmcgZnJvbSB0aGUgYWJvdmUgVVJMIHRvIHRoaXMgVVJMIG5vcm1hbGx5
IHNob3VsZCBub3QgcHJvY2VzcyBzd2FwLgogICAgIFtjcmVhdGVkV2ViVmlldyBsb2FkUmVxdWVz
dDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNv
bjovL3d3dy53ZWJraXQub3JnL21haW4zLmh0bWwiXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQyID0gW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CkBAIC00NjUzLDcgKzQ2NTMsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBP
cGVuZXJMaW5rQWZ0ZXJBUElDb250CiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAImZhbHNlIiwg
aGFzT3BlbmVyKTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAKQEAgLTQ2NzgsNyArNDY3OCw3IEBAIHN0YXRpYyB2
b2lkIHJ1blByb2Nlc3NTd2FwRHVlVG9SZWxhdGVkV2UKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVl
c3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnJlbGF0ZWRWaWV3VVJMXTsKICAgICBb
d2ViVmlldzEgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRv
bmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3MSBfd2ViUHJvY2Vzc0lkZW50
aWZpZXJdOwpAQCAtNDY5Myw3ICs0NjkzLDcgQEAgc3RhdGljIHZvaWQgcnVuUHJvY2Vzc1N3YXBE
dWVUb1JlbGF0ZWRXZQogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OnRhcmdldFVSTF07CiAgICAgW3dlYlZpZXcyIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDIgPSBbd2ViVmll
dzIgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTQ3NDAsNyArNDc0MCw3IEBAIFRFU1QoUHJv
Y2Vzc1N3YXAsIFJlbGF0ZWRXZWJWaWV3QmVmb3JlV2UKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVl
c3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
cHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwiXV07CiAgICAgW3dlYlZpZXcxIGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICBhdXRvIHBpZDEgPSBbd2ViVmlldzEgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAgLTQ3
NDgsNyArNDc0OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFJlbGF0ZWRXZWJWaWV3QmVmb3JlV2UK
ICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIl1dOwogICAgIFt3ZWJW
aWV3MiBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogCiAgICAgYXV0byBwaWQyID0gW3dlYlZpZXcyIF93ZWJQcm9jZXNzSWRlbnRpZmll
cl07CkBAIC00Nzg5LDcgKzQ3ODksNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBSZWxvYWRSZWxhdGVk
V2ViVmlld0FmCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluMS5odG1sIl1dOwogICAgIFt3ZWJWaWV3MSBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQxID0gW3dlYlZp
ZXcxIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC00Nzk3LDcgKzQ3OTcsNyBAQCBURVNUKFBy
b2Nlc3NTd2FwLCBSZWxvYWRSZWxhdGVkV2ViVmlld0FmCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3Lndl
YmtpdC5vcmcvbWFpbjIuaHRtbCJdXTsKICAgICBbd2ViVmlldzIgbG9hZFJlcXVlc3Q6cmVxdWVz
dF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlk
MiA9IFt3ZWJWaWV3MiBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtNDgwOSwxMCArNDgwOSwx
MCBAQCBURVNUKFByb2Nlc3NTd2FwLCBSZWxvYWRSZWxhdGVkV2ViVmlld0FmCiAKICAgICBraWxs
KHBpZDEsIDkpOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDcmFzaCk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkQ3Jhc2gpOwogICAgIGRpZENyYXNoID0gZmFs
c2U7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIH0KIApAQCAtNDgzMyw3
ICs0ODMzLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgVGVybWluYXRlZFN1c3BlbmRlZFBhZwogICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXTsK
ICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQxID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXTsKQEAgLTQ4NDgsNyArNDg0OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFRlcm1p
bmF0ZWRTdXNwZW5kZWRQYWcKICAgICAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJdXTsKICAgICAgICAg
W3dlYlZpZXcyIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogICAgICAgICBkb25lID0gZmFsc2U7CiAKICAgICAgICAgYXV0byBwaWQyID0gW3dlYlZpZXcy
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC00ODU3LDcgKzQ4NTcsNyBAQCBURVNUKFByb2Nl
c3NTd2FwLCBUZXJtaW5hdGVkU3VzcGVuZGVkUGFnCiAgICAgICAgIHJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5n
b29nbGUuY29tL21haW4yLmh0bWwiXV07CiAgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJl
cXVlc3RdOwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgICAgICBkb25lID0gZmFsc2U7
CiAKICAgICAgICAgW3dlYlZpZXcyIF9raWxsV2ViQ29udGVudFByb2Nlc3NBbmRSZXNldFN0YXRl
XTsKQEAgLTQ4NzEsNyArNDg3MSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFRlcm1pbmF0ZWRTdXNw
ZW5kZWRQYWcKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4yLmh0bWwiXV07CiAg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkNCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRl
bnRpZmllcl07CkBAIC00ODk2LDEzICs0ODk2LDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmln
YXRlQmFja0FuZEZvcnRoKQogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtp
dC5vcmcvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICByZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93
d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byog
YmFja0ZvcndhcmRMaXN0ID0gW3dlYlZpZXcgYmFja0ZvcndhcmRMaXN0XTsKQEAgLTQ5MTIsNyAr
NDkxMiw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQmFja0FuZEZvcnRoKQogICAgIEVY
UEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiLCBbYmFja0Zv
cndhcmRMaXN0LmJhY2tJdGVtLlVSTCBhYnNvbHV0ZVN0cmluZ10pOwogCiAgICAgW3dlYlZpZXcg
Z29CYWNrXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVD
VF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiLCBbYmFja0Zvcndh
cmRMaXN0LmN1cnJlbnRJdGVtLlVSTCBhYnNvbHV0ZVN0cmluZ10pOwpAQCAtNDkyMSw3ICs0OTIx
LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVCYWNrQW5kRm9ydGgpCiAgICAgRVhQRUNU
X1dLX1NUUkVRKEAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgW2JhY2tGb3J3YXJk
TGlzdC5mb3J3YXJkSXRlbS5VUkwgYWJzb2x1dGVTdHJpbmddKTsKIAogICAgIFt3ZWJWaWV3IGdv
Rm9yd2FyZF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBF
Q1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwiLCBbYmFja0Zvcndh
cmRMaXN0LmN1cnJlbnRJdGVtLlVSTCBhYnNvbHV0ZVN0cmluZ10pOwpAQCAtNDk0OSw3ICs0OTQ5
LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgU3dhcE9uTG9hZEhUTUxTdHJpbmcpCiAgICAgTlNVUkxS
ZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmll
cl07CkBAIC00OTU3LDcgKzQ5NTcsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBTd2FwT25Mb2FkSFRN
TFN0cmluZykKICAgICBOU1N0cmluZyAqaHRtbFN0cmluZyA9IEAiPGh0bWw+PGJvZHk+c3Vic3Rp
dHV0ZURhdGE8L2JvZHk+PC9odG1sPiI7CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6aHRt
bFN0cmluZyBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL2V4YW1wbGUuY29t
Il1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBp
ZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtNDk2OSw3ICs0OTY5LDcg
QEAgVEVTVChQcm9jZXNzU3dhcCwgU3dhcE9uTG9hZEhUTUxTdHJpbmcpCiAgICAgICAgIEVYUEVD
VF9XS19TVFJFUShAInN1YnN0aXR1dGVEYXRhIiwgKE5TU3RyaW5nICopaW5uZXJUZXh0KTsKICAg
ICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0g
ZmFsc2U7CiB9CiAKQEAgLTQ5OTAsNTIgKzQ5OTAsNTIgQEAgVEVTVChQcm9jZXNzU3dhcCwgRXBo
ZW1lcmFsV2ViU3RvcmFnZSkKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVs
ZWdhdGUuZ2V0KCldOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93ZWJraXQub3JnLyJd
XV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKIAogICAgIGRvbmUgPSBmYWxzZTsKICAgICBbd2ViVmlldyBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2EnLCdiJyki
IGNvbXBsZXRpb25IYW5kbGVyOl4oaWQsIE5TRXJyb3IgKikgewogICAgICAgICBkb25lID0gdHJ1
ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgZG9uZSA9IGZhbHNlOwogICAgIFt3
ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVt
KCdiLCdhJykiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQsIE5TRXJyb3IgKikgewogICAgICAgICBk
b25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgZG9uZSA9IGZhbHNl
OwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vZXhhbXBsZS5jb20vIl1dXTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogCiAgICAgZG9uZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8v
d2Via2l0Lm9yZy8iXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBkb25lID0gZmFsc2U7CiAg
ICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LmxvY2FsU3RvcmFnZS5nZXRJ
dGVtKCdhJykiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICopIHsKICAg
ICAgICAgRVhQRUNUX1RSVUUoW0AiYiIgaXNFcXVhbFRvU3RyaW5nOnJlc3VsdF0pOwogICAgICAg
ICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIAogICAgIGRvbmUg
PSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxodG1sPjxpZnJhbWUgc3Jj
PSdwc29uOi8vd3d3LndlYmtpdC5vcmcvaWZyYW1lLmh0bWwnPjwvaWZyYW1lPjwvaHRtbD4iIGJh
c2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyJdXTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogCiAgICAgZG9uZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYScpIiBjb21wbGV0
aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqKSB7CiAgICAgICAgIEVYUEVDVF9GQUxT
RShbQCJiIiBpc0VxdWFsVG9TdHJpbmc6cmVzdWx0XSk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwog
ICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBkb25lID0gZmFsc2U7CiAgICAgW3dlYlZp
ZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2In
KSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKikgewogICAgICAgICBF
WFBFQ1RfRkFMU0UoW0AiYSIgaXNFcXVhbFRvU3RyaW5nOnJlc3VsdF0pOwogICAgICAgICBkb25l
ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiBURVNUKFByb2Nlc3NTd2Fw
LCBVc2VQcmV3YXJtZWRQcm9jZXNzQWZ0ZXJUZXJtaW5hdGluZ05ldHdvcmtQcm9jZXNzKQpAQCAt
NTA1Niw3ICs1MDU2LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgVXNlUHJld2FybWVkUHJvY2Vzc0Fm
dAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1d
OwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICBkb25lID0gZmFsc2U7CiAKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzcGluUnVuTG9v
cCgxKTsKQEAgLTUwNjgsNyArNTA2OCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFVzZVByZXdhcm1l
ZFByb2Nlc3NBZnQKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlMiIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwog
ICAgIFt3ZWJWaWV3MiBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogfQogCkBAIC01MDk3LDcgKzUwOTcsNyBAQCBURVNUKFByb2Nlc3NT
d2FwLCBVc2VTZXNzaW9uQ29va2llc0FmdGVyCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAiU2V0U2Vzc2lvbkNvb2tpZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpAQCAtNTEw
Niw3ICs1MTA2LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgVXNlU2Vzc2lvbkNvb2tpZXNBZnRlcgog
ICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFs
c2U7CiAKICAgICBhdXRvIHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwpA
QCAtNTExNiwxMyArNTExNiwxMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBVc2VTZXNzaW9uQ29va2ll
c0FmdGVyCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkdldFNlc3Npb25Db29raWUiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
XTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBwaWQzID0gW3dlYlZpZXcgX3dlYlByb2Nl
c3NJZGVudGlmaWVyXTsKICAgICBFWFBFQ1RfTkUocGlkMiwgcGlkMyk7CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwocmVjZWl2ZWRNZXNzYWdlKTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsK
IAogICAgIEVYUEVDVF9FUSgxdSwgW3JlY2VpdmVkTWVzc2FnZXMgY291bnRdKTsKQEAgLTUxNjMs
NyArNTE2Myw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFVzZVNlc3Npb25Db29raWVzQWZ0ZXIKICAg
ICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJTZXRTZXNzaW9uQ29va2llIiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQ
cm9jZXNzSWRlbnRpZmllcl07CkBAIC01MTcyLDcgKzUxNzIsNyBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBVc2VTZXNzaW9uQ29va2llc0FmdGVyCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9t
YWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC01MTgyLDE0ICs1MTgyLDE0IEBAIFRFU1QoUHJv
Y2Vzc1N3YXAsIFVzZVNlc3Npb25Db29raWVzQWZ0ZXIKICAgICByZXF1ZXN0ID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAiR2V0U2Vzc2lvbkNvb2tpZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJl
cXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRv
IHBpZDMgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogICAgIEVYUEVDVF9ORShw
aWQyLCBwaWQzKTsKICAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMyk7CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwocmVjZWl2ZWRNZXNzYWdlKTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKIAog
ICAgIEVYUEVDVF9FUSgxdSwgW3JlY2VpdmVkTWVzc2FnZXMgY291bnRdKTsKQEAgLTUyMTQsNyAr
NTIxNCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFByb2Nlc3NTd2FwSW5SZWxhdGVkVmkKICAgICBO
U1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIl1dOwogICAg
IFt3ZWJWaWV3MSBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBhcHBsZVBJRCA9IFt3ZWJWaWV3MSBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdOwpAQCAtNTIzMSw3ICs1MjMxLDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUHJv
Y2Vzc1N3YXBJblJlbGF0ZWRWaQogCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFp
bi5odG1sIl1dOwogICAgIFt3ZWJWaWV3MiBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gd2Via2l0UElEID0gW3dlYlZp
ZXcyIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CkBAIC01MjY4LDcgKzUyNjgsNyBAQCBURVNUKFBy
b2Nlc3NTd2FwLCBUZXJtaW5hdGVQcm9jZXNzQWZ0ZXJQCiAKICAgICBOU1VSTFJlcXVlc3QgKnJl
cXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAog
ICAgIGF1dG8gd2Via2l0UElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKQEAg
LTUyNzYsNyArNTI3Niw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFRlcm1pbmF0ZVByb2Nlc3NBZnRl
clAKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKIAogICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogCiAgICAgRVhQRUNUX05FKHdlYmtpdFBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXSk7CkBAIC01Mjg0LDEyICs1Mjg0LDEyIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFRl
cm1pbmF0ZVByb2Nlc3NBZnRlclAKICAgICB3ZWJQcm9jZXNzVGVybWluYXRlZCA9IGZhbHNlOwog
ICAgIGtpbGwoW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSwgOSk7CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJndlYlByb2Nlc3NUZXJtaW5hdGVkKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbCh3ZWJQcm9jZXNzVGVybWluYXRlZCk7CiAKICAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpzcGluUnVuTG9vcCgxKTsKIAogICAgIFt3ZWJWaWV3IHJlbG9hZF07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAKQEAgLTUzMTIsNyArNTMxMiw3IEBA
IFRFU1QoUHJvY2Vzc1N3YXAsIFN3YXBXaXRoR2VzdHVyZUNvbnRyb2wKICAgICAgICAgTlNVUkxS
ZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKICAgICAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiAgICAgICAgIGRvbmUgPSBmYWxzZTsKIAogICAgICAgICAvLyBFbnN1cmUgYSBWaWV3R2VzdHVy
ZUNvbnRyb2xsZXIgaXMgY3JlYXRlZC4KQEAgLTUzMjQsNyArNTMyNCw3IEBAIFRFU1QoUHJvY2Vz
c1N3YXAsIFN3YXBXaXRoR2VzdHVyZUNvbnRyb2wKICAgICAgICAgcmVxdWVzdCA9IFtOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3Lmdv
b2dsZS5jb20vbWFpbi5odG1sIl1dOwogICAgICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKIAotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgICAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICAgICAgZG9uZSA9IGZhbHNlOwog
ICAgIH0KIH0KQEAgLTUzNTUsNyArNTM1NSw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENyYXNoV2l0
aEdlc3R1cmVDb250cm8KICAgICAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBw
bGUuY29tL21haW4uaHRtbCJdXTsKICAgICAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVz
dF07CiAKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICAgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgICAgIGRvbmUgPSBmYWxzZTsKIAog
ICAgICAgICAvLyBFbnN1cmUgYSBWaWV3R2VzdHVyZUNvbnRyb2xsZXIgaXMgY3JlYXRlZC4KQEAg
LTUzNjcsMTIgKzUzNjcsMTIgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ3Jhc2hXaXRoR2VzdHVyZUNv
bnRybwogICAgICAgICB3ZWJQcm9jZXNzVGVybWluYXRlZCA9IGZhbHNlOwogICAgICAgICBraWxs
KFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0sIDkpOwogCi0gICAgICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmd2ViUHJvY2Vzc1Rlcm1pbmF0ZWQpOworICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbCh3ZWJQcm9jZXNzVGVybWluYXRlZCk7CiAKICAgICAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoMSk7CiAKICAgICAgICAgW3dlYlZpZXcgcmVsb2Fk
XTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICAgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgICAgIGRvbmUgPSBmYWxzZTsKICAgICB9
CiB9CkBAIC01NDAyLDEzICs1NDAyLDEzIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlQ3Jv
c3NPcmlnaW5XaXQKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3Jn
L21haW4xLmh0bWwiXV07CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZGlkQ3JlYXRlV2ViVmlldyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZGlkQ3JlYXRlV2ViVmlldyk7CiAgICAgZGlkQ3JlYXRlV2ViVmlldyA9IGZhbHNlOwogCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfRVEoW3dlYlZpZXcg
X3dlYlByb2Nlc3NJZGVudGlmaWVyXSwgW2NyZWF0ZWRXZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl0pOwpAQCAtNTQyMiwxNCArNTQyMiwxNCBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0
ZUNyb3NzT3JpZ2luV2l0CiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAInRydWUiLCBoYXNPcGVu
ZXIpOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKIAogICAgIC8vIE5hdmlnYXRlIGNyb3NzLW9yaWdpbi4KICAgICByZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCJdXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAg
ICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgW1t3
ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKQEAgLTU0MzksNyArNTQzOSw3IEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIE5hdmlnYXRlQ3Jvc3NPcmlnaW5XaXQKICAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKEAidHJ1ZSIsIGhhc09wZW5lcik7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgLy8gV2Ugc2hvdWxkIG5v
dCBoYXZlIHByb2Nlc3Mtc3dhcHBlZCBzaW5jZSBhbiBhdXhpbGlhcnkgd2luZG93IGhhcyBhbiBv
cGVuZXIgbGluayB0byB1cy4KQEAgLTU0NzksMTYgKzU0NzksMTYgQEAgVEVTVChQcm9jZXNzU3dh
cCwgTmF2aWdhdGVDcm9zc09yaWdpbldpdAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvbWFpbjEuaHRtbCJdXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgLy8g
T3BlbnMgInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIiBpbiBhbiBhdXhpbGlhcnkg
d2luZG93LgogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInRlc3RMaW5rLmNsaWNr
KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRpZENyZWF0ZVdlYlZpZXcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZENy
ZWF0ZVdlYlZpZXcpOwogICAgIGRpZENyZWF0ZVdlYlZpZXcgPSBmYWxzZTsKIAotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0VRKFt3ZWJWaWV3IF93ZWJQ
cm9jZXNzSWRlbnRpZmllcl0sIFtjcmVhdGVkV2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJd
KTsKQEAgLTU1MDAsMTQgKzU1MDAsMTQgQEAgVEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVDcm9z
c09yaWdpbldpdAogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInNhdmVPcGVuZWUo
KSIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQsIE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAg
IGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNl
OwogCiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAib3BlbmVlLmxvY2F0aW9uLmhy
ZWYiIGNvbXBsZXRpb25IYW5kbGVyOiBbJl0gKGlkIG9wZW5lZVVSTCwgTlNFcnJvciAqZXJyb3Ip
IHsKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4y
Lmh0bWwiLCBvcGVuZWVVUkwpOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIC8vIE5ldyB3aW5kb3cgc2hvdWxk
IGhhdmUgYW4gb3BlbmVyLgpAQCAtNTUxNSwxMyArNTUxNSwxMyBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBOYXZpZ2F0ZUNyb3NzT3JpZ2luV2l0CiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAInRydWUi
LCBoYXNPcGVuZXIpOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIC8vIE5hdmlnYXRlIGF1eGlsaWFyeSB3aW5k
b3cgY3Jvc3Mtb3JpZ2luLgogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1s
Il1dOwogICAgIFtjcmVhdGVkV2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246
Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCIsIFtbY3JlYXRlZFdlYlZpZXcgVVJMXSBhYnNvbHV0
ZVN0cmluZ10pOwpAQCAtNTUzMSwxMyArNTUzMSwxMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZp
Z2F0ZUNyb3NzT3JpZ2luV2l0CiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAInRydWUiLCBoYXNP
cGVuZXIpOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwog
ICAgIGRvbmUgPSBmYWxzZTsKICAgICBbY3JlYXRlZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0
OkAid2luZG93Lm9wZW5lci5jbG9zZWQgPyAndHJ1ZScgOiAnZmFsc2UnIiBjb21wbGV0aW9uSGFu
ZGxlcjogWyZdIChpZCBvcGVuZXJJc0Nsb3NlZCwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAg
RVhQRUNUX1dLX1NUUkVRKEAiZmFsc2UiLCBvcGVuZXJJc0Nsb3NlZCk7CiAgICAgICAgIGRvbmUg
PSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAg
ICAgLy8gV2Ugc2hvdWxkIG5vdCBoYXZlIHByb2Nlc3Mtc3dhcHBlZCBzaW5jZSB0aGUgYXV4aWxp
YXJ5IHdpbmRvdyBoYXMgYW4gb3BlbmVyLgpAQCAtNTU0Nyw3ICs1NTQ3LDcgQEAgVEVTVChQcm9j
ZXNzU3dhcCwgTmF2aWdhdGVDcm9zc09yaWdpbldpdAogICAgIFtjcmVhdGVkV2ViVmlldyBldmFs
dWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cub3BlbmVyID0gbnVsbCIgY29tcGxldGlvbkhhbmRsZXI6
IFsmXSAoaWQsIE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1d
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgLy8gQXV4aWxpYXJ5
IHdpbmRvdyBzaG91bGQgbm90IGhhdmUgYW4gb3BlbmVyLgpAQCAtNTU1NSwxMyArNTU1NSwxMyBA
QCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUNyb3NzT3JpZ2luV2l0CiAgICAgICAgIEVYUEVD
VF9XS19TVFJFUShAImZhbHNlIiwgaGFzT3BlbmVyKTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAg
ICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICAvLyBOYXZp
Z2F0ZSBvcGVuZWUgY3Jvc3Mtb3JpZ2luIGFnYWluLgogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5nb29n
bGUuY29tL21haW4uaHRtbCJdXTsKICAgICBbY3JlYXRlZFdlYlZpZXcgbG9hZFJlcXVlc3Q6cmVx
dWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICAvLyBBdXhp
bGlhcnkgd2luZG93IHNob3VsZCBub3QgaGF2ZSBhbiBvcGVuZXIuCkBAIC01NTY5LDcgKzU1Njks
NyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUNyb3NzT3JpZ2luV2l0CiAgICAgICAgIEVY
UEVDVF9XS19TVFJFUShAImZhbHNlIiwgaGFzT3BlbmVyKTsKICAgICAgICAgZG9uZSA9IHRydWU7
CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBF
Q1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3Lmdvb2dsZS5jb20vbWFpbi5odG1sIiwgW1tjcmVhdGVk
V2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSk7CkBAIC01NTgwLDcgKzU1ODAsNyBAQCBURVNU
KFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZUNyb3NzT3JpZ2luV2l0CiAgICAgICAgIEVYUEVDVF9XS19T
VFJFUShAImZhbHNlIiwgb3BlbmVlSXNDbG9zZWQpOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAg
ICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIH0KIApAQCAtNTYwOCwx
NiArNTYwOCwxNiBAQCBURVNUKFByb2Nlc3NTd2FwLCBHb0JhY2tUb1N1c3BlbmRlZFBhZ2VXCiAg
ICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMS5odG1sIl1d
OwogCiAgICAgW3dlYlZpZXcxIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53
ZWJraXQub3JnL21haW4xLmh0bWwiLCBbW3dlYlZpZXcxIFVSTF0gYWJzb2x1dGVTdHJpbmddKTsK
ICAgICBhdXRvIHBpZDEgPSBbd2ViVmlldzEgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQ3JlYXRlV2ViVmlldyk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZGlkQ3JlYXRlV2ViVmlldyk7CiAgICAgZGlkQ3JlYXRlV2ViVmll
dyA9IGZhbHNlOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICAv
LyBOZXcgV0tXZWJWaWV3IGhhcyBub3cgbmF2aWdhdGVkIHRvIHdlYmtpdC5vcmcuCkBAIC01NjI3
LDcgKzU2MjcsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBHb0JhY2tUb1N1c3BlbmRlZFBhZ2VXCiAK
ICAgICAvLyBDbGljayBsaW5rIGluIG5ldyBXS1dlYlZpZXcgc28gdGhhdCBpdCBuYXZpZ2F0ZXMg
Y3Jvc3Mtc2l0ZSB0byBhcHBsZS5jb20uCiAgICAgW2NyZWF0ZWRXZWJWaWV3IGV2YWx1YXRlSmF2
YVNjcmlwdDpAInRlc3RMaW5rLmNsaWNrKCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICAvLyBOZXcgV0tXZWJWaWV3IGhh
cyBub3cgbmF2aWdhdGVkIHRvIGFwcGxlLmNvbS4KQEAgLTU2MzcsNyArNTYzNyw3IEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIEdvQmFja1RvU3VzcGVuZGVkUGFnZVcKIAogICAgIC8vIE5hdmlnYXRlIGJh
Y2sgdG8gdGhlIHN1c3BlbmRlZCBwYWdlIChzaG91bGQgdXNlIHRoZSBwYWdlIGNhY2hlKS4KICAg
ICBbY3JlYXRlZFdlYlZpZXcgZ29CYWNrXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnJlY2VpdmVkTWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRN
ZXNzYWdlKTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19T
VFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluMi5odG1sIiwgW1tjcmVhdGVkV2ViVmll
dyBVUkxdIGFic29sdXRlU3RyaW5nXSk7CkBAIC01NjQ3LDcgKzU2NDcsNyBAQCBURVNUKFByb2Nl
c3NTd2FwLCBHb0JhY2tUb1N1c3BlbmRlZFBhZ2VXCiAgICAgLy8gRG8gYSBmcmFnbWVudCBuYXZp
Z2F0aW9uIGluIHRoZSBvcmlnaW5hbCBXS1dlYlZpZXcgYW5kIG1ha2Ugc3VyZSB0aGlzIGRvZXMg
bm90IGNyYXNoLgogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwjdGVz
dExpbmsiXV07CiAgICAgW3dlYlZpZXcxIGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjov
L3d3dy53ZWJraXQub3JnL21haW4xLmh0bWwjdGVzdExpbmsiLCBbW3dlYlZpZXcxIFVSTF0gYWJz
b2x1dGVTdHJpbmddKTsKQEAgLTU2ODgsNyArNTY4OCw3IEBAIHN0YXRpYyB1bnNpZ25lZCB3YWl0
VW50aWxTY3JvbGxQb3NpdGlvbkkKICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uID0gW3Jlc3Vs
dCBpbnRlZ2VyVmFsdWVdOwogICAgICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgICAgIH1dOwot
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICAgICAgZG9uZSA9IGZhbHNlOwogICAgIH0gd2hp
bGUgKCFzY3JvbGxQb3NpdGlvbik7CiAKQEAgLTU3MTIsMTMgKzU3MTIsMTMgQEAgVEVTVChQcm9j
ZXNzU3dhcCwgU2Nyb2xsUG9zaXRpb25SZXN0b3JhdAogCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAg
ICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzY3JvbGwoMCwgNTAwMCkiIGNvbXBsZXRp
b25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgZG9u
ZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAK
ICAgICBkbyB7CkBAIC01NzI3LDE4ICs1NzI3LDE4IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNjcm9s
bFBvc2l0aW9uUmVzdG9yYXQKIAogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInRl
c3RMaW5rLmNsaWNrKCkiIGNvbXBsZXRpb25IYW5kbGVyOiBuaWxdOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6
QCJ3aW5kb3cuc2Nyb2xsWSIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vy
cm9yICplcnJvcikgewogICAgICAgICBFWFBFQ1RfRVEoMCwgW3Jlc3VsdCBpbnRlZ2VyVmFsdWVd
KTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiAKICAgICBbd2ViVmlldyBnb0JhY2tdOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBzY3JvbGxQb3NpdGlvbiA9IHdhaXRVbnRpbFNj
cm9sbFBvc2l0aW9uSXNSZXN0b3JlZCh3ZWJWaWV3LmdldCgpKTsKQEAgLTU3NDcsNyArNTc0Nyw3
IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNjcm9sbFBvc2l0aW9uUmVzdG9yYXQKICAgICBbd2ViVmll
dyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzY3JvbGwoMCwgNDAwMCkiIGNvbXBsZXRpb25IYW5kbGVy
OiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgZG9uZSA9IHRydWU7
CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBkbyB7
CkBAIC01NzU2LDE4ICs1NzU2LDE4IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFNjcm9sbFBvc2l0aW9u
UmVzdG9yYXQKIAogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInRlc3RMaW5rLmNs
aWNrKCkiIGNvbXBsZXRpb25IYW5kbGVyOiBuaWxdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBk
b25lID0gZmFsc2U7CiAKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cu
c2Nyb2xsWSIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJv
cikgewogICAgICAgICBFWFBFQ1RfRVEoMCwgW3Jlc3VsdCBpbnRlZ2VyVmFsdWVdKTsKICAgICAg
ICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFs
c2U7CiAKICAgICBbd2ViVmlldyBnb0JhY2tdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogCiAgICAgc2Nyb2xsUG9zaXRpb24gPSB3YWl0VW50aWxTY3JvbGxQb3NpdGlvbklz
UmVzdG9yZWQod2ViVmlldy5nZXQoKSk7CkBAIC01Nzk4LDcgKzU3OTgsNyBAQCBURVNUKFByb2Nl
c3NTd2FwLCBDb250ZW50QmxvY2tpbmdBZnRlclByCiAgICAgW1tXS0NvbnRlbnRSdWxlTGlzdFN0
b3JlIGRlZmF1bHRTdG9yZV0gcmVtb3ZlQ29udGVudFJ1bGVMaXN0Rm9ySWRlbnRpZmllcjpAIkNv
bnRlbnRCbG9ja2luZ0FmdGVyUHJvY2Vzc1N3YXBFeHRlbnNpb24iIGNvbXBsZXRpb25IYW5kbGVy
Ol4oTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKQEAgLTU4MTcsNyAr
NTgxNyw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENvbnRlbnRCbG9ja2luZ0FmdGVyUHIKIAogICAg
ICAgICBkb25lQ29tcGlsaW5nID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmVDb21waWxpbmcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmVDb21waWxpbmcpOwogCiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUg
YWxsb2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBz
b246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTpjb250ZW50QmxvY2tpbmdBZnRl
clByb2Nlc3NTd2FwVGVzdEJ5dGVzXTsKQEAgLTU4MzIsNyArNTgzMiw3IEBAIFRFU1QoUHJvY2Vz
c1N3YXAsIENvbnRlbnRCbG9ja2luZ0FmdGVyUHIKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVz
dCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJw
c29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93Lndhc1N1YmZyYW1lTG9hZGVkID8g
J0ZBSUwnIDogJ1BBU1MnIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCByZXN1bHQsIE5TRXJy
b3IgKmVycm9yKSB7CkBAIC01ODQwLDEyICs1ODQwLDEyIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENv
bnRlbnRCbG9ja2luZ0FmdGVyUHIKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiUEFTUyIsIGJs
b2NrU3VjY2Vzcyk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9u
ZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLmNvbS9t
YWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJ3aW5kb3cud2FzU3ViZnJhbWVMb2FkZWQgPyAnRkFJTCcgOiAnUEFTUyciIGNvbXBs
ZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKQEAgLTU4NTMs
MTEgKzU4NTMsMTEgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ29udGVudEJsb2NraW5nQWZ0ZXJQcgog
ICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJQQVNTIiwgYmxvY2tTdWNjZXNzKTsKICAgICAgICAg
ZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7
CiAKICAgICBbd2ViVmlldyBnb0JhY2tdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZh
bHNlOwogCiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93Lndhc1N1YmZy
YW1lTG9hZGVkID8gJ0ZBSUwnIDogJ1BBU1MnIiBjb21wbGV0aW9uSGFuZGxlcjogWyZdIChpZCBy
ZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CkBAIC01ODY1LDExICs1ODY1LDExIEBAIFRFU1QoUHJv
Y2Vzc1N3YXAsIENvbnRlbnRCbG9ja2luZ0FmdGVyUHIKICAgICAgICAgRVhQRUNUX1dLX1NUUkVR
KEAiUEFTUyIsIGJsb2NrU3VjY2Vzcyk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgW3dlYlZpZXcgZ29Gb3J3
YXJkXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFt3ZWJWaWV3
IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy53YXNTdWJmcmFtZUxvYWRlZCA/ICdGQUlMJyA6
ICdQQVNTJyIgY29tcGxldGlvbkhhbmRsZXI6IFsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJv
cikgewpAQCAtNTg3NywxMyArNTg3NywxMyBAQCBURVNUKFByb2Nlc3NTd2FwLCBDb250ZW50Qmxv
Y2tpbmdBZnRlclByCiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShAIlBBU1MiLCBibG9ja1N1Y2Nl
c3MpOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKIAogICAgIFtbV0tDb250ZW50UnVsZUxpc3RTdG9yZSBkZWZhdWx0U3Rv
cmVdIHJlbW92ZUNvbnRlbnRSdWxlTGlzdEZvcklkZW50aWZpZXI6QCJDb250ZW50QmxvY2tpbmdB
ZnRlclByb2Nlc3NTd2FwRXh0ZW5zaW9uIiBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKmVy
cm9yKSB7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogfQogCkBAIC01ODk4LDcgKzU4OTgsNyBAQCBURVNUKFByb2Nlc3NT
d2FwLCBDb250ZW50RXh0ZW5zaW9uQmxvY2tzCiAgICAgW1tXS0NvbnRlbnRSdWxlTGlzdFN0b3Jl
IGRlZmF1bHRTdG9yZV0gcmVtb3ZlQ29udGVudFJ1bGVMaXN0Rm9ySWRlbnRpZmllcjpAIkNvbnRl
bnRCbG9ja2luZ0FmdGVyUHJvY2Vzc1N3YXBFeHRlbnNpb24iIGNvbXBsZXRpb25IYW5kbGVyOl4o
TlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsKQEAgLTU5MjAsNyArNTky
MCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIENvbnRlbnRFeHRlbnNpb25CbG9ja3MKIAogICAgICAg
ICBkb25lQ29tcGlsaW5nID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmVDb21waWxpbmcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVD
b21waWxpbmcpOwogCiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hlbWUgYWxs
b2NdIGluaXRdKTsKICAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpAInBzb246
Ly93d3cuYXBwbGUuY29tL2Jsb2NrbWUuaHRtbCIgdG9EYXRhOm5vdGlmeUxvYWRlZEJ5dGVzXTsK
QEAgLTU5MzIsMjMgKzU5MzIsMjMgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ29udGVudEV4dGVuc2lv
bkJsb2NrcwogCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxz
ZTsKICAgICBmYWlsZWQgPSBmYWxzZTsKICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBwbGUuY29tL2Js
b2NrbWUuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZhaWxlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZmFpbGVkKTsKICAgICBmYWlsZWQgPSBmYWxzZTsKICAgICBFWFBFQ1RfRkFMU0UocmVj
ZWl2ZWRNZXNzYWdlKTsKIAogICAgIFt3ZWJWaWV3IF9sb2FkQWx0ZXJuYXRlSFRNTFN0cmluZzpA
IkJsb2NrZWQiIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJkYXRhOnRleHQvaHRtbCwi
XSBmb3JVbnJlYWNoYWJsZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb246Ly93d3cuYXBw
bGUuY29tL2Jsb2NrbWUuaHRtbCJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxz
ZTsKIAogICAgIFt3ZWJWaWV3IF9yZWxvYWRXaXRob3V0Q29udGVudEJsb2NrZXJzXTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9GQUxTRShmYWlsZWQp
OwpAQCAtNTk1OCw3ICs1OTU4LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgQ29udGVudEV4dGVuc2lv
bkJsb2NrcwogICAgIFtbV0tDb250ZW50UnVsZUxpc3RTdG9yZSBkZWZhdWx0U3RvcmVdIHJlbW92
ZUNvbnRlbnRSdWxlTGlzdEZvcklkZW50aWZpZXI6QCJDb250ZW50QmxvY2tpbmdBZnRlclByb2Nl
c3NTd2FwRXh0ZW5zaW9uIiBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKmVycm9yKSB7CiAg
ICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogfQogCkBAIC02MDI0LDE3ICs2MDI0LDE3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEdl
dFVzZXJNZWRpYUNhcHR1cmVTdGEKICAgICBhdXRvIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3Jn
L2dldFVzZXJNZWRpYS5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3Rd
OwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmlzQ2FwdHVyaW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChpc0NhcHR1cmluZyk7CiAKICAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdOwogCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3LmFwcGxlLm9yZy90ZXN0Lmh0bWwiXV07
CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwog
ICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNz
SWRlbnRpZmllcl07CkBAIC02MDQ0LDcgKzYwNDQsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBHZXRV
c2VyTWVkaWFDYXB0dXJlU3RhCiAKICAgICBpc0NhcHR1cmluZyA9IGZhbHNlOwogICAgIFt3ZWJW
aWV3IGdvQmFja107Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0NhcHR1cmluZyk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNDYXB0dXJpbmcpOwogICAgIGlzQ2FwdHVy
aW5nID0gZmFsc2U7CiB9CiAKQEAgLTYwOTAsNyArNjA5MCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAs
IFBhZ2VPdmVybGF5TGF5ZXJQZXJzaXMKICAgICBhdXRvIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQu
b3JnL3BhZ2Utb3ZlcmxheSJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsK
IAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgW3dlYlZpZXcgd2Fp
dEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOwpAQCAtNjEwNCw3ICs2MTA0LDcgQEAgVEVTVChQ
cm9jZXNzU3dhcCwgUGFnZU92ZXJsYXlMYXllclBlcnNpcwogICAgIHJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy5h
cHBsZS5jb20vcGFnZS1vdmVybGF5Il1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBbd2ViVmll
dyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CkBAIC02MTM4LDE5ICs2MTM4LDE5IEBA
IFRFU1QoUHJvY2Vzc1N3YXAsIFF1aWNrTG9va1JlcXVlc3RzUGFzc3cKICAgICBhdXRvKiByZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAog
ICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJwYXNzd29yZC1wcm90ZWN0ZWQiIHdpdGhFeHRlbnNp
b246QCJwYWdlcyIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CiAg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRpZFN0YXJ0UXVpY2tMb29rTG9hZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZGlkU3RhcnRRdWlja0xvb2tMb2FkKTsKICAgICBkaWRTdGFydFF1aWNrTG9va0xvYWQg
PSBmYWxzZTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVxdWVzdGVkUXVpY2tM
b29rUGFzc3dvcmQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlcXVlc3RlZFF1aWNr
TG9va1Bhc3N3b3JkKTsKICAgICByZXF1ZXN0ZWRRdWlja0xvb2tQYXNzd29yZCA9IGZhbHNlOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRGaW5pc2hRdWlja0xvb2tMb2FkKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRGaW5pc2hRdWlja0xvb2tMb2FkKTsKICAg
ICBkaWRGaW5pc2hRdWlja0xvb2tMb2FkID0gZmFsc2U7CiB9CiAKQEAgLTYxOTUsNyArNjE5NSw3
IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFBhc3NNaW5pbXVtRGV2aWNlV2lkdGgKICAgICBhdXRvKiBy
ZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsK
IAogICAgIGJvb2wgZmluaXNoZWRSdW5uaW5nU2NyaXB0ID0gZmFsc2U7CkBAIC02MjA0LDcgKzYy
MDQsNyBAQCBURVNUKFByb2Nlc3NTd2FwLCBQYXNzTWluaW11bURldmljZVdpZHRoCiAgICAgICAg
IEVYUEVDVF9FUSgxMDI0LCBbd2lkdGggaW50VmFsdWVdKTsKICAgICAgICAgZmluaXNoZWRSdW5u
aW5nU2NyaXB0ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmZpbmlzaGVkUnVubmluZ1NjcmlwdCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmlu
aXNoZWRSdW5uaW5nU2NyaXB0KTsKIH0KIAogI2VuZGlmCkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb3Zpc2lvbmFsVVJMTm90Q2hhbmdlLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvdmlzaW9uYWxV
UkxOb3RDaGFuZ2UubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUHJvdmlzaW9uYWxVUkxOb3RDaGFuZ2UubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTQ3LDEyICs0NywxMiBAQCBURVNUKFdLV2ViVmlldywgUHJvdmlzaW9uYWxVUkxOb3RD
aGFuZ2UpCiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxl
Z2F0ZS5nZXQoKV07CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiZGF0YTp0ZXh0L2h0bWwsc3RhcnQi
XV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAgIGlzRG9uZSA9IGZhbHNlOwogCiAgICAgTlNV
UkwgKmludmFsaWRVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBzOi8vYUAvYiJdOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6aW52
YWxpZFVSTF1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAgIGlzRG9uZSA9IGZhbHNlOwogCiAg
ICAgRVhQRUNUX1NUUkVRKFt3ZWJWaWV3IFVSTF0uYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZywg
ImRhdGE6dGV4dC9odG1sLHN0YXJ0Iik7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1Byb3h5Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUHJveHkubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAg
LTgwLDcgKzgwLDcgQEAgVEVTVChXZWJLaXQsIEhUVFBTUHJveHkpCiAgICAgW3dlYlZpZXcgc2V0
VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6
Ly9leGFtcGxlLmNvbS8iXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2
ZWRBbGVydCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRBbGVydCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUXVpY2tMb29rLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUXVpY2tMb29rLm1tCShyZXZpc2lvbiAyNDU1
MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1F1aWNrTG9vay5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjQ0LDcgKzI0NCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8V0tX
ZWJWaWV3PiBydW5UZXN0KFF1aWMKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsK
IAogICAgIGlzRG9uZSA9IGZhbHNlOwotICAgIFV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBydW5V
bnRpbChpc0RvbmUpOwogCiAgICAgcmV0dXJuIHdlYlZpZXc7CiB9CkBAIC0zNDUsNyArMzQ1LDcg
QEAgVEVTVChRdWlja0xvb2ssIERvd25sb2FkUmVzcG9uc2VCZWZvcmVMbwogICAgIEVYUEVDVF9G
QUxTRShbZGVsZWdhdGUgZGlkU3RhcnRRdWlja0xvb2tMb2FkXSk7CiAgICAgRVhQRUNUX1RSVUUo
W2RlbGVnYXRlIGRpZEZhaWxOYXZpZ2F0aW9uXSk7CiAKLSAgICBVdGlsOjpydW4oJmRvd25sb2Fk
SXNEb25lKTsKKyAgICBydW5VbnRpbChkb3dubG9hZElzRG9uZSk7CiAgICAgW2RlbGVnYXRlIHZl
cmlmeURvd25sb2FkXTsKIH0KIApAQCAtNDA4LDcgKzQwOCw3IEBAIFRFU1QoUXVpY2tMb29rLCBS
ZWxvYWRBbmRTYW1lRG9jdW1lbnROYXYKIAogICAgIGlzRG9uZSA9IGZhbHNlOwogICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKSIgY29tcGxl
dGlvbkhhbmRsZXI6bmlsXTsKLSAgICBVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgcnVuVW50aWwo
aXNEb25lKTsKICAgICBFWFBFQ1RfRkFMU0UoW2RlbGVnYXRlIGRpZEZhaWxOYXZpZ2F0aW9uXSk7
CiAgICAgRVhQRUNUX1RSVUUoW2RlbGVnYXRlIGRpZEZpbmlzaE5hdmlnYXRpb25dKTsKICAgICBF
WFBFQ1RfVFJVRShbZGVsZWdhdGUgZGlkRmluaXNoUXVpY2tMb29rTG9hZF0pOwpAQCAtNDIwLDcg
KzQyMCw3IEBAIFRFU1QoUXVpY2tMb29rLCBSZWxvYWRBbmRTYW1lRG9jdW1lbnROYXYKICAgICAg
ICAgRVhQRUNUX1dLX1NUUkVRKEAiI3Rlc3QiLCB2YWx1ZSk7CiAgICAgICAgIGlzRG9uZSA9IHRy
dWU7CiAgICAgfV07Ci0gICAgVXRpbDo6cnVuKCZpc0RvbmUpOworICAgIHJ1blVudGlsKGlzRG9u
ZSk7CiB9CiAKIEBpbnRlcmZhY2UgUXVpY2tMb29rRnJhbWVMb2FkRGVsZWdhdGUgOiBOU09iamVj
dCA8V2ViRnJhbWVMb2FkRGVsZWdhdGU+CkBAIC00NTIsNyArNDUyLDcgQEAgVEVTVChRdWlja0xv
b2ssIExlZ2FjeVF1aWNrTG9va0NvbnRlbnQpCiAgICAgV2ViRnJhbWUgKm1haW5GcmFtZSA9IFt3
ZWJWaWV3IG1haW5GcmFtZV07CiAKICAgICBbbWFpbkZyYW1lIGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6cGFnZXNEb2N1bWVudFVSTF1dOwotICAgIFV0aWw6OnJ1bigm
aXNEb25lKTsKKyAgICBydW5VbnRpbChpc0RvbmUpOwogICAgIFdlYlRocmVhZExvY2soKTsKIAog
ICAgIE5TVUludGVnZXIgZXhwZWN0ZWRGaWxlU2l6ZTsKQEAgLTQ3Miw3ICs0NzIsNyBAQCBURVNU
KFF1aWNrTG9vaywgTGVnYWN5UXVpY2tMb29rQ29udGVudCkKIAogICAgIGlzRG9uZSA9IGZhbHNl
OwogICAgIFttYWluRnJhbWUgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl1dXTsKLSAgICBVdGlsOjpydW4o
JmlzRG9uZSk7CisgICAgcnVuVW50aWwoaXNEb25lKTsKICAgICBXZWJUaHJlYWRMb2NrKCk7CiAK
ICAgICBFWFBFQ1RfTlVMTChtYWluRnJhbWUuZGF0YVNvdXJjZS5fcXVpY2tMb29rQ29udGVudCk7
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbW90ZU9iamVj
dFJlZ2lzdHJ5Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVtb3RlT2JqZWN0UmVnaXN0cnku
bW0JKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgICAgICAgICBpZCA8UmVtb3RlT2Jq
ZWN0UHJvdG9jb2w+IG9iamVjdAogICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKHJlc3VsdCwg
QCJIZWxsbywgV29ybGQhIik7CiAgICAgICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAgICAgICB9
XTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgICAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAgICAgIGlzRG9uZSA9IGZhbHNl
OwogICAgICAgICBbb2JqZWN0IHNheUhlbGxvOkAiSGVsbG8gQWdhaW4hIiBjb21wbGV0aW9uSGFu
ZGxlcjpeKE5TU3RyaW5nICpyZXN1bHQpIHsKQEAgLTY1LDE0ICs2NSwxNCBAQCAgICAgICAgIGlk
IDxSZW1vdGVPYmplY3RQcm90b2NvbD4gb2JqZWN0CiAgICAgICAgICAgICBFWFBFQ1RfV0tfU1RS
RVEocmVzdWx0LCBAIllvdXIgc3RyaW5nIHdhcyAnSGVsbG8gQWdhaW4hJyIpOwogICAgICAgICAg
ICAgaXNEb25lID0gdHJ1ZTsKICAgICAgICAgfV07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmaXNEb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25l
KTsKIAogICAgICAgICBpc0RvbmUgPSBmYWxzZTsKICAgICAgICAgW29iamVjdCBzZWxlY3Rpb25B
bmRDbGlja0luZm9ybWF0aW9uRm9yQ2xpY2tBdFBvaW50OltOU1ZhbHVlIHZhbHVlV2l0aFBvaW50
Ok5TTWFrZVBvaW50KDEyLCAzNCldIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNEaWN0aW9uYXJ5ICpy
ZXN1bHQpIHsKICAgICAgICAgICAgIEVYUEVDVF9UUlVFKFtyZXN1bHQgaXNFcXVhbDpAeyBAIlVS
TCI6IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL3d3dy53ZWJraXQub3JnLyJdIH1dKTsK
ICAgICAgICAgICAgIGlzRG9uZSA9IHRydWU7CiAgICAgICAgIH1dOwotICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGlzRG9uZSk7CiAKICAgICAgICAgaXNEb25lID0gZmFsc2U7CiAgICAgICAgIFtvYmplY3Qg
dGFrZVJhbmdlOk5TTWFrZVJhbmdlKDM0NSwgMTIzKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TVUlu
dGVnZXIgbG9jYXRpb24sIE5TVUludGVnZXIgbGVuZ3RoKSB7CkBAIC04MCw3ICs4MCw3IEBAICAg
ICAgICAgaWQgPFJlbW90ZU9iamVjdFByb3RvY29sPiBvYmplY3QKICAgICAgICAgICAgIEVYUEVD
VF9FUSgxMjNVLCBsZW5ndGgpOwogICAgICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICAgICAg
fV07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICAgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgICAgICBpc0RvbmUgPSBmYWxz
ZTsKICAgICAgICAgW29iamVjdCB0YWtlU2l6ZTpDR1NpemVNYWtlKDEyMy40NSwgNjc4LjkxKSBj
b21wbGV0aW9uSGFuZGxlcjpeKENHRmxvYXQgd2lkdGgsIENHRmxvYXQgaGVpZ2h0KSB7CkBAIC04
OCw3ICs4OCw3IEBAICAgICAgICAgaWQgPFJlbW90ZU9iamVjdFByb3RvY29sPiBvYmplY3QKICAg
ICAgICAgICAgIEVYUEVDVF9FUSg2NzguOTEsIGhlaWdodCk7CiAgICAgICAgICAgICBpc0RvbmUg
PSB0cnVlOwogICAgICAgICB9XTsKLSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZp
c0RvbmUpOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAg
ICAgIGlzRG9uZSA9IGZhbHNlOwogCkBAIC0xMDMsNiArMTAzLDYgQEAgICAgICAgICBpZCA8UmVt
b3RlT2JqZWN0UHJvdG9jb2w+IG9iamVjdAogICAgICAgICAgICAgfV07CiAgICAgICAgIH0KIAot
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAgICAgfQogfQpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZW5kZXJlZEltYWdlV2l0aE9wdGlvbnMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZW5kZXJl
ZEltYWdlV2l0aE9wdGlvbnMubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAICAgICBhdXRvIHJlbW90ZU9iamVjdCA9IHJldGFp
blB0cihbW3dlYlYKICAgICAgICAgdGVzdEZpbmlzaGVkID0gdHJ1ZTsKICAgICB9XTsKIAotICAg
IFV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICBydW5VbnRpbCh0ZXN0RmluaXNoZWQpOwog
fQogCiBURVNUKFdlYktpdCwgTm9kZUhhbmRsZVJlbmRlcmVkSW1hZ2VFeGNsdWRpbmdPdmVyZmxv
dykKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVuZGVyaW5n
UHJvZ3Jlc3MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9SZW5kZXJpbmdQcm9ncmVzcy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZW5kZXJpbmdQcm9ncmVzcy5tbQkod29y
a2luZyBjb3B5KQpAQCAtNjksNSArNjksNSBAQCAgICAgW1t3ZWJWaWV3IF9yZW1vdGVPYmplY3RS
ZWdpc3RyeV0gcmVnCiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxib2R5IHN0eWxl
PSdiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Jz48L2JvZHk+IiBiYXNlVVJMOm5pbF07CiAKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZE9ic2VydmVGaXJzdE1lYW5pbmdmdWxQYWludCk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkT2JzZXJ2ZUZpcnN0TWVhbmluZ2Z1bFBh
aW50KTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVw
YXJlbnRXZWJWaWV3VGltZW91dC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1JlcGFyZW50V2ViVmlld1RpbWVvdXQubW0JKHJldmlzaW9uIDI0
NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVwYXJlbnRX
ZWJWaWV3VGltZW91dC5tbQkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBURVNUKFdl
YktpdCwgUmVwYXJlbnRXZWJWaWV3VGltZW91dCkKICAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKIAotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgICAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICAgICAgZG9uZSA9IGZhbHNlOwogICAg
IH07CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVz
dFRleHRJbnB1dENvbnRleHQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbQkocmV2aXNpb24gMjQ1
NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4
dElucHV0Q29udGV4dC5tbQkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCAtIChOU0Fy
cmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKilzeW5jCiAgICAgICAgIHJlc3VsdCA9IGNvbnRl
eHRzOwogICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmlu
aXNoZWQpOwogICAgIHJldHVybiByZXN1bHQuYXV0b3JlbGVhc2UoKTsKIH0KIApAQCAtNjMsNyAr
NjMsNyBAQCAtIChCT09MKXN5bmNocm9ub3VzbHlGb2N1c1RleHRJbnB1dENvbnRlCiAgICAgICAg
IHN1Y2Nlc3MgPSBpbm5lclN1Y2Nlc3M7CiAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICB9
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZCk7CiAgICAgcmV0dXJuIHN1Y2Nlc3M7CiB9CiAKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWlyZXNVc2VyQWN0
aW9uRm9yUGxheWJhY2subW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9SZXF1aXJlc1VzZXJBY3Rpb25Gb3JQbGF5YmFjay5tbQkocmV2aXNpb24g
MjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1aXJl
c1VzZXJBY3Rpb25Gb3JQbGF5YmFjay5tbQkod29ya2luZyBjb3B5KQpAQCAtODMsNyArODMsNyBA
QCBwdWJsaWM6CiAgICAgICAgIFt3ZWJWaWV3IGxvYWRGaWxlVVJMOmZpbGVVUkwgYWxsb3dpbmdS
ZWFkQWNjZXNzVG9VUkw6ZmlsZVVSTF07CiAgICAgICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JE
aWRGaW5pc2hOYXZpZ2F0aW9uXTsKIAotICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9
IGZhbHNlOwogICAgIH0KIApAQCAtOTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIFt3ZWJW
aWV3IGxvYWRGaWxlVVJMOmZpbGVVUkwgYWxsb3dpbmdSZWFkQWNjZXNzVG9VUkw6ZmlsZVVSTF07
CiAgICAgICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKIAot
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7
CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7
CiAgICAgICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIH0KIApAQCAtMTAz
LDcgKzEwMyw3IEBAIHB1YmxpYzoKICAgICAgICAgW3dlYlZpZXcgbG9hZEZpbGVVUkw6ZmlsZVVS
TCBhbGxvd2luZ1JlYWRBY2Nlc3NUb1VSTDpmaWxlVVJMXTsKICAgICAgICAgW3dlYlZpZXcgX3Rl
c3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICAgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICAgICAgcmVjZWl2ZWRTY3Jp
cHRNZXNzYWdlID0gZmFsc2U7CiAgICAgfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1Jlc291cmNlTG9hZFN0YXRpc3RpY3MubW0JKHdvcmtpbmcgY29weSkKQEAgLTc2
LDcgKzc2LDcgQEAgVEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBHcmFuZGZhdGhlcgogICAg
IFtkYXRhU3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOllFU107CiAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl1dXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZ3JhbmRmYXRoZXJlZEZsYWcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGdyYW5kZmF0aGVyZWRGbGFnKTsKIAogICAgIC8vIFNwaW4gdGhlIHJ1bmxvb3AgdW50aWwgdGhl
IHJlc291cmNlIGxvYWQgc3RhdGlzdGljcyBmaWxlIGhhcyB3cml0dGVuIHRvIGRpc2suCiAgICAg
Ly8gSWYgdGhlIHRlc3QgZW50ZXJzIGEgc3BpbiBsb29wIGhlcmUsIGl0IGhhcyBmYWlsZWQuCkBA
IC05MSw3ICs5MSw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgR3JhbmRmYXRoZXIK
ICAgICAgICAgZG9uZUZsYWcgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lRmxhZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZUZs
YWcpOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNwaW5SdW5Mb29wKDEwKTsKIAogICAgIC8v
IFRoZSB3ZWJzaXRlIGRhdGEgc3RvcmUgcmVtb3ZlIHNob3VsZCBoYXZlIGNvbXBsZXRlZCwgYnV0
IHNpbmNlIHdlIHJlbW92ZWQgYWxsIG9mIHRoZSBkYXRhIHR5cGVzIHRoYXQgYXJlIG1vbml0b3Jl
ZCBieSByZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3MsCkBAIC0xMDYsOCArMTA2LDggQEAgVEVTVChS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBHcmFuZGZhdGhlcgogCiAgICAgLy8gU2luY2Ugd2UgZGlk
IG5vdCByZW1vdmUgZXZlcnkgZGF0YSB0eXBlIGNvdmVyZWQgYnkgcmVzb3VyY2UgbG9hZCBzdGF0
aXN0aWNzLCB3ZSBkbyBleHBlY3QgdGhhdCBncmFuZGZhdGhlcmluZyB0b29rIHBsYWNlIGFnYWlu
LgogICAgIC8vIElmIHRoZSB0ZXN0IGhhbmdzIHdhaXRpbmcgb24gZWl0aGVyIG9mIHRoZXNlIGNv
bmRpdGlvbnMsIGl0IGhhcyBmYWlsZWQuCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZn
cmFuZGZhdGhlcmVkRmxhZyk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lRmxh
Zyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZ3JhbmRmYXRoZXJlZEZsYWcpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVGbGFnKTsKIAogICAgIC8vIFNwaW4gdGhlIHJ1
bmxvb3AgdW50aWwgdGhlIHJlc291cmNlIGxvYWQgc3RhdGlzdGljcyBmaWxlIGhhcyB3cml0dGVu
IHRvIGRpc2suCiAgICAgLy8gSWYgdGhlIHRlc3QgZW50ZXJzIGEgc3BpbiBsb29wIGhlcmUsIGl0
IGhhcyBmYWlsZWQuCkBAIC0xNDIsNyArMTQyLDcgQEAgVEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLCBTaG91bGROb3RHcgogICAgIFtkYXRhU3RvcmUgX3NldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkOllFU107CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl1dXTsKIAot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmY2FsbGJhY2tGbGFnKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChjYWxsYmFja0ZsYWcpOwogfQogCiBURVNUKFJlc291cmNlTG9hZFN0
YXRpc3RpY3MsIENoaWxkUHJvY2Vzc2VzTm90TGF1bmNoZWQpCkBAIC0xNzQsNyArMTc0LDcgQEAg
VEVTVChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCBDaGlsZFByb2NlcwogICAgIFtkYXRhU3RvcmUg
X3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOllFU107CiAgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAImFib3V0OmJsYW5rIl1dXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZUZsYWcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVGbGFnKTsKIAogICAgIEVY
UEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0
aDp0YXJnZXRVUkwucGF0aF0pOwogCkBAIC0yMDIsNSArMjAyLDUgQEAgVEVTVChSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLCBJUENBZnRlclN0bwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAibm90aWZ5LXJlc291cmNlTG9hZE9ic2VydmVyIiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwogCi0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkTmF2aWdhdGlvbik7CiB9CkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc3BvbnNpdmVuZXNzVGltZXIubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXNwb25zaXZl
bmVzc1RpbWVyLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Jlc3BvbnNpdmVuZXNzVGltZXIubW0JKHdvcmtpbmcgY29weSkKQEAg
LTY2LDcgKzY2LDcgQEAgVEVTVChXZWJLaXQsIFJlc3BvbnNpdmVuZXNzVGltZXJTaG91bGRObwog
ICAgIFt3ZWJWaWV3MSBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAg
IFt3ZWJWaWV3MSBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlz
aExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogCiAgICAgRVhQRUNUX0ZBTFNF
KGRpZEJlY29tZVVucmVzcG9uc2l2ZSk7CiAKQEAgLTc1LDcgKzc1LDcgQEAgVEVTVChXZWJLaXQs
IFJlc3BvbnNpdmVuZXNzVGltZXJTaG91bGRObwogCiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNl
OwogICAgIFt3ZWJWaWV3MiBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBVdGlsOjpydW4oJmRp
ZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogCiAgICAgRVhQRUNU
X0ZBTFNFKGRpZEJlY29tZVVucmVzcG9uc2l2ZSk7CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jl
c3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHkubW0JKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzcG9uc2l2ZW5lc3NUaW1l
ckRvZXNudEZpcmVFYXJseS5tbQkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCBURVNU
KFdlYktpdCwgUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpCiAgICAgW3dlYlZpZXcgc2V0TmF2
aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlz
aExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogCiAgICAgV0tDb250ZXh0UG9z
dE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKGNvbnRleHQuZ2V0KCksIFV0aWw6OnRvV0soIkJyaWVm
bHlQYXVzZSIpLmdldCgpLCAwKTsKIApAQCAtOTMsNyArOTMsNyBAQCBURVNUKFdlYktpdCwgUmVz
cG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpCiAgICAgLy8gKGJ1dCBub3Qgc28gbG9uZyB0aGF0IHRo
ZSByZXNwb25zaXZlbmVzcyB0aW1lciBmaXJlcykuCiAgICAgW3dlYlZpZXcgdHlwZUNoYXJhY3Rl
cjonICddOwogCi0gICAgVXRpbDo6cnVuKCZkaWRCcmllZmx5UGF1c2UpOworICAgIHJ1blVudGls
KGRpZEJyaWVmbHlQYXVzZSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoZGlkQmVjb21lVW5yZXNwb25z
aXZlKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVz
dG9yZVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzdG9yZVNlc3Npb25TdGF0ZVdpdGhv
dXROYXZpZ2F0aW9uLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Jlc3RvcmVTZXNzaW9uU3RhdGVXaXRob3V0TmF2aWdhdGlvbi5t
bQkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgV0tSZXRhaW5QdHI8V0tE
YXRhUmVmPiBjcmVhdGVTZXNzCiAgICAgYXV0byB2aWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5l
d10pOwogICAgIFt2aWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAg
ICAgW3ZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwotICAgIFV0
aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAg
ICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgTlNEYXRhICpkYXRhID0gW3ZpZXcgX3Nl
c3Npb25TdGF0ZURhdGFdOwpAQCAtODksNyArODksNyBAQCBURVNUKFdlYktpdCwgUmVzdG9yZVNl
c3Npb25TdGF0ZVdpdGhvdXROCiAgICAgYXV0byBzZXNzaW9uU3RhdGUgPSBhZG9wdFdLKFdLU2Vz
c2lvblN0YXRlQ3JlYXRlRnJvbURhdGEoZGF0YS5nZXQoKSkpOwogICAgIFdLUGFnZVJlc3RvcmVG
cm9tU2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24oW3dlYlZpZXcgX3BhZ2VGb3JUZXN0aW5n
XSwgc2Vzc2lvblN0YXRlLmdldCgpKTsKIAotICAgIFV0aWw6OnJ1bigmZGlkQ2hhbmdlQmFja0Zv
cndhcmRMaXN0KTsKKyAgICBydW5VbnRpbChkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QpOwogCiAg
ICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IGNvbW1pdHRlZFVSTCA9IGFkb3B0V0soV0tQYWdlQ29w
eUNvbW1pdHRlZFVSTChbd2ViVmlldyBfcGFnZUZvclRlc3RpbmddKSk7CiAgICAgRVhQRUNUX05V
TEwoY29tbWl0dGVkVVJMLmdldCgpKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUnVuT3BlblBhbmVsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUnVuT3BlblBhbmVsLm1tCShyZXZpc2lvbiAyNDU1MTYp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1J1bk9wZW5QYW5lbC5t
bQkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksNyBAQCBURVNUKFdlYktpdCwgUnVuT3BlblBh
bmVsTm9uTGF0aW4xKQogICAgIE5TSW50ZWdlciB3aW5kb3dOdW1iZXIgPSBbd2ViVmlldyB3aW5k
b3ddLndpbmRvd051bWJlcjsKICAgICBbd2ViVmlldyBtb3VzZURvd246W05TRXZlbnQgbW91c2VF
dmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2NhdGlvbjpjbGlja1BvaW50
IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNv
bnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFdXTsKICAgICBb
d2ViVmlldyBtb3VzZVVwOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxl
ZnRNb3VzZVVwIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDow
IHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlj
a0NvdW50OjEgcHJlc3N1cmU6MV1dOwotICAgIFV0aWw6OnJ1bigmZmlsZVNlbGVjdGVkKTsKKyAg
ICBydW5VbnRpbChmaWxlU2VsZWN0ZWQpOwogICAgIAogICAgIF9fYmxvY2sgYm9vbCB0ZXN0Rmlu
aXNoZWQgPSBmYWxzZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXS5maWxlc1swXS5uYW1lIiBjb21wbGV0
aW9uSGFuZGxlcjpeKGlkIF9OdWxsYWJsZSByZXN1bHQsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJy
b3IpIHsKQEAgLTc3LDcgKzc3LDcgQEAgVEVTVChXZWJLaXQsIFJ1bk9wZW5QYW5lbE5vbkxhdGlu
MSkKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKGV4cGVjdGVkRmlsZU5hbWUsIHJlc3VsdCk7CiAg
ICAgICAgIHRlc3RGaW5pc2hlZCA9IHRydWU7CiAgICAgfV07Ci0gICAgVXRpbDo6cnVuKCZ0ZXN0
RmluaXNoZWQpOworICAgIHJ1blVudGlsKHRlc3RGaW5pc2hlZCk7CiB9CiAgICAgCiB9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1NhZmVCcm93c2luZy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1NhZmVCcm93c2luZy5tbQkocmV2aXNpb24gMjQ1NTE2KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TYWZlQnJvd3NpbmcubW0J
KHdvcmtpbmcgY29weSkKQEAgLTE3OSw3ICsxNzksNyBAQCBURVNUKFNhZmVCcm93c2luZywgUHJl
ZmVyZW5jZSkKICAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoKTsKICAg
ICBbd2ViVmlldyBjb25maWd1cmF0aW9uXS5wcmVmZXJlbmNlcy5fc2FmZUJyb3dzaW5nRW5hYmxl
ZCA9IE5POwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6cmVzb3VyY2VVUkwoQCJzaW1wbGUyIildXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIEVY
UEVDVF9GQUxTRShbd2ViVmlldyBjb25maWd1cmF0aW9uXS5wcmVmZXJlbmNlcy5fc2FmZUJyb3dz
aW5nRW5hYmxlZCk7CiAgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IF9zYWZlQnJvd3NpbmdXYXJu
aW5nXSk7CiB9CkBAIC0yNTYsNyArMjU2LDcgQEAgVEVTVChTYWZlQnJvd3NpbmcsIFZpc2l0VW5z
YWZlV2Vic2l0ZSkKICAgICBFWFBFQ1RfRVEod2FybmluZy5zdWJ2aWV3cy5jb3VudCwgMnVsbCk7
CiAgICAgRVhQRUNUX0ZBTFNFKGNvbW1pdHRlZE5hdmlnYXRpb24pOwogICAgIHZpc2l0VW5zYWZl
U2l0ZSh3YXJuaW5nKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmNvbW1pdHRlZE5h
dmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGNvbW1pdHRlZE5hdmlnYXRp
b24pOwogfQogCiBURVNUKFNhZmVCcm93c2luZywgTmF2aWdhdGlvbkNsZWFyc1dhcm5pbmcpCkBA
IC0yODYsMTIgKzI4NiwxMiBAQCBURVNUKFNhZmVCcm93c2luZywgU2hvd1dhcm5pbmdTUEkpCiAK
ICAgICBzaG93V2FybmluZygpOwogICAgIGNoZWNrVGl0bGVBbmRDbGljayhbd2ViVmlldyBfc2Fm
ZUJyb3dzaW5nV2FybmluZ10uc3Vidmlld3MuZmlyc3RPYmplY3Quc3Vidmlld3NbM10sICJHbyBC
YWNrIik7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjb21wbGV0aW9uSGFuZGxlckNh
bGxlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoY29tcGxldGlvbkhhbmRsZXJDYWxs
ZWQpOwogICAgIEVYUEVDVF9GQUxTRShzaG91bGRDb250aW51ZVZhbHVlKTsKIAogICAgIHNob3dX
YXJuaW5nKCk7CiAgICAgW1t3ZWJWaWV3IF9zYWZlQnJvd3NpbmdXYXJuaW5nXSBwZXJmb3JtU2Vs
ZWN0b3I6TlNTZWxlY3RvckZyb21TdHJpbmcoQCJjbGlja2VkT25MaW5rOiIpIHdpdGhPYmplY3Q6
W1dLV2ViVmlldyBfdmlzaXRVbnNhZmVXZWJzaXRlU2VudGluZWxdXTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmNvbXBsZXRpb25IYW5kbGVyQ2FsbGVkKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChjb21wbGV0aW9uSGFuZGxlckNhbGxlZCk7CiAgICAgRVhQRUNUX1RSVUUo
c2hvdWxkQ29udGludWVWYWx1ZSk7CiB9CiAKQEAgLTQxOCwxOCArNDE4LDE4IEBAIFRFU1QoU2Fm
ZUJyb3dzaW5nLCBXS1dlYlZpZXdHb0JhY2spCiAgICAgW3dlYlZpZXcgY29uZmlndXJhdGlvbl0u
cHJlZmVyZW5jZXMuX3NhZmVCcm93c2luZ0VuYWJsZWQgPSBZRVM7CiAgICAgW3dlYlZpZXcgc2V0
TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnJlc291cmNlVVJMKEAic2ltcGxlIild
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm5hdmlnYXRpb25GaW5pc2hlZCk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwobmF2aWdhdGlvbkZpbmlzaGVkKTsKIAogICAgIG5h
dmlnYXRpb25GaW5pc2hlZCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6cmVzb3VyY2VVUkwoQCJzaW1wbGUyIildXTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm5hdmlnYXRpb25GaW5pc2hlZCk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwobmF2aWdhdGlvbkZpbmlzaGVkKTsKIAogICAgIG5hdmlnYXRpb25G
aW5pc2hlZCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6cmVzb3VyY2VVUkwoQCJzaW1wbGUzIildXTsKICAgICB3aGlsZSAoIVt3
ZWJWaWV3IF9zYWZlQnJvd3NpbmdXYXJuaW5nXSkKICAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6c3BpblJ1bkxvb3AoKTsKICAgICBbd2ViVmlldyBnb0JhY2tdOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmbmF2aWdhdGlvbkZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChuYXZpZ2F0aW9uRmluaXNoZWQpOwogICAgIEVYUEVDVF9UUlVFKFtbd2ViVmlldyBV
UkxdIGlzRXF1YWw6cmVzb3VyY2VVUkwoQCJzaW1wbGUyIildKTsKIH0KIApAQCAtNDQzLDcgKzQ0
Myw3IEBAIFRFU1QoU2FmZUJyb3dzaW5nLCBXS1dlYlZpZXdHb0JhY2tJRnJhbWUKICAgICBbd2Vi
VmlldyBjb25maWd1cmF0aW9uXS5wcmVmZXJlbmNlcy5fc2FmZUJyb3dzaW5nRW5hYmxlZCA9IFlF
UzsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6cmVz
b3VyY2VVUkwoQCJzaW1wbGUyIildXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm5h
dmlnYXRpb25GaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwobmF2aWdhdGlv
bkZpbmlzaGVkKTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6cmVzb3VyY2VVUkwoQCJzaW1wbGUtaWZyYW1lIildXTsKICAgICB3aGlsZSAo
IVt3ZWJWaWV3IF9zYWZlQnJvd3NpbmdXYXJuaW5nXSkKQEAgLTQ1Myw3ICs0NTMsNyBAQCBURVNU
KFNhZmVCcm93c2luZywgV0tXZWJWaWV3R29CYWNrSUZyYW1lCiAjZW5kaWYKICAgICBuYXZpZ2F0
aW9uRmluaXNoZWQgPSBmYWxzZTsKICAgICBnb0JhY2soW3dlYlZpZXcgX3NhZmVCcm93c2luZ1dh
cm5pbmddLCBmYWxzZSk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZuYXZpZ2F0aW9u
RmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKG5hdmlnYXRpb25GaW5pc2hl
ZCk7CiAgICAgRVhQRUNUX1RSVUUoW1t3ZWJWaWV3IFVSTF0gaXNFcXVhbDpyZXNvdXJjZVVSTChA
InNpbXBsZTIiKV0pOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NjaGVtZVJlZ2lzdHJ5Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU2NoZW1lUmVnaXN0cnkubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2NoZW1lUmVnaXN0cnku
bW0JKHdvcmtpbmcgY29weSkKQEAgLTE3MSw3ICsxNzEsNyBAQCBURVNUKFdlYktpdCwgV0tDb250
ZXh0UmVnaXN0ZXJVUkxTY2hlbWVBCiAgICAgICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3IHsg
Y29udGV4dC5nZXQoKSB9OwogICAgICAgICB3ZWJWaWV3LnBsYXRmb3JtVmlldygpLmJyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIubG9hZERlbGVnYXRlID0gW1tXS0NvbnRleHRSZWdpc3RlclVSTFNj
aGVtZUFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3RMb2FkRGVsZWdhdGUgYWxsb2NdIGluaXRd
OwogICAgICAgICBbd2ViVmlldy5wbGF0Zm9ybVZpZXcoKS5icm93c2luZ0NvbnRleHRDb250cm9s
bGVyIGxvYWRIVE1MU3RyaW5nOkAiPCFET0NUWVBFIGh0bWw+PGJvZHk+PHNjcmlwdCBzcmM9J2Vj
aG86Ly9BL0FfMSc+PC9zY3JpcHQ+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiZWNo
bzovL0EiXV07Ci0gICAgICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgICAgIHJ1
blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAK
ICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAiZWNobzovL0EvQV8xIiwgW2xhc3RFY2hvZWRVUkwg
YWJzb2x1dGVTdHJpbmddKTsKQEAgLTE5NCw3ICsxOTQsNyBAQCBURVNUKFdlYktpdCwgV0tDb250
ZXh0UmVnaXN0ZXJVUkxTY2hlbWVBCiAgICAgICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3IHsg
Y29udGV4dC5nZXQoKSB9OwogICAgICAgICB3ZWJWaWV3LnBsYXRmb3JtVmlldygpLmJyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIubG9hZERlbGVnYXRlID0gW1tXS0NvbnRleHRSZWdpc3RlclVSTFNj
aGVtZUFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3RMb2FkRGVsZWdhdGUgYWxsb2NdIGluaXRd
OwogICAgICAgICBbd2ViVmlldy5wbGF0Zm9ybVZpZXcoKS5icm93c2luZ0NvbnRleHRDb250cm9s
bGVyIGxvYWRIVE1MU3RyaW5nOkAiPCFET0NUWVBFIGh0bWw+PGJvZHk+PHNjcmlwdCBzcmM9J2Vj
aG86Ly9BL0FfMSc+PC9zY3JpcHQ+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiZWNo
bzovL0IiXV07Ci0gICAgICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgICAgIHJ1
blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAK
ICAgICAgICAgRVhQRUNUX05VTEwobGFzdEVjaG9lZFVSTCk7IC8vIFNjcmlwdCBibG9ja2VkCklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJC
YXNpYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTQ4MCw3ICs0ODAsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBCYXNpYykK
ICAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZU
eXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2lu
Y2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAg
ZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7
CiAKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC00OTks
NyArNDk5LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgQmFzaWMpCiAgICAgTlNVUkxSZXF1ZXN0
ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInN3Oi8vaG9zdC9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIHdl
YlZpZXcgPSBudWxscHRyOwpAQCAtNTExLDcgKzUxMSw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMs
IEJhc2ljKQogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiAgICAgZG9uZSA9IGZhbHNlOwogfQogCkBAIC01ODAsNyArNTgwLDcgQEAgVEVTVChTZXJ2aWNl
V29ya2VycywgVXNlckFnZW50T3ZlcnJpZGUpCiAgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVm
YXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxX
ZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBs
ZXRpb25IYW5kbGVyOl4oKSB7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTYwMyw3
ICs2MDMsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBVc2VyQWdlbnRPdmVycmlkZSkKICAgICBO
U1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNl
OwogCiAgICAgLy8gUmVzdG9yZSBmcm9tIGRpc2suCkBAIC02MzMsNyArNjMzLDcgQEAgVEVTVChT
ZXJ2aWNlV29ya2VycywgVXNlckFnZW50T3ZlcnJpZGUpCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvbWFp
bi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAKQEAgLTY0OSw3ICs2NDksNyBAQCBURVNU
KFNlcnZpY2VXb3JrZXJzLCBSZXN0b3JlRnJvbURpc2spCiAgICAgW1tXS1dlYnNpdGVEYXRhU3Rv
cmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9y
ZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3Rd
IGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgUmV0YWluUHRyPFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtNjY4LDcgKzY2OCw3IEBAIFRFU1QoU2Vydmlj
ZVdvcmtlcnMsIFJlc3RvcmVGcm9tRGlzaykKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9o
b3N0L21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZSk7CiAKICAgICB3ZWJWaWV3ID0gbnVsbHB0cjsKICAgICBjb25maWd1cmF0
aW9uID0gbnVsbHB0cjsKQEAgLTY5Miw3ICs2OTIsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBS
ZXN0b3JlRnJvbURpc2spCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOwogICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25l
ID0gZmFsc2U7CiB9CiAKQEAgLTcwNiw3ICs3MDYsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBD
YWNoZVN0b3JhZ2VSZXN0b3JlCiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwogCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBbV0tXZWJzaXRlRGF0YVN0b3Jl
IF9kZWxldGVEZWZhdWx0RGF0YVN0b3JlRm9yVGVzdGluZ107CkBAIC03MjksNyArNzI5LDcgQEAg
VEVTVChTZXJ2aWNlV29ya2VycywgQ2FjaGVTdG9yYWdlUmVzdG9yZQogICAgIGF1dG8gKnJlcXVl
c3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
c3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgd2ViVmlldyA9
IG51bGxwdHI7CkBAIC03NDgsNyArNzQ4LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgQ2FjaGVT
dG9yYWdlUmVzdG9yZQogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogfQogCkBAIC03NjQsNyArNzY0LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgRmV0
Y2hBZnRlclJlc3RvcmVGcgogICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3Rv
cmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFU
eXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxl
cjpeKCkgewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwog
ICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9u
PiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKQEAgLTc4NCw3ICs3ODQsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBGZXRjaEFm
dGVyUmVzdG9yZUZyCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9tYWluLmh0bWwi
XV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogCiAgICAgd2ViVmlldyA9IG51bGxwdHI7CiAgICAgY29uZmlndXJhdGlvbiA9IG51bGxwdHI7
CkBAIC04MDksNyArODA5LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgRmV0Y2hBZnRlclJlc3Rv
cmVGcgogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwog
fQogCkBAIC04MjQsNyArODI0LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgSW50ZXJjZXB0Rmly
c3RMb2FkQQogICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJlbW92
ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9k
aWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgewog
ICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
QEAgLTg0NCw3ICs4NDQsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBJbnRlcmNlcHRGaXJzdExv
YWRBCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9tYWluLmh0bWwiXV07CiAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAg
d2ViVmlldyA9IG51bGxwdHI7CiAgICAgY29uZmlndXJhdGlvbiA9IG51bGxwdHI7CkBAIC04Njks
NyArODY5LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgSW50ZXJjZXB0Rmlyc3RMb2FkQQogICAg
IHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpy
ZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogfQogCkBAIC04
ODEsNyArODgxLDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgV2FpdEZvclBvbGljeURlbGVnYQog
ICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5
cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5j
ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgewogICAgICAgICBk
b25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsK
IAogICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTkwMiw3
ICs5MDIsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBXYWl0Rm9yUG9saWN5RGVsZWdhCiAgICAg
TlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgd2ViVmlldyA9
IG51bGxwdHI7CiAgICAgY29uZmlndXJhdGlvbiA9IG51bGxwdHI7CkBAIC05MjgsNyArOTI4LDcg
QEAgVEVTVChTZXJ2aWNlV29ya2VycywgV2FpdEZvclBvbGljeURlbGVnYQogICAgIHJlcXVlc3Qg
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6
Ly9ob3N0L21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsK
IAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgd2ViVmlldyA9IGFk
b3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CkBAIC05NDQsNyAr
OTQ0LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgV2FpdEZvclBvbGljeURlbGVnYQogICAgIC8v
IFZlcmlmeSBzZXJ2aWNlIHdvcmtlciBsb2FkIGdvZXMgd2VsbCB3aGVuIHBvbGljeSBkZWxlZ2F0
ZSBpcyBvay4KICAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9tYWluLmh0bWwiXV07CiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZuYXZp
Z2F0aW9uQ29tcGxldGUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKG5hdmlnYXRpb25D
b21wbGV0ZSk7CiAKICAgICBFWFBFQ1RfRkFMU0UobmF2aWdhdGlvbkZhaWxlZCk7CiAKQEAgLTk2
MCw3ICs5NjAsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBXYWl0Rm9yUG9saWN5RGVsZWdhCiAg
ICAgLy8gVmVyaWZ5IHNlcnZpY2Ugd29ya2VyIGxvYWQgZmFpbHMgd2VsbCB3aGVuIHBvbGljeSBk
ZWxlZ2F0ZSBpcyBub3Qgb2suCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOwogICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmbmF2aWdhdGlvbkNvbXBsZXRlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChu
YXZpZ2F0aW9uQ29tcGxldGUpOwogCiAgICAgRVhQRUNUX1RSVUUobmF2aWdhdGlvbkZhaWxlZCk7
CiB9CkBAIC0xMDE2LDcgKzEwMTYsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBTV1Byb2Nlc3ND
b25uZWN0aW9uCiAgICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIHJlbW92ZURh
dGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZp
ZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgewogICAg
ICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBm
YWxzZTsKIAogICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBmZXRjaERhdGFS
ZWNvcmRzT2ZUeXBlczpbTlNTZXQgc2V0V2l0aE9iamVjdDpXS1dlYnNpdGVEYXRhVHlwZVNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25zXSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TQXJyYXk8V0tXZWJz
aXRlRGF0YVJlY29yZCAqPiAqd2Vic2l0ZURhdGFSZWNvcmRzKSB7CkBAIC0xMDI0LDcgKzEwMjQs
NyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBTV1Byb2Nlc3NDb25uZWN0aW9uCiAKICAgICAgICAg
ZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7
CiAKICAgICBSZXRhaW5QdHI8U1dNZXNzYWdlSGFuZGxlcj4gbWVzc2FnZUhhbmRsZXIgPSBhZG9w
dE5TKFtbU1dNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwpAQCAtMTA0NywxNCArMTA0Nywx
NCBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBTV1Byb2Nlc3NDb25uZWN0aW9uCiAgICAgTlNVUkxS
ZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInN3Oi8vaG9zdC9yZWd1bGFyUGFnZVdpdGhvdXRDb25uZWN0aW9uLmh0bWwi
XV07CiAKICAgICBbcmVndWxhclBhZ2VXZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgLy8gVGVzdCB0aGF0IGEgc3cg
c2NoZW1lIHBhZ2UgY2FuIHJlZ2lzdGVyIGEgc2VydmljZSB3b3JrZXIuCiAgICAgcmVxdWVzdCA9
IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzov
L2hvc3QvbWFpbi5odG1sIl1dOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgd2ViVmlldyA9IG51bGxw
dHI7CiAKQEAgLTEwNjIsMTIgKzEwNjIsMTIgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgU1dQcm9j
ZXNzQ29ubmVjdGlvbgogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L3JlZ3VsYXJQYWdlV2l0aENvbm5lY3Rp
b24uaHRtbCJdXTsKIAogICAgIFtyZWd1bGFyUGFnZVdlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVz
dF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgcmVndWxhclBhZ2VX
ZWJWaWV3ID0gbnVsbHB0cjsKIAogICAgIFtuZXdSZWd1bGFyUGFnZVdlYlZpZXcgbG9hZFJlcXVl
c3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgbmV3
UmVndWxhclBhZ2VXZWJWaWV3ID0gbnVsbHB0cjsKIApAQCAtMTA3OCwxMyArMTA3OCwxMyBAQCBU
RVNUKFNlcnZpY2VXb3JrZXJzLCBTV1Byb2Nlc3NDb25uZWN0aW9uCiAgICAgICAgIGRvbmUgPSB0
cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAg
ICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dL
V2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0Rh
dGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAgICAgIGRvbmUgPSB0
cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBt
YWluQnl0ZXNXaXRoU2NvcGUgPSBSIlNXUkVTT1VSQ0UoCkBAIC0xMTI1LDE0ICsxMTI1LDE0IEBA
IFRFU1QoU2VydmljZVdvcmtlcnMsIFNlcnZpY2VXb3JrZXJQcm9jZXMKICAgICBbW2NvbmZpZ3Vy
YXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFT
dG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBh
c3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1d
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgW1tjb25maWd1cmF0
aW9uIHdlYnNpdGVEYXRhU3RvcmVdIGZldGNoRGF0YVJlY29yZHNPZlR5cGVzOltOU1NldCBzZXRX
aXRoT2JqZWN0OldLV2Vic2l0ZURhdGFUeXBlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnNdIGNv
bXBsZXRpb25IYW5kbGVyOl4oTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+ICp3ZWJzaXRl
RGF0YVJlY29yZHMpIHsKIAogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFJldGFpblB0cjxTV01lc3NhZ2VIYW5k
bGVyPiBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tTV01lc3NhZ2VIYW5kbGVyIGFsbG9jXSBp
bml0XSk7CkBAIC0xMTU0LDcgKzExNTQsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBTZXJ2aWNl
V29ya2VyUHJvY2VzCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9tYWluV2l0aFNj
b3BlLmh0bWwiXV07CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICB3ZWJWaWV3ID0gbnVsbHB0cjsKIApA
QCAtMTE3MSw3ICsxMTcxLDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgU2VydmljZVdvcmtlclBy
b2NlcwogICAgIEVYUEVDVF9FUSgxdSwgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nl
c3NQb29sLl93ZWJQcm9jZXNzQ291bnRJZ25vcmluZ1ByZXdhcm1lZCk7CiAgICAgcmVxdWVzdCA9
IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzov
L2hvc3QvcmVndWxhclBhZ2VXaXRoQ29ubmVjdGlvbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwog
CiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgbG9hZGluZyB0aGUgc2ltcGxlIHBhZ2UgZGlkIG5vdCBz
dGFydCB0aGUgc2VydmljZSB3b3JrZXIgcHJvY2Vzcy4KQEAgLTExODEsNyArMTE4MSw3IEBAIFRF
U1QoU2VydmljZVdvcmtlcnMsIFNlcnZpY2VXb3JrZXJQcm9jZXMKICAgICBFWFBFQ1RfRVEoMnUs
IHdlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbC5fd2ViUHJvY2Vzc0NvdW50
SWdub3JpbmdQcmV3YXJtZWQpOwogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRv
bmUgPSBmYWxzZTsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IGxvYWRpbmcgdGhpcyBwYWdlIGRp
ZCBzdGFydCB0aGUgc2VydmljZSB3b3JrZXIgcHJvY2Vzcy4KQEAgLTExOTAsNyArMTE5MCw3IEBA
IFRFU1QoU2VydmljZVdvcmtlcnMsIFNlcnZpY2VXb3JrZXJQcm9jZXMKICAgICBbW2NvbmZpZ3Vy
YXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFT
dG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBh
c3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1d
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogfQogCkBAIC0xMjA2LDE0ICsx
MjA2LDE0IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIEhhc1NlcnZpY2VXb3JrZXJSZWcKICAgICBb
W2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vi
c2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUg
ZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAgICAgIGRvbmUgPSB0cnVl
OwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAgICAgW1tj
b25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIGZldGNoRGF0YVJlY29yZHNPZlR5cGVzOltO
U1NldCBzZXRXaXRoT2JqZWN0OldLV2Vic2l0ZURhdGFUeXBlU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbnNdIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+
ICp3ZWJzaXRlRGF0YVJlY29yZHMpIHsKIAogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFJldGFpblB0cjxTV01l
c3NhZ2VIYW5kbGVyPiBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tTV01lc3NhZ2VIYW5kbGVy
IGFsbG9jXSBpbml0XSk7CkBAIC0xMjM1LDcgKzEyMzUsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJz
LCBIYXNTZXJ2aWNlV29ya2VyUmVnCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9t
YWluV2l0aFNjb3BlLmh0bWwiXV07CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICB3ZWJWaWV3ID0gbnVs
bHB0cjsKIApAQCAtMTI1Myw3ICsxMjUzLDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgSGFzU2Vy
dmljZVdvcmtlclJlZwogICAgIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246bmV3
Q29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L3JlZ3VsYXJQYWdlV2l0
aG91dENvbm5lY3Rpb24uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIC8vIExldCdzIHVz
ZSB0aGUgd2ViIHNpdGUgZGF0YSBzdG9yZSB0aGF0IGhhcyBzZXJ2aWNlIHdvcmtlciBhbmQgbG9h
ZCBhIHBhZ2UuCkBAIC0xMjYzLDcgKzEyNjMsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBIYXNT
ZXJ2aWNlV29ya2VyUmVnCiAgICAgRVhQRUNUX0VRKDJ1LCB3ZWJWaWV3LmdldCgpLmNvbmZpZ3Vy
YXRpb24ucHJvY2Vzc1Bvb2wuX3dlYlByb2Nlc3NDb3VudElnbm9yaW5nUHJld2FybWVkKTsKICAg
ICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInN3Oi8vaG9zdC9yZWd1bGFyUGFnZVdpdGhDb25uZWN0aW9uLmh0bWwiXV07CiAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25l
ID0gZmFsc2U7CiAKICAgICAvLyBNYWtlIHN1cmUgdGhhdCBsb2FkaW5nIHRoZSBzaW1wbGUgcGFn
ZSBkaWQgbm90IHN0YXJ0IHRoZSBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzLgpAQCAtMTI3Miw3ICsx
MjcyLDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgSGFzU2VydmljZVdvcmtlclJlZwogICAgIFtb
Y29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJz
aXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBk
aXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7
CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAKQEAgLTEz
NDEsMTMgKzEzNDEsMTMgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgQ2FjaGVTdG9yYWdlSW5Qcml2
YQogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uLmdldCgpXSk7CiAgICAgYXV0byAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3Qvd3JpdGVDYWNoZS5odG1sIl1d
OwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogCiAgICAgd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvcmVhZENhY2hlLmh0
bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CiB9CiAKQEAgLTEzOTgsNyArMTM5OCw3IEBAIFRFU1QoU2Vy
dmljZVdvcmtlcnMsIFNlcnZpY2VXb3JrZXJBbmRDYWMKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVl
c3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
c3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogICAgIHdoaWxlICghW1tj
b25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9oYXNSZWdpc3RlcmVkU2VydmljZVdvcmtl
cl0pCiAgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNwaW5SdW5Mb29wKDAuMSk7CkBAIC0x
NDA4LDE0ICsxNDA4LDE0IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFNlcnZpY2VXb3JrZXJBbmRD
YWMKIAogICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L3JlZ3VsYXJQYWdlR3JhYmJpbmdDYWNoZVN0b3JhZ2VE
aXJlY3RvcnkuaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKICAgICBFWFBFQ1RfVFJVRShyZXRyaWV2
ZWRTdHJpbmcuY29udGFpbnMoIi9DYWNoZXMvVGVzdFdlYktpdEFQSS9XZWJLaXQvQ2FjaGVTdG9y
YWdlIikpOwogCiAgICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIHJlbW92ZURh
dGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZp
ZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgewogICAg
ICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBm
YWxzZTsKIH0KIApAQCAtMTQ0OCw3ICsxNDQ4LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgU2Vy
dmljZVdvcmtlckFuZENhYwogCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9tYWlu
Lmh0bWwiXV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgd2hpbGUgKCFbd2Vic2l0ZURhdGFTdG9yZSBf
aGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXJdKQogICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpzcGluUnVuTG9vcCgwLjEpOwpAQCAtMTQ1NywxNCArMTQ1NywxNCBAQCBURVNUKFNlcnZpY2VX
b3JrZXJzLCBTZXJ2aWNlV29ya2VyQW5kQ2FjCiAgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvcmVndWxhclBh
Z2VHcmFiYmluZ0NhY2hlU3RvcmFnZURpcmVjdG9yeS5odG1sIl1dOwogCiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7
CiAgICAgRVhQRUNUX1RSVUUocmV0cmlldmVkU3RyaW5nLmNvbnRhaW5zKCJcInBhdGhcIjogXCIv
dmFyL3RtcFwiIikpOwogCiAgICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIHJl
bW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10g
bW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkg
ewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRv
bmUgPSBmYWxzZTsKIH0KIApAQCAtMTUwMyw3ICsxNTAzLDcgQEAgVEVTVChTZXJ2aWNlV29ya2Vy
cywgTm9uRGVmYXVsdFNlc3Npb25JRAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3Qv
bWFpbi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBbd2ViVmlldyBfY2xvc2VdOwpA
QCAtMTUxOCw3ICsxNTE4LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgTm9uRGVmYXVsdFNlc3Np
b25JRAogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgZG9uZSA9IGZhbHNlOwogfQogCkBAIC0xNTQyLDcgKzE1NDIsNyBAQCBURVNUKFNlcnZpY2VX
b3JrZXJzLCBQcm9jZXNzUGVyU2l0ZSkKICAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0
RGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNp
dGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlv
bkhhbmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmln
dXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7CkBAIC0xNTc1LDcgKzE1NzUsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJz
LCBQcm9jZXNzUGVyU2l0ZSkKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QxID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3MTovL2hvc3QvbWFp
bi5odG1sIl1dOwogICAgIFt3ZWJWaWV3MSBsb2FkUmVxdWVzdDpyZXF1ZXN0MV07CiAKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9FUSgxVSwgcHJvY2Vz
c1Bvb2wuX3NlcnZpY2VXb3JrZXJQcm9jZXNzQ291bnQpOwpAQCAtMTU4Myw3ICsxNTgzLDcgQEAg
VEVTVChTZXJ2aWNlV29ya2VycywgUHJvY2Vzc1BlclNpdGUpCiAgICAgUmV0YWluUHRyPFdLV2Vi
Vmlldz4gd2ViVmlldzIgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKV0pOwogICAgIFt3ZWJWaWV3MiBsb2FkUmVxdWVzdDpyZXF1ZXN0MV07CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9FUSgxVSwgcHJvY2Vzc1Bv
b2wuX3NlcnZpY2VXb3JrZXJQcm9jZXNzQ291bnQpOwpAQCAtMTU5Miw3ICsxNTkyLDcgQEAgVEVT
VChTZXJ2aWNlV29ya2VycywgUHJvY2Vzc1BlclNpdGUpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1
ZXN0MiA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJzdzI6Ly9ob3N0L21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldzMgbG9hZFJlcXVlc3Q6cmVx
dWVzdDJdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBF
Q1RfRVEoMVUsIHByb2Nlc3NQb29sLl9zZXJ2aWNlV29ya2VyUHJvY2Vzc0NvdW50KTsKQEAgLTE2
MDEsNyArMTYwMSw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFByb2Nlc3NQZXJTaXRlKQogICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdDMgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAic3cxOi8vaG9zdDIvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJW
aWV3NCBsb2FkUmVxdWVzdDpyZXF1ZXN0M107CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAogICAgIEVYUEVDVF9FUSgyVSwgcHJvY2Vzc1Bvb2wuX3NlcnZpY2VXb3JrZXJQ
cm9jZXNzQ291bnQpOwpAQCAtMTYzMyw3ICsxNjMzLDcgQEAgVEVTVChTZXJ2aWNlV29ya2Vycywg
VGhyb3R0bGVDcmFzaCkKICAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3Jl
XSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlw
ZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6
XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAg
ICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1NX
TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKQEAgLTE2NzAsNyArMTY3MCw3IEBAIFRFU1Qo
U2VydmljZVdvcmtlcnMsIFRocm90dGxlQ3Jhc2gpCiAgICAgW3dlYlZpZXcxIGxvYWRSZXF1ZXN0
OnJlcXVlc3QxXTsKIAogICAgIGRpZEZpbmlzaE5hdmlnYXRpb24gPSBmYWxzZTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEZpbmlzaE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRpZEZpbmlzaE5hdmlnYXRpb24pOwogCiAgICAgYXV0byB3ZWJWaWV3
MkNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOwogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTE2ODcsNyArMTY4Nyw3IEBAIFRFU1QoU2Vy
dmljZVdvcmtlcnMsIFRocm90dGxlQ3Jhc2gpCiAgICAgW3dlYlZpZXcyIGxvYWRSZXF1ZXN0OnJl
cXVlc3QxXTsKIAogICAgIGRpZEZpbmlzaE5hdmlnYXRpb24gPSBmYWxzZTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRpZEZpbmlzaE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRpZEZpbmlzaE5hdmlnYXRpb24pOwogfQogCiBURVNUKFNlcnZpY2VXb3Jr
ZXJzLCBMb2FkRGF0YSkKQEAgLTE3MDEsNyArMTcwMSw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMs
IExvYWREYXRhKQogICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJl
bW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10g
bW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkg
ewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRv
bmUgPSBmYWxzZTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKQEAgLTE3MjcsMTQgKzE3MjcsMTQgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgTG9hZERhdGEp
CiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9tYWluLmh0bWwiXV07CiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUg
PSBmYWxzZTsKIAogICAgIC8vIE5vdyB0cnkgYSBkYXRhIGxvYWQuCiAgICAgTlNEYXRhICpkYXRh
ID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOm1haW5CeXRlcyBsZW5ndGg6c3RybGVuKG1haW5CeXRl
cyldOwogICAgIFt3ZWJWaWV3IGxvYWREYXRhOmRhdGEgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGNo
YXJhY3RlckVuY29kaW5nTmFtZTpAIlVURi04IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOwogfQogCkBAIC0xNzc3LDcgKzE3NzcsNyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBS
ZXN0b3JlRnJvbURpc2tOb25ECiAKICAgICAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9t
YWluLmh0bWwiXV1dOwogCi0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgICAgICBkb25lID0g
ZmFsc2U7CiAKICAgICAgICAgW3dlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9v
bCBfdGVybWluYXRlU2VydmljZVdvcmtlclByb2Nlc3Nlc107CkBAIC0xODA0LDcgKzE4MDQsNyBA
QCBURVNUKFNlcnZpY2VXb3JrZXJzLCBSZXN0b3JlRnJvbURpc2tOb25ECiAKICAgICAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInN3Oi8vaG9zdC9tYWluLmh0bWwiXV1dOwogCi0gICAgICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmUpOwogICAgICAgICBkb25lID0gZmFsc2U7CiAgICAgfQogfQpAQCAtMTgxNyw3ICsxODE3
LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgU3VzcGVuZE5ldHdvcmtQcm9jZQogICAgIFtbV0tX
ZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dl
YnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRl
IGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgewogICAgICAgICBkb25lID0gdHJ1
ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAogICAgIFJl
dGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTE4NDMsNyArMTg0Myw3
IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFN1c3BlbmROZXR3b3JrUHJvY2UKICAgICBOU1VSTFJl
cXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxX
aXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCiAg
ICAgYXV0byBzdG9yZSA9IFtjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdOwpAQCAtMTg2
MSw3ICsxODYxLDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgU3VzcGVuZE5ldHdvcmtQcm9jZQog
ICAgIFsgd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sIF9zZW5kTmV0d29y
a1Byb2Nlc3NEaWRSZXN1bWVdOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfVFJVRShb
W05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6c3dEQlBhdGgu
cGF0aF0pOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TaG91
bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLm1t
CShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Nob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01
OSwxNSArNTksMTUgQEAgVEVTVChXZWJLaXQsIFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdAog
ICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07Ci0gICAg
VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgcnVuVW50aWwoZmluaXNoZWQpOwogICAgIAogICAg
IGZpbmlzaGVkID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
c2ltcGxlLWlmcmFtZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKLSAgICBVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBy
dW5VbnRpbChmaW5pc2hlZCk7CiAKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3
IGdvQmFja107Ci0gICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgcnVuVW50aWwoZmluaXNo
ZWQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dp
bmRvd0FjdGlvbnMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5OZXdXaW5kb3dBY3Rpb25zLm1tCShy
ZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnMubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTgyLDE0ICs4MiwxNCBAQCBURVNUKFdlYktpdCwgU2hvdWxkT3BlbkV4dGVybmFsVVJM
c0luV2luCiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpjb250cm9sbGVyLmdldCgpXTsKIAog
ICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgb25jbGljaz1cIndpbmRvdy5vcGVu
KCdodHRwczovL3dlYmtpdC5vcmcvZGVzdGluYXRpb24nKVwiPiIgYmFzZVVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChmaW5pc2hlZE5hdmlnYXRpb24pOwogICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwog
CiAgICAgTlNQb2ludCBjbGlja1BvaW50ID0gTlNNYWtlUG9pbnQoMTAwLCAxMDApOwogCiAgICAg
W1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZl
bnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRpb246Y2xpY2tQb2ludCBt
b2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVt
YmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07
CiAgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcCBsb2NhdGlvbjpjbGlja1BvaW50
IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dO
dW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDoxIHByZXNzdXJlOjFd
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmNyZWF0ZWRXZWJWaWV3KTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChjcmVhdGVkV2ViVmlldyk7CiAgICAgY3JlYXRlZFdlYlZp
ZXcgPSBmYWxzZTsKIAogICAgIC8vIFVzZXItaW5pdGlhdGVkIHdpbmRvdy5vcGVuIHRvIHRoZSBz
YW1lIGhvc3Qgc2hvdWxkIGFsbG93IGV4dGVybmFsIHNjaGVtZXMgYnV0IG5vdCBBcHAgTGlua3Mu
CkBAIC05OCw3ICs5OCw3IEBAIFRFU1QoV2ViS2l0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5X
aW4KIAogICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKICAgICBbbmV3V2ViVmlldyBzZXROYXZp
Z2F0aW9uRGVsZWdhdGU6Y29udHJvbGxlci5nZXQoKV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkZWNpZGVkUG9saWN5KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkZWNp
ZGVkUG9saWN5KTsKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7CiAKICAgICAvLyBVc2VyLWlu
aXRpYXRlZCB3aW5kb3cub3BlbiB0byB0aGUgc2FtZSBob3N0IHNob3VsZCBhbGxvdyBleHRlcm5h
bCBzY2hlbWVzIGJ1dCBub3QgQXBwIExpbmtzLgpAQCAtMTA2LDEyICsxMDYsMTIgQEAgVEVTVChX
ZWJLaXQsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNJbldpbgogICAgIEFTU0VSVF9GQUxTRShbYWN0
aW9uIF9zaG91bGRPcGVuQXBwTGlua3NdKTsKIAogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5n
OkAiPGJvZHkgb25jbGljaz1cIndpbmRvdy5vcGVuKCdodHRwOi8vYXBwbGUuY29tL2Rlc3RpbmF0
aW9uJylcIj4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd2Via2l0Lm9y
ZyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZpZ2F0aW9uKTsKICAgICBm
aW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKIAogICAgIFtbd2ViVmlldyBoaXRUZXN0OmNsaWNr
UG9pbnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVM
ZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFt
cDowIHdpbmRvd051bWJlcjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnRO
dW1iZXI6MCBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwogICAgIFtbd2ViVmlldyBoaXRUZXN0
OmNsaWNrUG9pbnRdIG1vdXNlVXA6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlTGVmdE1vdXNlVXAgbG9jYXRpb246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0
YW1wOjAgd2luZG93TnVtYmVyOlt3aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVu
dE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVzc3VyZToxXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZjcmVhdGVkV2ViVmlldyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
Y3JlYXRlZFdlYlZpZXcpOwogICAgIGNyZWF0ZWRXZWJWaWV3ID0gZmFsc2U7CiAKICAgICAvLyBV
c2VyLWluaXRpYXRlZCB3aW5kb3cub3BlbiB0byBkaWZmZXJlbnQgaG9zdCBzaG91bGQgYWxsb3cg
ZXh0ZXJuYWwgc2NoZW1lcyBhbmQgQXBwIExpbmtzLgpAQCAtMTIwLDcgKzEyMCw3IEBAIFRFU1Qo
V2ViS2l0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5XaW4KIAogICAgIGRlY2lkZWRQb2xpY3kg
PSBmYWxzZTsKICAgICBbbmV3V2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6Y29udHJvbGxl
ci5nZXQoKV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkZWNpZGVkUG9saWN5KTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkZWNpZGVkUG9saWN5KTsKICAgICBkZWNpZGVk
UG9saWN5ID0gZmFsc2U7CiAKICAgICAvLyBVc2VyLWluaXRpYXRlZCB3aW5kb3cub3BlbiB0byBk
aWZmZXJlbnQgaG9zdCBzaG91bGQgYWxsb3cgZXh0ZXJuYWwgc2NoZW1lcyBhbmQgQXBwIExpbmtz
LgpAQCAtMTQzLDcgKzE0Myw3IEBAIFRFU1QoV2ViS2l0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
SW5UYXIKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmNvbnRyb2xsZXIuZ2V0KCldOwogCiAg
ICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8YSBzdHlsZT1cImRpc3BsYXk6IGJsb2NrOyBo
ZWlnaHQ6IDEwMCVcIiBocmVmPVwiaHR0cHM6Ly93ZWJraXQub3JnL2Rlc3RpbmF0aW9uLmh0bWxc
IiB0YXJnZXQ9XCJfYmxhbmtcIj4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRw
Oi8vd2Via2l0Lm9yZyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVk
TmF2aWdhdGlvbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZpZ2F0
aW9uKTsKICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKIAogICAgIE5TUG9pbnQgY2xp
Y2tQb2ludCA9IE5TTWFrZVBvaW50KDEwMCwgMTAwKTsKQEAgLTE1MSwxNCArMTUxLDE0IEBAIFRF
U1QoV2ViS2l0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzSW5UYXIKICAgICBkZWNpZGVkUG9saWN5
ID0gZmFsc2U7CiAgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VEb3duOltO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZURvd24gbG9jYXRp
b246Y2xpY2tQb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOlt3
aW5kb3cgd2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6
MSBwcmVzc3VyZToxXV07CiAgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VV
cDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcCBsb2Nh
dGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6
W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3Vu
dDoxIHByZXNzdXJlOjFdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRlY2lkZWRQ
b2xpY3kpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRlY2lkZWRQb2xpY3kpOwogICAg
IGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKIAogICAgIC8vIFVzZXItaW5pdGlhdGVkIHRhcmdldGVk
IG5hdmlnYXRpb24gdG8gdGhlIHNhbWUgaG9zdCBzaG91bGQgYWxsb3cgZXh0ZXJuYWwgc2NoZW1l
cyBidXQgbm90IEFwcCBMaW5rcy4KICAgICBBU1NFUlRfVFJVRShbYWN0aW9uIF9zaG91bGRPcGVu
RXh0ZXJuYWxTY2hlbWVzXSk7CiAgICAgQVNTRVJUX0ZBTFNFKFthY3Rpb24gX3Nob3VsZE9wZW5B
cHBMaW5rc10pOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjcmVhdGVkV2ViVmll
dyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoY3JlYXRlZFdlYlZpZXcpOwogICAgIGNy
ZWF0ZWRXZWJWaWV3ID0gZmFsc2U7CiAKICAgICAvLyBVc2VyLWluaXRpYXRlZCB0YXJnZXRlZCBu
YXZpZ2F0aW9uIHRvIHRoZSBzYW1lIGhvc3Qgc2hvdWxkIGFsbG93IGV4dGVybmFsIHNjaGVtZXMg
YnV0IG5vdCBBcHAgTGlua3MuCkBAIC0xNjcsNyArMTY3LDcgQEAgVEVTVChXZWJLaXQsIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNJblRhcgogCiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogICAg
IFtuZXdXZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpjb250cm9sbGVyLmdldCgpXTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRlY2lkZWRQb2xpY3kpOwogICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxz
ZTsKIAogICAgIC8vIFVzZXItaW5pdGlhdGVkIHRhcmdldGVkIG5hdmlnYXRpb24gdG8gdGhlIHNh
bWUgaG9zdCBzaG91bGQgYWxsb3cgZXh0ZXJuYWwgc2NoZW1lcyBidXQgbm90IEFwcCBMaW5rcy4K
QEAgLTE3NSwyMCArMTc1LDIwIEBAIFRFU1QoV2ViS2l0LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
SW5UYXIKICAgICBBU1NFUlRfRkFMU0UoW2FjdGlvbiBfc2hvdWxkT3BlbkFwcExpbmtzXSk7CiAK
ICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxhIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7
IGhlaWdodDogMTAwJVwiIGhyZWY9XCJodHRwOi8vYXBwbGUuY29tL2Rlc3RpbmF0aW9uLmh0bWxc
IiB0YXJnZXQ9XCJfYmxhbmtcIj4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRw
Oi8vd2Via2l0Lm9yZyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVk
TmF2aWdhdGlvbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZpZ2F0
aW9uKTsKICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKIAogICAgIGRlY2lkZWRQb2xp
Y3kgPSBmYWxzZTsKICAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3VzZURvd246
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlTGVmdE1vdXNlRG93biBsb2Nh
dGlvbjpjbGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6
W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3Vu
dDoxIHByZXNzdXJlOjFdXTsKICAgICBbW3dlYlZpZXcgaGl0VGVzdDpjbGlja1BvaW50XSBtb3Vz
ZVVwOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUxlZnRNb3VzZVVwIGxv
Y2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJl
cjpbd2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBjbGlja0Nv
dW50OjEgcHJlc3N1cmU6MV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGVjaWRl
ZFBvbGljeSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGVjaWRlZFBvbGljeSk7CiAg
ICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogCiAgICAgLy8gVXNlci1pbml0aWF0ZWQgdGFyZ2V0
ZWQgbmF2aWdhdGlvbiB0byBkaWZmZXJlbnQgaG9zdCBzaG91bGQgYWxsb3cgZXh0ZXJuYWwgc2No
ZW1lcyBhbmQgQXBwIExpbmtzLgogICAgIEFTU0VSVF9UUlVFKFthY3Rpb24gX3Nob3VsZE9wZW5F
eHRlcm5hbFNjaGVtZXNdKTsKICAgICBBU1NFUlRfVFJVRShbYWN0aW9uIF9zaG91bGRPcGVuQXBw
TGlua3NdKTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmY3JlYXRlZFdlYlZpZXcp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGNyZWF0ZWRXZWJWaWV3KTsKICAgICBjcmVh
dGVkV2ViVmlldyA9IGZhbHNlOwogCiAgICAgLy8gVXNlci1pbml0aWF0ZWQgdGFyZ2V0ZWQgbmF2
aWdhdGlvbiB0byBkaWZmZXJlbnQgaG9zdCBzaG91bGQgYWxsb3cgZXh0ZXJuYWwgc2NoZW1lcyBh
bmQgQXBwIExpbmtzLgpAQCAtMTk3LDcgKzE5Nyw3IEBAIFRFU1QoV2ViS2l0LCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzSW5UYXIKIAogICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKICAgICBbbmV3
V2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6Y29udHJvbGxlci5nZXQoKV07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkZWNpZGVkUG9saWN5KTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkZWNpZGVkUG9saWN5KTsKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7CiAK
ICAgICAvLyBVc2VyLWluaXRpYXRlZCB0YXJnZXRlZCBuYXZpZ2F0aW9uIHRvIGRpZmZlcmVudCBo
b3N0IHNob3VsZCBhbGxvdyBleHRlcm5hbCBzY2hlbWVzIGFuZCBBcHAgTGlua3MuCkBAIC0yMjAs
MTMgKzIyMCwxMyBAQCBURVNUKFdlYktpdCwgUmVzdG9yZVNob3VsZE9wZW5FeHRlcm5hbFVSCiAg
ICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0
ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAic2hvdWxkLW9wZW4tZXh0ZXJuYWwtc2NoZW1lcyIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChm
aW5pc2hlZE5hdmlnYXRpb24pOwogICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogCiAg
ICAgLy8gQmVmb3JlIGNyYXNoCiAgICAgZGVjaWRlZFBvbGljeSA9IGZhbHNlOwogICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRlVG9UZWxVUkxJbk5lc3RlZFplcm9UaW1l
cigpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOyAvLyBOb24tdXNlciBpbml0aWF0ZWQgbmF2aWdh
dGlvbiBiZWNhdXNlIGl0IGlzIHBlcmZvcm1lZCBpbiBhIG5lc3RlZCB0aW1lciBjYWxsYmFjay4K
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRlY2lkZWRQb2xpY3kpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRlY2lkZWRQb2xpY3kpOwogICAgIGRlY2lkZWRQb2xpY3kgPSBm
YWxzZTsKIAogICAgIEFTU0VSVF9UUlVFKFthY3Rpb24gX3Nob3VsZE9wZW5FeHRlcm5hbFNjaGVt
ZXNdKTsKQEAgLTIzNywxMyArMjM3LDEzIEBAIFRFU1QoV2ViS2l0LCBSZXN0b3JlU2hvdWxkT3Bl
bkV4dGVybmFsVVIKICAgICBbd2ViVmlldyByZWxvYWRdOwogCiAgICAgZmluaXNoZWROYXZpZ2F0
aW9uID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmln
YXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkTmF2aWdhdGlvbik7
CiAgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CiAKICAgICAvLyBBZnRlciBjcmFzaAog
ICAgIGRlY2lkZWRQb2xpY3kgPSBmYWxzZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3Jp
cHQ6QCJuYXZpZ2F0ZVRvVGVsVVJMSW5OZXN0ZWRaZXJvVGltZXIoKSIgY29tcGxldGlvbkhhbmRs
ZXI6bmlsXTsgLy8gTm9uLXVzZXIgaW5pdGlhdGVkIG5hdmlnYXRpb24gYmVjYXVzZSBpdCBpcyBw
ZXJmb3JtZWQgaW4gYSBuZXN0ZWQgdGltZXIgY2FsbGJhY2suCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkZWNpZGVkUG9saWN5KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
ZWNpZGVkUG9saWN5KTsKICAgICBkZWNpZGVkUG9saWN5ID0gZmFsc2U7CiAKICAgICBBU1NFUlRf
VFJVRShbYWN0aW9uIF9zaG91bGRPcGVuRXh0ZXJuYWxTY2hlbWVzXSk7CkBAIC0zMjAsNyArMzIw
LDcgQEAgVEVTVChXZWJLaXQsIElGcmFtZVdpdGhTYW1lT3JpZ2luQXNNYWluRgogICAgIFtbd2Vi
VmlldyBoaXRUZXN0OmNsaWNrUG9pbnRdIG1vdXNlRG93bjpbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VEb3duIGxvY2F0aW9uOmNsaWNrUG9pbnQgbW9kaWZp
ZXJGbGFnczowIHRpbWVzdGFtcDowIHdpbmRvd051bWJlcjpbd2ViVmlldy5nZXQoKS53aW5kb3cg
d2luZG93TnVtYmVyXSBjb250ZXh0Om5pbCBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MSBwcmVz
c3VyZToxXV07CiAgICAgW1t3ZWJWaWV3IGhpdFRlc3Q6Y2xpY2tQb2ludF0gbW91c2VVcDpbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVMZWZ0TW91c2VVcCBsb2NhdGlvbjpj
bGlja1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6W3dlYlZp
ZXcuZ2V0KCkud2luZG93IHdpbmRvd051bWJlcl0gY29udGV4dDpuaWwgZXZlbnROdW1iZXI6MCBj
bGlja0NvdW50OjEgcHJlc3N1cmU6MV1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZmaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWQpOwogICAg
IAogICAgIEFTU0VSVF9UUlVFKG9wZW5BcHBMaW5rcyk7CiAgICAgQVNTRVJUX1RSVUUoZXh0ZXJu
YWxTY2hlbWVzKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
U2hyaW5rVG9GaXQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TaHJpbmtUb0ZpdC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TaHJpbmtUb0ZpdC5tbQkod29ya2luZyBjb3B5
KQpAQCAtNDcsNyArNDcsNyBAQCBURVNUKFdlYktpdCwgU2hyaW5rVG9GaXQpCiAgICAgICAgIHNo
cmlua1RvRml0RG9uZSA9IHRydWU7CiAgICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJnNocmlua1RvRml0RG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoc2hy
aW5rVG9GaXREb25lKTsKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
ImxvdHMtb2YtdGV4dCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3Rd
OwpAQCAtNTksNyArNTksNyBAQCBURVNUKFdlYktpdCwgU2hyaW5rVG9GaXQpCiAgICAgICAgIHNo
cmlua1RvRml0QWZ0ZXJOYXZpZ2F0aW9uRG9uZSA9IHRydWU7CiAgICAgfV07CiAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnNocmlua1RvRml0QWZ0ZXJOYXZpZ2F0aW9uRG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoc2hyaW5rVG9GaXRBZnRlck5hdmlnYXRpb25Eb25l
KTsKIAogICAgIFt3ZWJWaWV3IF9zZXRMYXlvdXRNb2RlOl9XS0xheW91dE1vZGVWaWV3U2l6ZV07
CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYm9keS5jbGllbnRX
aWR0aCIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CkBA
IC02Nyw3ICs2Nyw3IEBAIFRFU1QoV2ViS2l0LCBTaHJpbmtUb0ZpdCkKICAgICAgICAgc2hyaW5r
VG9GaXREaXNhYmxlZERvbmUgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZzaHJpbmtUb0ZpdERpc2FibGVkRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoc2hyaW5rVG9GaXREaXNhYmxlZERvbmUpOwogfQogCiAjZW5kaWYKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU25hcHNob3RTdG9yZS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NuYXBzaG90
U3RvcmUubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU25hcHNob3RTdG9yZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYs
NyBAQCAtICh2b2lkKXN5bmNocm9ub3VzbHlGb3JjZVJlcGFpbnQKIHsKICAgICBkaWRGb3JjZVJl
cGFpbnQgPSBmYWxzZTsKICAgICBXS1BhZ2VGb3JjZVJlcGFpbnQoW3NlbGYgX3BhZ2VGb3JUZXN0
aW5nXSwgMCwgZm9yY2VSZXBhaW50Q2FsbGJhY2spOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZGlkRm9yY2VSZXBhaW50KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRG
b3JjZVJlcGFpbnQpOwogfQogCiAtICh2b2lkKXN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VBbmRG
b3JjZVJlcGFpbnQ6KE5TU3RyaW5nICopdGVzdFBhZ2VOYW1lCkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1N0b3BTdXNwZW5kUmVzdW1lQWxsTWVkaWEubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TdG9wU3Vz
cGVuZFJlc3VtZUFsbE1lZGlhLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1N0b3BTdXNwZW5kUmVzdW1lQWxsTWVkaWEubW0JKHdv
cmtpbmcgY29weSkKQEAgLTQ2LDEyICs0NiwxMiBAQCBURVNUKFdLV2ViVmlldywgU3RvcEFsbE1l
ZGlhUGxheWJhY2spCiAgICAgX19ibG9jayBib29sIGRpZEJlZ2luUGxheWluZyA9IGZhbHNlOwog
ICAgIFt3ZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJwbGF5aW5nIiBhY3Rp
b246XnsgZGlkQmVnaW5QbGF5aW5nID0gdHJ1ZTsgfV07CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVK
YXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKS5wbGF5KCkiIGNvbXBs
ZXRpb25IYW5kbGVyOm5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRCZWdp
blBsYXlpbmcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZEJlZ2luUGxheWluZyk7
CiAKICAgICBfX2Jsb2NrIGJvb2wgZGlkUGF1c2UgPSBmYWxzZTsKICAgICBbd2ViVmlldyBwZXJm
b3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAicGF1c2UiIGFjdGlvbjpeeyBkaWRQYXVzZSA9IHRy
dWU7IH1dOwogICAgIFt3ZWJWaWV3IF9zdG9wQWxsTWVkaWFQbGF5YmFja107Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkaWRQYXVzZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZGlkUGF1c2UpOwogfQogCiBURVNUKFdLV2ViVmlldywgU3VzcGVuZFJlc3VtZUFsbE1lZGlh
UGxheWJhY2spCkBAIC02NiwxMiArNjYsMTIgQEAgVEVTVChXS1dlYlZpZXcsIFN1c3BlbmRSZXN1
bWVBbGxNZWRpYVBsYQogICAgIF9fYmxvY2sgYm9vbCBkaWRCZWdpblBsYXlpbmcgPSBmYWxzZTsK
ICAgICBbd2ViVmlldyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAicGxheWluZyIgYWN0
aW9uOl57IGRpZEJlZ2luUGxheWluZyA9IHRydWU7IH1dOwogICAgIFt3ZWJWaWV3IGV2YWx1YXRl
SmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJykucGxheSgpIiBjb21w
bGV0aW9uSGFuZGxlcjpuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQmVn
aW5QbGF5aW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRCZWdpblBsYXlpbmcp
OwogCiAgICAgX19ibG9jayBib29sIGRpZFBhdXNlID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgcGVy
Zm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAInBhdXNlIiBhY3Rpb246XnsgZGlkUGF1c2UgPSB0
cnVlOyB9XTsKICAgICBbd2ViVmlldyBfc3VzcGVuZEFsbE1lZGlhUGxheWJhY2tdOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkUGF1c2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRpZFBhdXNlKTsKIAogICAgIF9fYmxvY2sgYm9vbCBkaWRSZWplY3QgPSBmYWxzZTsK
ICAgICBbd2ViVmlldyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAicmVqZWN0ZWQiIGFj
dGlvbjpeeyBkaWRSZWplY3QgPSB0cnVlOyB9XTsKQEAgLTgwLDcgKzgwLDcgQEAgVEVTVChXS1dl
YlZpZXcsIFN1c3BlbmRSZXN1bWVBbGxNZWRpYVBsYQogICAgIGRpZEJlZ2luUGxheWluZyA9IGZh
bHNlOwogICAgIFt3ZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJwbGF5aW5n
IiBhY3Rpb246XnsgZGlkQmVnaW5QbGF5aW5nID0gdHJ1ZTsgfV07CiAgICAgW3dlYlZpZXcgX3Jl
c3VtZUFsbE1lZGlhUGxheWJhY2tdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlk
QmVnaW5QbGF5aW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRCZWdpblBsYXlp
bmcpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1N0b3JhZ2VRdW90YS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1N0b3JhZ2VRdW90YS5tbQko
cmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TdG9yYWdlUXVvdGEubW0JKHdvcmtpbmcgY29weSkKQEAgLTE5OSw3ICsxOTksNyBAQCBURVNU
KFdlYktpdCwgUXVvdGFEZWxlZ2F0ZSkKICAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0
RGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNp
dGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlv
bkhhbmRsZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChk
b25lKTsKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAKQEAgLTIyNSw3ICsyMjUsNyBAQCBURVNUKFdlYktp
dCwgUXVvdGFEZWxlZ2F0ZSkKICAgICAKICAgICByZWNlaXZlZFF1b3RhRGVsZWdhdGVDYWxsZWQg
PSBmYWxzZTsKICAgICBbd2ViVmlldzEgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInF0MTovL3Rlc3QxLmh0bWwiXV1dOwotICAg
IFV0aWw6OnJ1bigmcmVjZWl2ZWRRdW90YURlbGVnYXRlQ2FsbGVkKTsKKyAgICBydW5VbnRpbChy
ZWNlaXZlZFF1b3RhRGVsZWdhdGVDYWxsZWQpOwogCiAgICAgYXV0byB3ZWJWaWV3MiA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZ
RVNdKTsKICAgICBhdXRvIGRlbGVnYXRlMiA9IGFkb3B0TlMoW1tRdW90YURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CkBAIC0yMzUsMTQgKzIzNSwxNCBAQCBURVNUKFdlYktpdCwgUXVvdGFEZWxlZ2F0
ZSkKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKICAgICBbd2ViVmlldzIgbG9hZFJlcXVl
c3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInF0
MjovL3Rlc3QyLmh0bWwiXV1dOwogICAgIFttZXNzYWdlSGFuZGxlciBzZXRFeHBlY3RlZE1lc3Nh
Z2U6IEAic3RhcnQiXTsKLSAgICBVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7CisgICAgcnVu
VW50aWwocmVjZWl2ZWRNZXNzYWdlKTsKIAogICAgIEVYUEVDVF9GQUxTRShkZWxlZ2F0ZTIuZ2V0
KCkucXVvdGFEZWxlZ2F0ZUNhbGxlZCk7CiAgICAgW2RlbGVnYXRlMSBncmFudFF1b3RhXTsKIAog
ICAgIFttZXNzYWdlSGFuZGxlciBzZXRFeHBlY3RlZE1lc3NhZ2U6IEAicGFzcyJdOwogICAgIHJl
Y2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIFV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsK
KyAgICBydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwogCiAgICAgd2hpbGUgKCFkZWxlZ2F0ZTIu
Z2V0KCkucXVvdGFEZWxlZ2F0ZUNhbGxlZCkKICAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
c2xlZXAoMC4xKTsKQEAgLTI1MSw3ICsyNTEsNyBAQCBURVNUKFdlYktpdCwgUXVvdGFEZWxlZ2F0
ZSkKIAogICAgIFttZXNzYWdlSGFuZGxlciBzZXRFeHBlY3RlZE1lc3NhZ2U6IEAiZmFpbCJdOwog
ICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIFV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNz
YWdlKTsKKyAgICBydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwogfQogCiBURVNUKFdlYktpdCwg
UXVvdGFEZWxlZ2F0ZVJlbG9hZCkKQEAgLTI2MCw3ICsyNjAsNyBAQCBURVNUKFdlYktpdCwgUXVv
dGFEZWxlZ2F0ZVJlbG9hZCkKICAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0
b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRh
VHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRs
ZXI6XigpIHsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
ICAgICAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIApAQCAtMjgxLDIzICsyODEsMjMgQEAgVEVTVChX
ZWJLaXQsIFF1b3RhRGVsZWdhdGVSZWxvYWQpCiAKICAgICByZWNlaXZlZFF1b3RhRGVsZWdhdGVD
YWxsZWQgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicXQ6Ly90ZXN0MS5odG1sIl1dXTsK
LSAgICBVdGlsOjpydW4oJnJlY2VpdmVkUXVvdGFEZWxlZ2F0ZUNhbGxlZCk7CisgICAgcnVuVW50
aWwocmVjZWl2ZWRRdW90YURlbGVnYXRlQ2FsbGVkKTsKIAogICAgIFtkZWxlZ2F0ZSBkZW55UXVv
dGFdOwogCiAgICAgW21lc3NhZ2VIYW5kbGVyIHNldEV4cGVjdGVkTWVzc2FnZTogQCJmYWlsIl07
CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVXRpbDo6cnVuKCZyZWNlaXZlZE1l
c3NhZ2UpOworICAgIHJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7CiAKICAgICByZWNlaXZlZFF1
b3RhRGVsZWdhdGVDYWxsZWQgPSBmYWxzZTsKICAgICBbd2ViVmlldyByZWxvYWRdOwotICAgIFV0
aWw6OnJ1bigmcmVjZWl2ZWRRdW90YURlbGVnYXRlQ2FsbGVkKTsKKyAgICBydW5VbnRpbChyZWNl
aXZlZFF1b3RhRGVsZWdhdGVDYWxsZWQpOwogCiAgICAgW2RlbGVnYXRlIGdyYW50UXVvdGFdOwog
CiAgICAgW21lc3NhZ2VIYW5kbGVyIHNldEV4cGVjdGVkTWVzc2FnZTogQCJwYXNzIl07CiAgICAg
cmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVXRpbDo6cnVuKCZyZWNlaXZlZE1lc3NhZ2Up
OworICAgIHJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7CiB9CiAKIFRFU1QoV2ViS2l0LCBRdW90
YURlbGVnYXRlTmF2aWdhdGVGcmFnbWVudCkKQEAgLTMwNiw3ICszMDYsNyBAQCBURVNUKFdlYktp
dCwgUXVvdGFEZWxlZ2F0ZU5hdmlnYXRlRnJhZ21lCiAgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUg
ZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBh
bGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNv
bXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogCkBAIC0zMjcsMTMgKzMyNywxMyBAQCBU
RVNUKFdlYktpdCwgUXVvdGFEZWxlZ2F0ZU5hdmlnYXRlRnJhZ21lCiAKICAgICByZWNlaXZlZFF1
b3RhRGVsZWdhdGVDYWxsZWQgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicXQ6Ly90ZXN0
MS5odG1sIl1dXTsKLSAgICBVdGlsOjpydW4oJnJlY2VpdmVkUXVvdGFEZWxlZ2F0ZUNhbGxlZCk7
CisgICAgcnVuVW50aWwocmVjZWl2ZWRRdW90YURlbGVnYXRlQ2FsbGVkKTsKIAogICAgIFtkZWxl
Z2F0ZSBkZW55UXVvdGFdOwogCiAgICAgW21lc3NhZ2VIYW5kbGVyIHNldEV4cGVjdGVkTWVzc2Fn
ZTogQCJmYWlsIl07CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVXRpbDo6cnVu
KCZyZWNlaXZlZE1lc3NhZ2UpOworICAgIHJ1blVudGlsKHJlY2VpdmVkTWVzc2FnZSk7CiAKICAg
ICByZWNlaXZlZFF1b3RhRGVsZWdhdGVDYWxsZWQgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAicXQ6Ly90ZXN0MS5odG1sI2ZyYWdtZW50Il1dXTsKQEAgLTM0MSwxMSArMzQxLDExIEBAIFRF
U1QoV2ViS2l0LCBRdW90YURlbGVnYXRlTmF2aWdhdGVGcmFnbWUKIAogICAgIFttZXNzYWdlSGFu
ZGxlciBzZXRFeHBlY3RlZE1lc3NhZ2U6IEAic3RhcnQiXTsKICAgICByZWNlaXZlZE1lc3NhZ2Ug
PSBmYWxzZTsKLSAgICBVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7CisgICAgcnVuVW50aWwo
cmVjZWl2ZWRNZXNzYWdlKTsKIAogICAgIFttZXNzYWdlSGFuZGxlciBzZXRFeHBlY3RlZE1lc3Nh
Z2U6IEAiZmFpbCJdOwogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwotICAgIFV0aWw6OnJ1
bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICBydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwogCiAg
ICAgRVhQRUNUX0ZBTFNFKHJlY2VpdmVkUXVvdGFEZWxlZ2F0ZUNhbGxlZCk7CiB9CkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1N0b3JlQmxvYlRoZW5EZWxldGUu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
dG9yZUJsb2JUaGVuRGVsZXRlLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1N0b3JlQmxvYlRoZW5EZWxldGUubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTYzLDcgKzYzLDcgQEAgVEVTVChJbmRleGVkREIsIFN0b3JlQmxvYlRoZW5EZWxl
dGUpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiU3RvcmVCbG9iVG9C
ZURlbGV0ZWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRvQ29udGludWUpOwogICAgIEVYUEVDVF9XS19TVFJF
UShAIlN1Y2Nlc3MiLCAoTlNTdHJpbmcgKilbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogCiAg
ICAgTlNTdHJpbmcgKmhhc2ggPSBXZWJDb3JlOjpTUUxpdGVGaWxlU3lzdGVtOjpjb21wdXRlSGFz
aEZvckZpbGVOYW1lKCJTdG9yZUJsb2JUb0JlRGVsZXRlZCIpOwpAQCAtMTI0LDUgKzEyNCw1IEBA
IFRFU1QoSW5kZXhlZERCLCBTdG9yZUJsb2JUaGVuRGVsZXRlKQogCiAgICAgICAgIHJlYWR5VG9D
b250aW51ZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWFkeVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlYWR5VG9Db250
aW51ZSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJ
RGVsZWdhdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9VSURlbGVnYXRlLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAg
LTcyLDcgKzcyLDcgQEAgVEVTVChXZWJLaXQsIFdLV2ViVmlld0lzUGxheWluZ0F1ZGlvKQogICAg
IFt3ZWJWaWV3IGFkZE9ic2VydmVyOm9ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJfaXNQbGF5
aW5nQXVkaW8iIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyB8IE5TS2V5VmFs
dWVPYnNlcnZpbmdPcHRpb25PbGQgY29udGV4dDpuaWxdOwogICAgIFt3ZWJWaWV3IHN5bmNocm9u
b3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAImZpbGUtd2l0aC12aWRlbyJdOwogICAgIFt3ZWJWaWV3
IGV2YWx1YXRlSmF2YVNjcmlwdDpAInBsYXlWaWRlbygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxd
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiB9CiAKIEBpbnRlcmZhY2UgTm9VSURlbGVnYXRlIDogTlNPYmpl
Y3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPgpAQCAtOTYsNyArOTYsNyBAQCBURVNUKFdlYktpdCwg
V2luZG93T3BlbldpdGhvdXRVSURlbGVnYXRlCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tOb1VJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9u
RGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAi
PHNjcmlwdD53aW5kb3cub3Blbignc2ltcGxlMi5odG1sJyk7d2luZG93LmxvY2F0aW9uPSdzaW1w
bGUuaHRtbCc8L3NjcmlwdD4iIGJhc2VVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAInNpbXBsZTIiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJU
ZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiBAaW50ZXJm
YWNlIEdlb2xvY2F0aW9uRGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4g
ewpAQCAtMTYyLDEzICsxNjIsMTMgQEAgVEVTVChXZWJLaXQsIEdlb2xvY2F0aW9uUGVybWlzc2lv
bikKICAgICBhdXRvIGRlbGVnYXRlMSA9IGFkb3B0TlMoW1tHZW9sb2NhdGlvbkRlbGVnYXRlIGFs
bG9jXSBpbml0V2l0aEFsbG93R2VvbG9jYXRpb246ZmFsc2VdKTsKICAgICBbd2ViVmlldyBzZXRV
SURlbGVnYXRlOmRlbGVnYXRlMS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6
aHRtbCBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly9leGFtcGxlLmNvbS8i
XV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKIAogICAgIGRvbmUgPSBmYWxzZTsKICAgICBhdXRvIGRlbGVn
YXRlMiA9IGFkb3B0TlMoW1tHZW9sb2NhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aEFsbG93
R2VvbG9jYXRpb246dHJ1ZV0pOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUy
LmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJodHRwczovL2V4YW1wbGUub3JnLyJdXTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogfQogCiBAaW50ZXJmYWNlIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZUlzU2VsZWN0RWxlbWVu
dERlbGVnYXRlIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+CkBAIC0xOTMsNyArMTkz
LDcgQEAgVEVTVChXZWJLaXQsIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZUlzUwogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlSXNTZWxlY3RFbGVt
ZW50RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRl
bGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6YmxhbmsiXV1dOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZG9uZSk7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0yNDQsNyArMjQ0LDcgQEAg
VEVTVChXZWJLaXQsIFNob3dXZWJWaWV3KQogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgW3dlYlZpZXcgc2V0VUlE
ZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly8vZmly
c3QiXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAgCiAgICAgQVNTRVJUX0VRKHdlYlZpZXdGcm9t
RGVsZWdhdGVDYWxsYmFjaywgY3JlYXRlZFdlYlZpZXcpOwogfQpAQCAtMjc0LDcgKzI3NCw3IEBA
IFRFU1QoV2ViS2l0LCBQb2ludGVyTG9jaykKICAgICAgICAgQCI8L3NjcmlwdD4iCiAgICAgXTsK
ICAgICBbd2ViVmlldyBzZW5kQ2xpY2tzQXRQb2ludDpOU01ha2VQb2ludCgyMDAsIDIwMCkgbnVt
YmVyT2ZDbGlja3M6MV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogc3RhdGljIGJvb2wgcmVzaXph
YmxlU2V0OwpAQCAtMzE1LDcgKzMxNSw3IEBAIFRFU1QoV2ViS2l0LCBSdW5Nb2RhbCkKICAgICBO
U1N0cmluZyAqaHRtbCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAlQCVAIiwgQCI8
c2NyaXB0PiBmdW5jdGlvbiBvcGVuTW9kYWwoKSB7IHdpbmRvdy5zaG93TW9kYWxEaWFsb2coJyIs
IHVybCwgQCInKTsgfSA8L3NjcmlwdD4gPGlucHV0IHR5cGU9J2J1dHRvbicgdmFsdWU9J0NsaWNr
IHRvIG9wZW4gbW9kYWwnIG9uY2xpY2s9J29wZW5Nb2RhbCgpOyc+Il07CiAgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmh0bWxdOwogICAgIFt3ZWJWaWV3IHNlbmRDbGlj
a3NBdFBvaW50Ok5TTWFrZVBvaW50KDIwLCA2MDAgLSAyMCkgbnVtYmVyT2ZDbGlja3M6MV07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lKTsKIH0KIAogc3RhdGljIGJvb2wgcmVjZWl2ZWRXaW5kb3dGcmFtZTsKQEAg
LTM1NCw4ICszNTQsOCBAQCBURVNUKFdlYktpdCwgV2luZG93RnJhbWUpCiAgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNl
dFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5n
OkAiPHNjcmlwdD5tb3ZlQnkoMTAsMjApO2FsZXJ0KG91dGVyV2lkdGgpOzwvc2NyaXB0PiIgYmFz
ZVVSTDpuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRXaW5kb3dG
cmFtZSk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFdpbmRvd0ZyYW1lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKIH0KIAogc3RhdGljIGJvb2wgaGVhZGVySGVpZ2h0Q2FsbGVkOwpA
QCAtNDE0LDE3ICs0MTQsMTcgQEAgVEVTVChXZWJLaXQsIFByaW50RnJhbWUpCiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQcmludERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dl
YlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZEhU
TUxTdHJpbmc6QCI8aGVhZD48dGl0bGU+dGVzdF90aXRsZTwvdGl0bGU+PC9oZWFkPjxib2R5IG9u
bG9hZD0ncHJpbnQoKSc+aGVsbG8gd29ybGQhPC9ib2R5PiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIAogICAg
IE5TUHJpbnRPcGVyYXRpb24gKm9wZXJhdGlvbiA9IFt3ZWJWaWV3IF9wcmludE9wZXJhdGlvbldp
dGhQcmludEluZm86W05TUHJpbnRJbmZvIHNoYXJlZFByaW50SW5mb11dOwogICAgIEVYUEVDVF9U
UlVFKG9wZXJhdGlvbi5jYW5TcGF3blNlcGFyYXRlVGhyZWFkKTsKICAgICBFWFBFQ1RfU1RSRVEo
b3BlcmF0aW9uLmpvYlRpdGxlLlVURjhTdHJpbmcsICJ0ZXN0X3RpdGxlIik7CiAKICAgICBbb3Bl
cmF0aW9uIHJ1bk9wZXJhdGlvbk1vZGFsRm9yV2luZG93Olt3ZWJWaWV3IGhvc3RXaW5kb3ddIGRl
bGVnYXRlOm5pbCBkaWRSdW5TZWxlY3RvcjpuaWwgY29udGV4dEluZm86bmlsXTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmhlYWRlckhlaWdodENhbGxlZCk7Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZmb290ZXJIZWlnaHRDYWxsZWQpOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZHJhd0hlYWRlckNhbGxlZCk7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkcmF3Rm9vdGVyQ2FsbGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChoZWFk
ZXJIZWlnaHRDYWxsZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZvb3RlckhlaWdo
dENhbGxlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZHJhd0hlYWRlckNhbGxlZCk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZHJhd0Zvb3RlckNhbGxlZCk7CiB9CiAKIEBp
bnRlcmZhY2UgTm90aWZpY2F0aW9uRGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4gewpAQCAtNDcwLDExICs0NzAsMTEgQEAgVEVTVChXZWJLaXQsIE5vdGlmaWNhdGlvblBl
cm1pc3Npb24pCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10g
aW5pdF0pOwogICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6W1tbTm90aWZpY2F0aW9uRGVsZWdh
dGUgYWxsb2NdIGluaXRXaXRoQWxsb3dOb3RpZmljYXRpb25zOllFU10gYXV0b3JlbGVhc2VdXTsK
ICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJodHRwOi8vZXhhbXBsZS5vcmciXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICBkb25l
ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpbW1tOb3RpZmljYXRpb25EZWxl
Z2F0ZSBhbGxvY10gaW5pdFdpdGhBbGxvd05vdGlmaWNhdGlvbnM6Tk9dIGF1dG9yZWxlYXNlXV07
CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAiaHR0cDovL2V4YW1wbGUuY29tIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKIEBp
bnRlcmZhY2UgUGx1Z0luRGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4K
QEAgLTUwMCw3ICs1MDAsNyBAQCBURVNUKFdlYktpdCwgVW5hdmFpbGFibGVQbHVnSW4pCiAgICAg
W3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPG9iamVjdCB0eXBlPSdhcHBsaWNhdGlvbi94LXNo
b2Nrd2F2ZS1mbGFzaCcvPiJdOwogICAgIFt3ZWJWaWV3IHNlbmRDbGlja3NBdFBvaW50Ok5TTWFr
ZVBvaW50KDIxMCwgNjAwIC0gODApIG51bWJlck9mQ2xpY2tzOjFdOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiB9CiAKIGJvb2wgZmlyc3RUb29sYmFyRG9uZTsKQEAgLTUzNSw3ICs1MzUsNyBAQCBURVNUKFdl
YktpdCwgVG9vbGJhclZpc2libGUpCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUb29s
YmFyRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRl
bGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6
QCI8c2NyaXB0PmFsZXJ0KCd2aXNpYmxlOicgKyB3aW5kb3cudG9vbGJhci52aXNpYmxlKTthbGVy
dCgndmlzaWJsZTonICsgd2luZG93LnRvb2xiYXIudmlzaWJsZSk8L3NjcmlwdD4iXTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogfQogCiBAaW50ZXJmYWNlIE1vdXNlTW92ZU92ZXJFbGVtZW50RGVsZWdhdGUg
OiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4KQEAgLTU2Miw3ICs1NjIsNyBAQCBURVNU
KFdlYktpdCwgTW91c2VNb3ZlT3ZlckVsZW1lbnQpCiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0
ZTpbW1tNb3VzZU1vdmVPdmVyRWxlbWVudERlbGVnYXRlIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFz
ZV1dOwogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIjxhIGhyZWY9
J2h0dHA6Ly9leGFtcGxlLmNvbS9wYXRoJyB0aXRsZT0nbGluayB0aXRsZSc+bGluayBsYWJlbDwv
YT4iXTsKICAgICBbd2ViVmlldyBtb3VzZU1vdmVUb1BvaW50Ok5TTWFrZVBvaW50KDIwLCA2MDAg
LSAyMCkgd2l0aEZsYWdzOk5TRXZlbnRNb2RpZmllckZsYWdTaGlmdF07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKIH0KIAogc3RhdGljIGJvb2wgcmVhZHlGb3JDbGljazsKQEAgLTU5NiwxMSArNTk2LDExIEBA
IFRFU1QoV2ViS2l0LCBDbGlja0F1dG9GaWxsQnV0dG9uKQogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbQXV0b0ZpbGxEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3ZWJWaWV3IHNl
dFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNj
cmlwdDpAIiIgY29tcGxldGlvbkhhbmRsZXI6IG5pbF07IC8vIEVuc3VyZSB0aGUgV2ViUHJvY2Vz
cyBhbmQgaW5qZWN0ZWQgYnVuZGxlIGFyZSBydW5uaW5nLgotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcmVhZHlGb3JDbGljayk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVh
ZHlGb3JDbGljayk7CiAgICAgTlNQb2ludCBidXR0b25Mb2NhdGlvbiA9IE5TTWFrZVBvaW50KDEz
MCwgNTc1KTsKICAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50OmJ1dHRvbkxvY2F0aW9uIHNp
bXVsYXRlUHJlc3N1cmU6Tk9dOwogICAgIFt3ZWJWaWV3IG1vdXNlVXBBdFBvaW50OmJ1dHRvbkxv
Y2F0aW9uXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiBzdGF0aWMgYm9vbCByZWFkeXRvUmVzaWdu
OwpAQCAtNjM2LDkgKzYzNiw5IEBAIHN0YXRpYyB2b2lkIHRlc3REaWRSZXNpZ25JbnB1dEVsZW1l
bnRTdHIKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0RpZFJlc2lnbklucHV0RWxlbWVu
dFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dl
YlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0OkAiIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOyAvLyBNYWtlIHN1cmUgV2Vi
UHJvY2VzcyBhbmQgaW5qZWN0ZWQgYnVuZGxlIGFyZSBydW5uaW5nLgotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcmVhZHl0b1Jlc2lnbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwocmVhZHl0b1Jlc2lnbik7CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OnNjcmlw
dCBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKIFRFU1QoV2Vi
S2l0LCBEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VXaGVuVHlw
ZURpZENoYW5nZSkKQEAgLTY3OCw3ICs2NzgsNyBAQCBURVNUKFdlYktpdCwgQXV0b0ZpbGxBdmFp
bGFibGUpCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tBdXRvRmlsbEF2YWlsYWJsZURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0
ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiIiBjb21wbGV0aW9u
SGFuZGxlcjogbmlsXTsgLy8gRW5zdXJlIHRoZSBXZWJQcm9jZXNzIGFuZCBpbmplY3RlZCBidW5k
bGUgYXJlIHJ1bm5pbmcuCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogQGludGVyZmFjZSBJbmplY3Rl
ZEJ1bmRsZU5vZGVIYW5kbGVJc1RleHRGaWVsZERlbGVnYXRlIDogTlNPYmplY3QgPFdLVUlEZWxl
Z2F0ZVByaXZhdGU+CkBAIC03MDMsNyArNzAzLDcgQEAgVEVTVChXZWJLaXQsIEluamVjdGVkQnVu
ZGxlTm9kZUhhbmRsZUlzVAogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbSW5qZWN0ZWRC
dW5kbGVOb2RlSGFuZGxlSXNUZXh0RmllbGREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFt3
ZWJWaWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJhYm91dDpibGFuayJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogQGludGVyZmFjZSBQaW5u
ZWRTdGF0ZU9ic2VydmVyIDogTlNPYmplY3QKQEAgLTcyOSw3ICs3MjksNyBAQCBURVNUKFdlYktp
dCwgUGlubmVkU3RhdGUpCiAgICAgYXV0byBvYnNlcnZlciA9IGFkb3B0TlMoW1tQaW5uZWRTdGF0
ZU9ic2VydmVyIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgYWRkT2JzZXJ2ZXI6b2JzZXJ2
ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAIl9waW5uZWRTdGF0ZSIgb3B0aW9uczpOU0tleVZhbHVlT2Jz
ZXJ2aW5nT3B0aW9uTmV3IHwgTlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk9sZCBjb250ZXh0Om5p
bF07CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBvbmxvYWQ9J3Njcm9sbCgx
MDAsIDEwMCknIHN0eWxlPSdoZWlnaHQ6MTAwMDB2aDsnLz4iIGJhc2VVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAK
IEBpbnRlcmZhY2UgRGlkU2Nyb2xsRGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4KQEAgLTc1MCw3ICs3NTAsNyBAQCBURVNUKFdlYktpdCwgRGlkU2Nyb2xsKQogICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbRGlkU2Nyb2xsRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
ICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmll
dyBsb2FkSFRNTFN0cmluZzpAIjxib2R5IG9ubG9hZD0nc2Nyb2xsKDEwMCwgMTAwKScgc3R5bGU9
J2hlaWdodDoxMDAwMHZoOycvPiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6
Ly9leGFtcGxlLmNvbS8iXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogc3RhdGljIE5TRXZlbnQg
KnRhYkV2ZW50KE5TV2luZG93ICp3aW5kb3csIE5TRXZlbnRUeXBlIHR5cGUsIE5TRXZlbnRNb2Rp
ZmllckZsYWdzIGZsYWdzKQpAQCAtNzkzLDcgKzc5Myw3IEBAIFRFU1QoV2ViS2l0LCBGb2N1cykK
ICAgICBOU1N0cmluZyAqaHRtbCA9IEAiPHNjcmlwdD5mdW5jdGlvbiBsb2FkZWQoKSB7IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpbicpLmZvY3VzKCk7IGFsZXJ0KCdyZWFkeScpOyB9PC9zY3Jp
cHQ+IgogICAgICI8Ym9keSBvbmxvYWQ9J2xvYWRlZCgpJz48aW5wdXQgdHlwZT0ndGV4dCcgaWQ9
J2luJz48L2JvZHk+IjsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl1dOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZG9uZSk7CiAgICAgQVNTRVJUX0VRKHRha2VuRGlyZWN0aW9uLCBfV0tGb2N1c0RpcmVjdGlvbkJh
Y2t3YXJkKTsKIH0KIApAQCAtODM0LDcgKzgzNCw3IEBAIFRFU1QoV2ViS2l0LCBTYXZlRGF0YVRv
RmlsZSkKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCld
OwogICAgIE5TVVJMICpwZGZVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAidGVzdCIgd2l0aEV4dGVuc2lvbjpAInBkZiIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOnBkZlVSTF1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKICNlbmRpZiAv
LyBNT1VTRV9FVkVOVF9DQVVTRVNfRE9XTkxPQUQKQEAgLTg4MCw3ICs4ODAsNyBAQCBURVNUKFdl
YktpdCwgRGlkTm90SGFuZGxlV2hlZWxFdmVudCkKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1doZWVsRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXRVSURlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxib2R5
IG9ubG9hZD0nYWxlcnQoXCJyZWFkeVwiKScgb253aGVlbD0nKCk9Pnt9JyBzdHlsZT0nb3ZlcmZs
b3c6aGlkZGVuOyBoZWlnaHQ6MTAwMDB2aDsnPjwvYm9keT4iIGJhc2VVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAK
ICNlbmRpZiAvLyBSRUxJQUJMRV9ESURfTk9UX0hBTkRMRV9XSEVFTF9FVkVOVApJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyQ29udGVudENvbnRyb2xsZXIu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9V
c2VyQ29udGVudENvbnRyb2xsZXIubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlckNvbnRlbnRDb250cm9sbGVyLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIs
IFNjcmlwdE1lc3MKIAogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdIZWxsbycpIiBj
b21wbGV0aW9uSGFuZGxlcjpuaWxdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2Vp
dmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAK
ICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJIZWxsbyIsIChOU1N0cmluZyAqKVtzY3JpcHRNZXNzYWdl
c1swXSBib2R5XSk7CkBAIC0xMTEsMTMgKzExMSwxMyBAQCBURVNUKFdLVXNlckNvbnRlbnRDb250
cm9sbGVyLCBTY3JpcHRNZXNzCiAgICAgaXNEb25lV2l0aE5hdmlnYXRpb24gPSBmYWxzZTsKICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9
IGZhbHNlOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAiSGVsbG8iLCAoTlNTdHJpbmcgKilbc2Ny
aXB0TWVzc2FnZXNbMF0gYm9keV0pOwogCiAgICAgaWYgKCFpc0RvbmVXaXRoTmF2aWdhdGlvbikK
LSAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmVXaXRoTmF2aWdhdGlvbik7
CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZVdpdGhOYXZpZ2F0aW9uKTsK
IAogICAgIF9fYmxvY2sgYm9vbCBpc0RvbmVFdmFsdWF0aW5nU2NyaXB0ID0gZmFsc2U7CiAgICAg
X19ibG9jayBOU1N0cmluZyAqcmVzdWx0VmFsdWUgPSBAIiI7CkBAIC0xMzQsNyArMTM0LDcgQEAg
VEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgU2NyaXB0TWVzcwogICAgICAgICAgICAgaXNE
b25lRXZhbHVhdGluZ1NjcmlwdCA9IHRydWU7CiAgICAgICAgIH1dOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc0RvbmVFdmFsdWF0aW5nU2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChpc0RvbmVFdmFsdWF0aW5nU2NyaXB0KTsKIAogICAgIEVYUEVDVF9XS19T
VFJFUShAIlBBU1MiLCByZXN1bHRWYWx1ZSk7CiB9CkBAIC0xNjIsNyArMTYyLDcgQEAgVEVTVChX
S1VzZXJDb250ZW50Q29udHJvbGxlciwgU2NyaXB0TWVzcwogICAgICAgICAgIiAgICB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5oYW5kbGVyVG9Qb3N0LnBvc3RNZXNzYWdlKCdGQUlMJyk7
IgogICAgICAgICAgIn0iIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICByZWNlaXZlZFNjcmlwdE1l
c3NhZ2UgPSBmYWxzZTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShAIlBBU1MiLCAoTlNTdHJpbmcg
Kilbc2NyaXB0TWVzc2FnZXNbMF0gYm9keV0pOwpAQCAtMTc3LDcgKzE3Nyw3IEBAIFRFU1QoV0tV
c2VyQ29udGVudENvbnRyb2xsZXIsIFNjcmlwdE1lc3MKICAgICAgICAgICIgICAgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMuaGFuZGxlclRvUG9zdC5wb3N0TWVzc2FnZSgnUEFTUycpOyIK
ICAgICAgICAgICJ9IiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNz
YWdlID0gZmFsc2U7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJQQVNTIiwgKE5TU3RyaW5nICop
W3NjcmlwdE1lc3NhZ2VzWzBdIGJvZHldKTsKQEAgLTIxMCw3ICsyMTAsNyBAQCBURVNUKFdLVXNl
ckNvbnRlbnRDb250cm9sbGVyLCBTY3JpcHRNZXNzCiAgICAgICAgICAiICAgIHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLmhhbmRsZXJUb1Bvc3QucG9zdE1lc3NhZ2UoJ1BBU1MnKTsiCiAg
ICAgICAgICAifSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2Fn
ZSA9IGZhbHNlOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAiUEFTUyIsIChOU1N0cmluZyAqKVtz
Y3JpcHRNZXNzYWdlc1swXSBib2R5XSk7CkBAIC0yNTAsNyArMjUwLDcgQEAgVEVTVChXS1VzZXJD
b250ZW50Q29udHJvbGxlciwgU2NyaXB0TWVzcwogICAgICAiICAgIHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLmhhbmRsZXJUb1Bvc3QucG9zdE1lc3NhZ2UoJ1BBU1MnKTsiCiAgICAgICJ9
IiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7
CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJQQVNTIiwgKE5TU3RyaW5nICopW3NjcmlwdE1lc3Nh
Z2VzWzBdIGJvZHldKTsKQEAgLTI3MSw3ICsyNzEsNyBAQCBURVNUKFdLVXNlckNvbnRlbnRDb250
cm9sbGVyLCBTY3JpcHRNZXNzCiAKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnRmly
c3QgTWVzc2FnZScpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEo
QCJGaXJzdCBNZXNzYWdlIiwgKE5TU3RyaW5nICopW3NjcmlwdE1lc3NhZ2VzWzBdIGJvZHldKTsK
ICAgICAKQEAgLTI4Miw3ICsyODIsNyBAQCBURVNUKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBT
Y3JpcHRNZXNzCiAKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cud2Vi
a2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnU2Vjb25kIE1lc3Nh
Z2UnKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAiU2Vjb25k
IE1lc3NhZ2UiLCAoTlNTdHJpbmcgKilbc2NyaXB0TWVzc2FnZXNbMV0gYm9keV0pOwogfQpAQCAt
MzA1LDcgKzMwNSw3IEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIsIFNjcmlwdE1lc3MK
ICAgICAvLyBUZXN0IHRoYXQgaGFuZGxlclRvUmVwbGFjZSB3YXMgc3VjY2VzZnVsbHkgYWRkZWQu
CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMuaGFuZGxlclRvUmVwbGFjZS5wb3N0TWVzc2FnZSgnUEFTUzEnKTsiIGNvbXBsZXRp
b25IYW5kbGVyOm5pbF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVk
U2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3Jp
cHRNZXNzYWdlKTsKICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKIAogICAgIEVY
UEVDVF9XS19TVFJFUShAIlBBU1MxIiwgKE5TU3RyaW5nICopW3NjcmlwdE1lc3NhZ2VzWzBdIGJv
ZHldKTsKQEAgLTMxNiw3ICszMTYsNyBAQCBURVNUKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBT
Y3JpcHRNZXNzCiAgICAgLy8gVGVzdCB0aGF0IGhhbmRsZXJUb1JlcGxhY2Ugc3RpbGwgd29ya3Mu
CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMuaGFuZGxlclRvUmVwbGFjZS5wb3N0TWVzc2FnZSgnUEFTUzInKTsiIGNvbXBsZXRp
b25IYW5kbGVyOm5pbF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVk
U2NyaXB0TWVzc2FnZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3Jp
cHRNZXNzYWdlKTsKICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKIAogICAgIEVY
UEVDVF9XS19TVFJFUShAIlBBU1MyIiwgKE5TU3RyaW5nICopW3NjcmlwdE1lc3NhZ2VzWzFdIGJv
ZHldKTsKQEAgLTMzOSw3ICszMzksNyBAQCBzdGF0aWMgdm9pZCBleHBlY3RTY3JpcHRFdmFsdWF0
ZXNUb0NvbG9yCiAgICAgICAgIGRpZENoZWNrQmFja2dyb3VuZENvbG9yID0gdHJ1ZTsKICAgICB9
XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQ2hlY2tCYWNrZ3JvdW5kQ29s
b3IpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZENoZWNrQmFja2dyb3VuZENvbG9y
KTsKICAgICBkaWRDaGVja0JhY2tncm91bmRDb2xvciA9IGZhbHNlOwogfQogCkBAIC01OTIsNyAr
NTkyLDcgQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclNjcmlwdAogc3RhdGlj
IHZvaWQgd2FpdEZvck1lc3NhZ2VzKHNpemVfdCBleHBlY3RlZENvdW50KQogewogICAgIHdoaWxl
IChzY3JpcHRNZXNzYWdlcy5zaXplKCkgPCBleHBlY3RlZENvdW50KSB7Ci0gICAgICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICAgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICAgICAgcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAgICAgfQogfQpAQCAtNjIyLDcgKzYyMiw3IEBA
IFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIsIEluamVjdFVzZXIKIAogICAgIGlzRG9uZVdp
dGhOYXZpZ2F0aW9uID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmVXaXRoTmF2aWdhdGlvbik7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lV2l0aE5hdmlnYXRpb24pOwogCiAgICAg
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJD
b250ZW50Q29udHJvbGxlcl0gX2FkZFVzZXJTY3JpcHRJbW1lZGlhdGVseTpzdGFydEFsbEZyYW1l
cy5nZXQoKV07CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Vz
ZXJDb250ZW50V29ybGQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Vc2VyQ29udGVudFdvcmxkLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJDb250ZW50V29ybGQubW0J
KHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgVEVTVChVc2VyQ29udGVudFdvcmxkLCBO
b3JtYWxXb3JsZFVzZXJTYwogICAgIH1dOwogCiAgICAgaXNEb25lID0gZmFsc2U7Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGlzRG9uZSk7CiB9CiAKIFRFU1QoVXNlckNvbnRlbnRXb3JsZCwgSXNvbGF0ZWRXb3JsZCkK
QEAgLTEwNyw3ICsxMDcsNyBAQCBURVNUKFVzZXJDb250ZW50V29ybGQsIElzb2xhdGVkV29ybGRV
c2VyCiAgICAgfV07CiAKICAgICBpc0RvbmUgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsK
IH0KIAogc3RhdGljIGJvb2wgZGlkT2JzZXJ2ZU5vcm1hbFdvcmxkOwpAQCAtMTQ5LDYgKzE0OSw2
IEBAICAgICBbW3dlYlZpZXcgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5XSByZWcKIAogICAgIFt3ZWJW
aWV3IGxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgc3R5bGU9J2JhY2tncm91bmQtY29sb3I6IHJlZDsn
PjwvYm9keT4iIGJhc2VVUkw6bmlsXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZGlkT2JzZXJ2ZU5vcm1hbFdvcmxkKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRp
ZE9ic2VydmVXb3JsZFdpdGhOYW1lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRP
YnNlcnZlTm9ybWFsV29ybGQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRpZE9ic2Vy
dmVXb3JsZFdpdGhOYW1lKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlvbkFjdGlvbi5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJJbml0aWF0
ZWRBY3Rpb25Jbk5hdmlnYXRpb25BY3Rpb24ubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlckluaXRpYXRlZEFjdGlvbkluTmF2
aWdhdGlvbkFjdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBsb2FkVGVzdChOU1N0cmluZyAqdGVzdCkKICAgICB7CiAgICAgICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6VVJMV2l0aEZyYWdt
ZW50KHRlc3QpXV07Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRO
YXZpZ2F0aW9uKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZp
Z2F0aW9uKTsKICAgICAgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CiAgICAgfQogCkBA
IC0xNDEsNyArMTQxLDcgQEAgVEVTVF9GKFVzZXJJbml0aWF0ZWRBY3Rpb25UZXN0LCBNYWlsdG9J
bgogCiAgICAgY2xpY2soKTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNo
ZWRQb2xpY3kpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkUG9saWN5KTsK
IH0KIAogVEVTVF9GKFVzZXJJbml0aWF0ZWRBY3Rpb25UZXN0LCBNYWlsdG9Jbkxvb3BBZnRlclRp
bWVyKQpAQCAtMTgyLDcgKzE4Miw3IEBAIFRFU1RfRihVc2VySW5pdGlhdGVkQWN0aW9uVGVzdCwg
TWFpbHRvSW4KIAogICAgIGNsaWNrKCk7CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmZpbmlzaGVkUG9saWN5KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZFBv
bGljeSk7CiB9CiAKIFRFU1RfRihVc2VySW5pdGlhdGVkQWN0aW9uVGVzdCwgTWFpbHRvSW5Mb29w
QWZ0ZXJQb3N0TWVzc2FnZSkKQEAgLTIyMyw3ICsyMjMsNyBAQCBURVNUX0YoVXNlckluaXRpYXRl
ZEFjdGlvblRlc3QsIE1haWx0b0luCiAKICAgICBjbGljaygpOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZmaW5pc2hlZFBvbGljeSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZmluaXNoZWRQb2xpY3kpOwogfQogCiBURVNUX0YoVXNlckluaXRpYXRlZEFjdGlvblRlc3Qs
IE1haWx0b0luTG9vcEFmdGVyTG9uZ1RpbWVyKQpAQCAtMjUyLDcgKzI1Miw3IEBAIFRFU1RfRihV
c2VySW5pdGlhdGVkQWN0aW9uVGVzdCwgTWFpbHRvSW4KIAogICAgIGNsaWNrKCk7CiAKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkUG9saWN5KTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChmaW5pc2hlZFBvbGljeSk7CiB9CiAKICNlbmRpZgpJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFEaXNhYmxlZC5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJNZWRp
YURpc2FibGVkLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1VzZXJNZWRpYURpc2FibGVkLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDQsNyArMTA0LDcgQEAgcHVibGljOgogICAgICAgICB3YXNQcm9tcHRlZCA9IGZhbHNlOwogICAg
ICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICAgICAgW21fd2ViVmlldyBs
b2FkVGVzdFBhZ2VOYW1lZDpAImRpc2FibGVHZXRVc2VyTWVkaWEiXTsKLSAgICAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgICAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgICAgICBFWFBF
Q1RfU1RSRVEoWyhOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSBVVEY4U3RyaW5n
XSwgbWVzc2FnZSk7CiAgICAgfQogCkBAIC0xMzgsNiArMTM4LDYgQEAgVEVTVF9GKE1lZGlhQ2Fw
dHVyZURpc2FibGVkVGVzdCwgVW5zZWN1cgogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZh
bHNlOwogICAgIFttX3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aHRtbD48Ym9keT48c2NyaXB0
PndpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKE5h
dmlnYXRvci5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoJ21lZGlhRGV2aWNlcycpID8gJ2hhcycg
OiAnbm9uZScpOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+IiBiYXNlVVJMOiBbW05TVVJMIGFsbG9j
XSBpbml0V2l0aFN0cmluZzpAImh0dHA6Ly90ZXN0Lm9yZyJdXTsKIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIEVYUEVDVF9TVFJFUShbKE5T
U3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldIFVURjhTdHJpbmddLCAibm9uZSIpOwog
fQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFT
aW11bGF0ZUZhaWxlZFNhbmRib3gubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0JKHJl
dmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
VXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQs
NyArMTA0LDcgQEAgcHVibGljOgogICAgICAgICB3YXNQcm9tcHRlZCA9IGZhbHNlOwogICAgICAg
ICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICAgICAgW21fd2ViVmlldyBsb2Fk
VGVzdFBhZ2VOYW1lZDpAImRpc2FibGVHZXRVc2VyTWVkaWEiXTsKLSAgICAgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgICAgICBFWFBFQ1Rf
U1RSRVEoWyhOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSBVVEY4U3RyaW5nXSwg
bWVzc2FnZSk7CiAgICAgfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0JKHJldmlz
aW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVmlk
ZW9Db250cm9sc01hbmFnZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgLSAo
dm9pZClleHBlY3RDb250cm9sc01hbmFnZXI6KEJPT0wpZXhwZQogICAgICAgICBkb25lV2FpdGlu
ZyA9IHRydWU7CiAgICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVX
YWl0aW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lV2FpdGluZyk7CiB9CiAK
IC0gKHZvaWQpd2FpdEZvck1lZGlhQ29udHJvbHNUb1Nob3cKQEAgLTk1LDE1ICs5NSwxNSBAQCAt
ICh2b2lkKXdhaXRGb3JQYWdlVG9Mb2FkV2l0aEF1dG9wbGF5aW5nCiAgICAgICAgIH1dOwogICAg
IH0KIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGFnZUhhc0xvYWRlZCk7Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZhdXRvcGxheWluZ0lzRmluaXNoZWQpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKHBhZ2VIYXNMb2FkZWQpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGF1dG9wbGF5aW5nSXNGaW5pc2hlZCk7CiB9CiAKIC0gKE5TU3RyaW5nICopY29u
dHJvbGxlZEVsZW1lbnRJRAogewogICAgIF9pc0RvbmVRdWVyeWluZ0NvbnRyb2xsZWRFbGVtZW50
SUQgPSBmYWxzZTsKICAgICBbc2VsZiBfcmVxdWVzdENvbnRyb2xsZWRFbGVtZW50SURdOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmX2lzRG9uZVF1ZXJ5aW5nQ29udHJvbGxlZEVsZW1l
bnRJRCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoX2lzRG9uZVF1ZXJ5aW5nQ29udHJv
bGxlZEVsZW1lbnRJRCk7CiAgICAgcmV0dXJuIF9jb250cm9sbGVkRWxlbWVudElEOwogfQogCkBA
IC0yMjMsNyArMjIzLDcgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9s
cwogICAgICAgICBmaXJzdFZpZGVvUGF1c2VkID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmc2Vjb25kVmlkZW9QYXVzZWQpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKHNlY29uZFZpZGVvUGF1c2VkKTsKIH0KIC8vIEZJWE1FOiBSZS1lbmFibGUg
dGhpcyB0ZXN0IG9uY2UgPHdlYmtpdC5vcmcvYi8xNzU5MDk+IGlzIHJlc29sdmVkLgogVEVTVChW
aWRlb0NvbnRyb2xzTWFuYWdlciwgRElTQUJMRURfVmlkZW9Db250cm9sc01hbmFnZXJNdWx0aXBs
ZVZpZGVvc1N3aXRjaENvbnRyb2xsZWRWaWRlb1doZW5TY3JvbGxpbmcpCkBAIC0zNDUsNyArMzQ1
LDcgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgRElTQUJMRURfVmlkZQogCiAgICAgW3dl
YlZpZXcgbW91c2VEb3duQXRQb2ludDpOU01ha2VQb2ludCgyMDAsIDIwMCkgc2ltdWxhdGVQcmVz
c3VyZTpZRVNdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZzZWNvbmRBdWRpb1Bs
YXlpbmcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHNlY29uZEF1ZGlvUGxheWluZyk7
CiAgICAgd2hpbGUgKFtbTlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29wXSBydW5Nb2RlOk5TRGVmYXVs
dFJ1bkxvb3BNb2RlIGJlZm9yZURhdGU6W05TRGF0ZSBkaXN0YW50UGFzdF1dKSB7CiAgICAgICAg
IGlmIChbd2ViVmlldyBfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXJdICYmIFtbd2Vi
VmlldyBjb250cm9sbGVkRWxlbWVudElEXSBpc0VxdWFsVG9TdHJpbmc6QCJzZWNvbmQiXSkKICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtMzY5LDcgKzM2OSw3IEBAIFRFU1QoVmlkZW9Db250cm9sc01h
bmFnZXIsIFZpZGVvQ29udHJvbHMKICAgICAgICAgZmluaXNoZWRUZXN0ID0gdHJ1ZTsKICAgICB9
XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRUZXN0KTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZFRlc3QpOwogfQogCiBURVNUKFZpZGVvQ29u
dHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRyb2xzTWFuYWdlckRvZXNOb3RTaG93TWVkaWFDb250cm9s
c0Zvck9mZnNjcmVlblZpZGVvKQpAQCAtNDExLDcgKzQxMSw3IEBAIFRFU1QoVmlkZW9Db250cm9s
c01hbmFnZXIsIFZpZGVvQ29udHJvbHMKICAgICBOU1VSTCAqdXJsT2ZWaWRlbyA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ2aWRlby13aXRoLWF1ZGlvIiB3aXRoRXh0
ZW5zaW9uOkAibXA0IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwog
ICAgIFt3ZWJWaWV3IGxvYWRGaWxlVVJMOnVybE9mVmlkZW8gYWxsb3dpbmdSZWFkQWNjZXNzVG9V
Ukw6W3VybE9mVmlkZW8gVVJMQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50XV07CiAgICAgCi0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZExvYWQpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkTG9hZCk7CiAgICAgCiAgICAgLy8gV2UgZXhwZWN0IHRo
ZSBtZWRpYSBjb250cm9sbGVyIHRvIGJlIHByZXNlbnQgYmVjYXVzZSB0aGlzIGlzIGEgbWVkaWEg
ZG9jdW1lbnQuCiAgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgX2hhc0FjdGl2ZVZpZGVvRm9yQ29u
dHJvbHNNYW5hZ2VyXSk7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLQXR0YWNobWVudFRlc3RzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0JKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50
VGVzdHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1NCw3ICsyNTQsNyBAQCAtIChfV0tBdHRhY2ht
ZW50ICopc3luY2hyb25vdXNseUluc2VydEF0CiAgICAgUmV0YWluUHRyPF9XS0F0dGFjaG1lbnQ+
IGF0dGFjaG1lbnQgPSBbc2VsZiBfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBlcjpmaWxl
V3JhcHBlciBjb250ZW50VHlwZTpjb250ZW50VHlwZSBjb21wbGV0aW9uOl4oQk9PTCkgewogICAg
ICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIHJldHVybiBh
dHRhY2htZW50LmF1dG9yZWxlYXNlKCk7CiB9CiAKQEAgLTI2Nyw3ICsyNjcsNyBAQCAtIChfV0tB
dHRhY2htZW50ICopc3luY2hyb25vdXNseUluc2VydEF0CiAgICAgUmV0YWluUHRyPF9XS0F0dGFj
aG1lbnQ+IGF0dGFjaG1lbnQgPSBbc2VsZiBfaW5zZXJ0QXR0YWNobWVudFdpdGhGaWxlV3JhcHBl
cjpmaWxlV3JhcHBlci5nZXQoKSBjb250ZW50VHlwZTpjb250ZW50VHlwZSBjb21wbGV0aW9uOl4o
Qk9PTCkgewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwog
ICAgIHJldHVybiBhdHRhY2htZW50LmF1dG9yZWxlYXNlKCk7CiB9CiAKQEAgLTI3OSw3ICsyNzks
NyBAQCAtIChDR1BvaW50KWF0dGFjaG1lbnRFbGVtZW50TWlkUG9pbnQKICAgICAgICAgbWlkUG9p
bnQgPSBDR1BvaW50TWFrZShyZXN1bHQuZmlyc3RPYmplY3QuZmxvYXRWYWx1ZSwgcmVzdWx0Lmxh
c3RPYmplY3QuZmxvYXRWYWx1ZSk7CiAgICAgICAgIGRvbmVFdmFsdWF0aW5nU2NyaXB0ID0gdHJ1
ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVFdmFsdWF0aW5n
U2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lRXZhbHVhdGluZ1Njcmlw
dCk7CiAgICAgcmV0dXJuIG1pZFBvaW50OwogfQogCkBAIC0yOTEsNyArMjkxLDcgQEAgLSAoQ0dT
aXplKWF0dGFjaG1lbnRFbGVtZW50U2l6ZQogICAgICAgICBzaXplID0gQ0dTaXplTWFrZShzaXpl
UmVzdWx0LmZpcnN0T2JqZWN0LmZsb2F0VmFsdWUsIHNpemVSZXN1bHQubGFzdE9iamVjdC5mbG9h
dFZhbHVlKTsKICAgICAgICAgZG9uZUV2YWx1YXRpbmdTY3JpcHQgPSB0cnVlOwogICAgIH1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUV2YWx1YXRpbmdTY3JpcHQpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVFdmFsdWF0aW5nU2NyaXB0KTsKICAgICByZXR1
cm4gc2l6ZTsKIH0KIApAQCAtMzAzLDcgKzMwMyw3IEBAIC0gKENHU2l6ZSlpbWFnZUVsZW1lbnRT
aXplCiAgICAgICAgIHNpemUgPSBDR1NpemVNYWtlKHNpemVSZXN1bHQuZmlyc3RPYmplY3QuZmxv
YXRWYWx1ZSwgc2l6ZVJlc3VsdC5sYXN0T2JqZWN0LmZsb2F0VmFsdWUpOwogICAgICAgICBkb25l
RXZhbHVhdGluZ1NjcmlwdCA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lRXZhbHVhdGluZ1NjcmlwdCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZUV2YWx1YXRpbmdTY3JpcHQpOwogICAgIHJldHVybiBzaXplOwogfQogCkBAIC0zNTUs
NyArMzU1LDcgQEAgLSAodm9pZClzeW5jaHJvbm91c2x5U2V0RmlsZVdyYXBwZXI6KE5TRgogICAg
ICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBpZiAo
ZXJyb3IpCiAgICAgICAgICplcnJvciA9IHJlc3VsdEVycm9yLmF1dG9yZWxlYXNlKCk7CkBAIC0z
NzQsNyArMzc0LDcgQEAgLSAodm9pZClzeW5jaHJvbm91c2x5U2V0RGF0YTooTlNEYXRhICopZAog
ICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBp
ZiAoZXJyb3IpCiAgICAgICAgICplcnJvciA9IHJlc3VsdEVycm9yLmF1dG9yZWxlYXNlKCk7CkBA
IC00NzcsNyArNDc3LDcgQEAgLSAodm9pZClleHBlY3RUeXBlOihOU1N0cmluZyAqKXR5cGUgd2l0
aAogICAgICAgICAgICAgTlNMb2coQCJFbmNvdW50ZXJlZCBlcnJvciB3aGVuIGxvYWRpbmcgZGF0
YTogJUAiLCBlcnJvcik7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZG9uZSk7CiB9CiAKIEBlbmQKQEAgLTEyNDQsNyArMTI0NCw3IEBAIFRFU1QoV0tBdHRhY2htZW50
VGVzdHMsIEludmFsaWRhdGVBdHRhY2gKIAogICAgIE9ic2VydmVBdHRhY2htZW50VXBkYXRlc0Zv
clNjb3BlIG9ic2VydmVyKHdlYlZpZXcuZ2V0KCkpOwogICAgIFt3ZWJWaWV3IF9raWxsV2ViQ29u
dGVudFByb2Nlc3NdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmd2ViUHJvY2Vzc1Rl
cm1pbmF0ZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHdlYlByb2Nlc3NUZXJtaW5h
dGVkKTsKIAogICAgIG9ic2VydmVyLmV4cGVjdEF0dGFjaG1lbnRVcGRhdGVzKEBbIHBkZkF0dGFj
aG1lbnQuZ2V0KCkgXSwgQFsgXSk7CiAgICAgRVhQRUNUX0ZBTFNFKFtwZGZBdHRhY2htZW50IGlz
Q29ubmVjdGVkXSk7CkBAIC0xMzY2LDcgKzEzNjYsNyBAQCBURVNUKFdLQXR0YWNobWVudFRlc3Rz
LCBBZGRBdHRhY2htZW50VG9DCiAgICAgYXV0byBhdHRhY2htZW50ID0gcmV0YWluUHRyKFt3ZWJW
aWV3IF9hdHRhY2htZW50Rm9ySWRlbnRpZmllcjphdHRhY2htZW50SWRlbnRpZmllcl0pOwogICAg
IEVYUEVDVF9XS19TVFJFUShhdHRhY2htZW50SWRlbnRpZmllciwgW2F0dGFjaG1lbnQgdW5pcXVl
SWRlbnRpZmllcl0pOwogICAgIEVYUEVDVF9XS19TVFJFUShhdHRhY2htZW50SWRlbnRpZmllciwg
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJ2ltZycpLmF0dGFjaG1lbnRJZGVudGlmaWVyIl0pOwotICAgIFV0aWw6OnJ1bigmZG9u
ZVdhaXRpbmdGb3JBdHRhY2htZW50SW5zZXJ0aW9uKTsKKyAgICBydW5VbnRpbChkb25lV2FpdGlu
Z0ZvckF0dGFjaG1lbnRJbnNlcnRpb24pOwogICAgIG9ic2VydmVyLmV4cGVjdEF0dGFjaG1lbnRV
cGRhdGVzKEBbIF0sIEBbIGF0dGFjaG1lbnQuZ2V0KCkgXSk7CiAKICAgICBhdXRvIGZpcnN0SW1h
Z2UgPSBhZG9wdE5TKFtbTlNGaWxlV3JhcHBlciBhbGxvY10gaW5pdFdpdGhVUkw6dGVzdEltYWdl
RmlsZVVSTCgpIG9wdGlvbnM6MCBlcnJvcjpuaWxdKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRFeHRl
bnNpb25TdG9yZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5tbQkod29ya2luZyBjb3B5
KQpAQCAtNTIsNyArNTIsNyBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIENv
bXBpCiAKICAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lQ29tcGlsaW5nKTsKIH0KIAogc3RhdGljIE5TU3RyaW5nICppbnZhbGlkRmls
dGVyID0gQCJbIjsKQEAgLTc1LDcgKzc1LDcgQEAgVEVTVF9GKFdLQ29udGVudFJ1bGVMaXN0U3Rv
cmVUZXN0LCBJbnZhbAogCiAgICAgICAgIGRvbmVDb21waWxpbmcgPSB0cnVlOwogICAgIH1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUNvbXBpbGluZyk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZUNvbXBpbGluZyk7CiB9CiAKIFRFU1RfRihXS0NvbnRlbnRS
dWxlTGlzdFN0b3JlVGVzdCwgTG9va3VwKQpAQCAtODgsNyArODgsNyBAQCBURVNUX0YoV0tDb250
ZW50UnVsZUxpc3RTdG9yZVRlc3QsIExvb2t1CiAKICAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRy
dWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5n
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lQ29tcGlsaW5nKTsKIAogICAgIF9f
YmxvY2sgYm9vbCBkb25lTG9va2luZ1VwID0gZmFsc2U7CiAgICAgW1tXS0NvbnRlbnRSdWxlTGlz
dFN0b3JlIGRlZmF1bHRTdG9yZV0gbG9va1VwQ29udGVudFJ1bGVMaXN0Rm9ySWRlbnRpZmllcjpA
IlRlc3RSdWxlTGlzdCIgY29tcGxldGlvbkhhbmRsZXI6XihXS0NvbnRlbnRSdWxlTGlzdCAqZmls
dGVyLCBOU0Vycm9yICplcnJvcikgewpAQCAtOTksNyArOTksNyBAQCBURVNUX0YoV0tDb250ZW50
UnVsZUxpc3RTdG9yZVRlc3QsIExvb2t1CiAKICAgICAgICAgZG9uZUxvb2tpbmdVcCA9IHRydWU7
CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lTG9va2luZ1VwKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lTG9va2luZ1VwKTsKIH0KIAogVEVTVF9G
KFdLQ29udGVudFJ1bGVMaXN0U3RvcmVUZXN0LCBFbmNvZGVkSWRlbnRpZmllcikKQEAgLTEyMCw3
ICsxMjAsNyBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIEVuY29kCiAgICAg
ICAgICAgICBkb25lID0gdHJ1ZTsKICAgICAgICAgfV07CiAgICAgfV07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKIH0KIAogVEVTVF9GKFdLQ29udGVudFJ1bGVMaXN0U3RvcmVUZXN0LCBOb25FeGlzdGluZ0lk
ZW50aWZpZXJMb29rdXApCkBAIC0xMzYsNyArMTM2LDcgQEAgVEVTVF9GKFdLQ29udGVudFJ1bGVM
aXN0U3RvcmVUZXN0LCBOb25FeAogICAgICAgICAKICAgICAgICAgZG9uZUxvb2tpbmdVcCA9IHRy
dWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lTG9va2luZ1Vw
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lTG9va2luZ1VwKTsKIH0KIAogVEVT
VF9GKFdLQ29udGVudFJ1bGVMaXN0U3RvcmVUZXN0LCBWZXJzaW9uTWlzbWF0Y2gpCkBAIC0xNTAs
NyArMTUwLDcgQEAgVEVTVF9GKFdLQ29udGVudFJ1bGVMaXN0U3RvcmVUZXN0LCBWZXJzaQogICAg
ICAgICAKICAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lQ29tcGlsaW5nKTsKIAogICAgIFtbV0tDb250ZW50UnVsZUxpc3RTdG9yZSBk
ZWZhdWx0U3RvcmVdIF9pbnZhbGlkYXRlQ29udGVudFJ1bGVMaXN0VmVyc2lvbkZvcklkZW50aWZp
ZXI6QCJUZXN0UnVsZUxpc3QiXTsKICAgICAKQEAgLTE2NiwxNCArMTY2LDE0IEBAIFRFU1RfRihX
S0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVzdCwgVmVyc2kKICAgICAgICAgCiAgICAgICAgIGRvbmVM
b29raW5nVXAgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZUxvb2tpbmdVcCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZUxvb2tpbmdV
cCk7CiAKICAgICBfX2Jsb2NrIGJvb2wgZG9uZUdldHRpbmdTb3VyY2UgPSBmYWxzZTsKICAgICBb
W1dLQ29udGVudFJ1bGVMaXN0U3RvcmUgZGVmYXVsdFN0b3JlXSBfZ2V0Q29udGVudFJ1bGVMaXN0
U291cmNlRm9ySWRlbnRpZmllcjpAIlRlc3RSdWxlTGlzdCIgY29tcGxldGlvbkhhbmRsZXI6XihO
U1N0cmluZyogc291cmNlKSB7CiAgICAgICAgIEVYUEVDVF9OVUxMKHNvdXJjZSk7CiAgICAgICAg
IGRvbmVHZXR0aW5nU291cmNlID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmVHZXR0aW5nU291cmNlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChkb25lR2V0dGluZ1NvdXJjZSk7CiB9CiAKIFRFU1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0b3Jl
VGVzdCwgUmVtb3ZhbCkKQEAgLTE4Niw3ICsxODYsNyBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxp
c3RTdG9yZVRlc3QsIFJlbW92CiAKICAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CiAgICAg
fV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lQ29tcGlsaW5nKTsKIAogICAgIF9fYmxvY2sgYm9v
bCBkb25lUmVtb3ZpbmcgPSBmYWxzZTsKICAgICBbW1dLQ29udGVudFJ1bGVMaXN0U3RvcmUgZGVm
YXVsdFN0b3JlXSByZW1vdmVDb250ZW50UnVsZUxpc3RGb3JJZGVudGlmaWVyOkAiVGVzdFJ1bGVM
aXN0IiBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKmVycm9yKSB7CkBAIC0xOTQsNyArMTk0
LDcgQEAgVEVTVF9GKFdLQ29udGVudFJ1bGVMaXN0U3RvcmVUZXN0LCBSZW1vdgogCiAgICAgICAg
IGRvbmVSZW1vdmluZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lUmVtb3ZpbmcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVSZW1v
dmluZyk7CiB9CiAKIFRFU1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVzdCwgTm9uRXhpc3Rp
bmdJZGVudGlmaWVyUmVtb3ZlKQpAQCAtMjA4LDcgKzIwOCw3IEBAIFRFU1RfRihXS0NvbnRlbnRS
dWxlTGlzdFN0b3JlVGVzdCwgTm9uRXgKIAogICAgICAgICBkb25lUmVtb3ZpbmcgPSB0cnVlOwog
ICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZVJlbW92aW5nKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lUmVtb3ZpbmcpOwogfQogCiBURVNUX0YoV0tD
b250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIE5vbkRlZmF1bHRTdG9yZSkKQEAgLTIyNCw3ICsyMjQs
NyBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIE5vbkRlCiAgICAgICAgIEVY
UEVDVF9FUShpZGVudGlmaWVycy5jb3VudCwgMHUpOwogICAgICAgICBkb25lR2V0dGluZ0F2YWls
YWJsZUlkZW50aWZpZXJzID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmVHZXR0aW5nQXZhaWxhYmxlSWRlbnRpZmllcnMpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmVHZXR0aW5nQXZhaWxhYmxlSWRlbnRpZmllcnMpOwogICAgIAogICAg
IF9fYmxvY2sgYm9vbCBkb25lQ29tcGlsaW5nID0gZmFsc2U7CiAgICAgW3N0b3JlIGNvbXBpbGVD
b250ZW50UnVsZUxpc3RGb3JJZGVudGlmaWVyOmlkZW50aWZpZXIgZW5jb2RlZENvbnRlbnRSdWxl
TGlzdDpiYXNpY0ZpbHRlciBjb21wbGV0aW9uSGFuZGxlcjpeKFdLQ29udGVudFJ1bGVMaXN0ICpm
aWx0ZXIsIE5TRXJyb3IgKmVycm9yKSB7CkBAIC0yMzIsNyArMjMyLDcgQEAgVEVTVF9GKFdLQ29u
dGVudFJ1bGVMaXN0U3RvcmVUZXN0LCBOb25EZQogICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7
CiAgICAgICAgIGRvbmVDb21waWxpbmcgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZUNvbXBpbGluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZUNvbXBpbGluZyk7CiAKICAgICBkb25lR2V0dGluZ0F2YWlsYWJsZUlkZW50aWZpZXJz
ID0gZmFsc2U7CiAgICAgW3N0b3JlIGdldEF2YWlsYWJsZUNvbnRlbnRSdWxlTGlzdElkZW50aWZp
ZXJzOl4oTlNBcnJheTxOU1N0cmluZyAqPiAqaWRlbnRpZmllcnMpIHsKQEAgLTI0MSw3ICsyNDEs
NyBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIE5vbkRlCiAgICAgICAgIEVY
UEVDVF9TVFJFUShpZGVudGlmaWVyc1swXS5VVEY4U3RyaW5nLCAiVGVzdFJ1bGVMaXN0Iik7CiAg
ICAgICAgIGRvbmVHZXR0aW5nQXZhaWxhYmxlSWRlbnRpZmllcnMgPSB0cnVlOwogICAgIH1dOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUdldHRpbmdBdmFpbGFibGVJZGVudGlm
aWVycyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZUdldHRpbmdBdmFpbGFibGVJ
ZGVudGlmaWVycyk7CiAKICAgICBOU0RhdGEgKmRhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQ29udGVu
dHNPZlVSTDpbdGVtcERpciBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6ZmlsZU5hbWVdXTsK
ICAgICBFWFBFQ1RfTk9UX05VTEwoZGF0YSk7CkBAIC0yNTMsMTQgKzI1MywxNCBAQCBURVNUX0Yo
V0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIE5vbkRlCiAgICAgICAgIEVYUEVDVF9TVFJFUShi
YXNpY0ZpbHRlci5VVEY4U3RyaW5nLCBzb3VyY2UuVVRGOFN0cmluZyk7CiAgICAgICAgIGRvbmVD
aGVja2luZ1NvdXJjZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lQ2hlY2tpbmdTb3VyY2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmVDaGVja2luZ1NvdXJjZSk7CiAgICAgCiAgICAgX19ibG9jayBib29sIGRvbmVSZW1vdmluZyA9
IGZhbHNlOwogICAgIFtzdG9yZSByZW1vdmVDb250ZW50UnVsZUxpc3RGb3JJZGVudGlmaWVyOmlk
ZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICplcnJvcikgewogICAgICAgICBF
WFBFQ1RfTlVMTChlcnJvcik7CiAgICAgICAgIGRvbmVSZW1vdmluZyA9IHRydWU7CiAgICAgfV07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lUmVtb3ZpbmcpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVSZW1vdmluZyk7CiAKICAgICBOU0RhdGEgKmRhdGFBZnRl
clJlbW92aW5nID0gW05TRGF0YSBkYXRhV2l0aENvbnRlbnRzT2ZVUkw6W3RlbXBEaXIgVVJMQnlB
cHBlbmRpbmdQYXRoQ29tcG9uZW50OmZpbGVOYW1lXV07CiAgICAgRVhQRUNUX05VTEwoZGF0YUFm
dGVyUmVtb3ZpbmcpOwpAQCAtMjg0LDcgKzI4NCw3IEBAIFRFU1RfRihXS0NvbnRlbnRSdWxlTGlz
dFN0b3JlVGVzdCwgTXVsdGkKICAgICAgICAgICAgIH1dOwogICAgICAgICB9XTsKICAgICB9XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogfQogCiBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3Qs
IE5vbkFTQ0lJU291cmNlKQpAQCAtMzExLDcgKzMxMSw3IEBAIFRFU1RfRihXS0NvbnRlbnRSdWxl
TGlzdFN0b3JlVGVzdCwgTm9uQVMKICAgICAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgICAgICB9
XTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiBzdGF0aWMgc2l6ZV90IGFsZXJ0Q291
bnQgeyAwIH07CkBAIC0zNTQsNyArMzU0LDcgQEAgVEVTVF9GKFdLQ29udGVudFJ1bGVMaXN0U3Rv
cmVUZXN0LCBBZGRSZQogICAgICAgICBydWxlTGlzdCA9IGNvbXBpbGVkUnVsZUxpc3Q7CiAgICAg
ICAgIGRvbmVDb21waWxpbmcgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZUNvbXBpbGluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9u
ZUNvbXBpbGluZyk7CiAgICAgRVhQRUNUX05PVF9OVUxMKHJ1bGVMaXN0KTsKIAogICAgIGF1dG8g
Y29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CkBAIC0zNjksMTMgKzM2OSwxMyBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9y
ZVRlc3QsIEFkZFJlCiAgICAgYWxlcnRDb3VudCA9IDA7CiAgICAgcmVjZWl2ZWRBbGVydCA9IGZh
bHNlOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRBbGVydCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwocmVjZWl2ZWRBbGVydCk7CiAKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250
cm9sbGVyXSByZW1vdmVDb250ZW50UnVsZUxpc3Q6cnVsZUxpc3QuZ2V0KCldOwogCiAgICAgcmVj
ZWl2ZWRBbGVydCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IHJlbG9hZF07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZEFsZXJ0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChyZWNlaXZlZEFsZXJ0KTsKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0z
OTUsNyArMzk1LDcgQEAgVEVTVF9GKFdLQ29udGVudFJ1bGVMaXN0U3RvcmVUZXN0LCBVbnNhZgog
ICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CiAgICAgICAgIGRvbmVDb21waWxpbmcgPSB0cnVl
OwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUNvbXBpbGluZyk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZUNvbXBpbGluZyk7CiAKICAgICBhdXRv
IGhhc0NvbXBsZXRlUHJvdGVjdGlvbiA9IFtdIChjb25zdCBSZXRhaW5QdHI8TlNTdHJpbmc+JiBw
YXRoKSB7CiAgICAgICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwpAQCAtNDIwLDcgKzQyMCw3IEBA
IFRFU1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVzdCwgVW5zYWYKICAgICAgICAgRVhQRUNU
X05VTEwoZXJyb3IpOwogICAgICAgICBkb25lTG9va2luZ1VwID0gdHJ1ZTsKICAgICB9XTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVMb29raW5nVXApOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmVMb29raW5nVXApOwogICAgIEVYUEVDVF9GQUxTRShoYXNDb21w
bGV0ZVByb3RlY3Rpb24oY29waWVkRmlsZVBhdGgpKTsKICAgICAKICAgICBfX2Jsb2NrIGJvb2wg
ZG9uZVJlbW92aW5nID0gZmFsc2U7CkBAIC00MzEsNiArNDMxLDYgQEAgVEVTVF9GKFdLQ29udGVu
dFJ1bGVMaXN0U3RvcmVUZXN0LCBVbnNhZgogICAgICAgICAgICAgZG9uZVJlbW92aW5nID0gdHJ1
ZTsKICAgICAgICAgfV07CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lUmVtb3ZpbmcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVSZW1vdmluZyk7
CiB9CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50Vmlld0VkaXRpbmdBY3Rpb25zLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250
ZW50Vmlld0VkaXRpbmdBY3Rpb25zLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudFZpZXdFZGl0aW5nQWN0aW9ucy5t
bQkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNyBAQCBURVNUKFdlYktpdCwgV0tDb250ZW50
Vmlld0VkaXRpbmdBY3Rpb25zCiAgICAgICAgIH1dOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25l
KTsKIAogICAgIEVYUEVDVF9XS19TVFJFUSgiSGVsbG8gd29ybGQiLCBbW1VJUGFzdGVib2FyZCBn
ZW5lcmFsUGFzdGVib2FyZF0gc3RyaW5nXSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tIVFRQQ29va2llU3RvcmUubW0J
KHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tIVFRQQ29va2llU3RvcmUubW0JKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcxLDcgQEAg
c3RhdGljIHZvaWQgcnVuVGVzdFdpdGhXZWJzaXRlRGF0YVN0b3JlKAogICAgICAgICBnb3RGbGFn
ID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290Rmxh
Zyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZ290RmxhZyk7CiAgICAgZ290RmxhZyA9
IGZhbHNlOwogCiAgICAgLy8gVHJpZ2dlcmluZyByZW1vdmVEYXRhIHdoZW4gd2UgZG9uJ3QgaGF2
ZSBwbHVnaW4gZGF0YSB0byByZW1vdmUgc2hvdWxkIG5vdCB0cmlnZ2VyIHRoZSBwbHVnaW4gcHJv
Y2VzcyB0byBsYXVuY2guCkBAIC05MCw3ICs5MCw3IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3RXaXRo
V2Vic2l0ZURhdGFTdG9yZSgKICAgICAgICAgZ290RmxhZyA9IHRydWU7CiAgICAgfV07CiAKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGdvdEZsYWcpOwogCiAgICAgQVNTRVJUX0VRKGNvb2tpZXMuY291bnQsIDB1KTsK
ICAgICBbY29va2llcyByZWxlYXNlXTsKQEAgLTExOSwxNCArMTE5LDE0IEBAIHN0YXRpYyB2b2lk
IHJ1blRlc3RXaXRoV2Vic2l0ZURhdGFTdG9yZSgKICAgICAgICAgZ290RmxhZyA9IHRydWU7CiAg
ICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGdvdEZsYWcpOwogICAgIGdvdEZsYWcgPSBmYWxzZTsKIAog
ICAgIFtnbG9iYWxDb29raWVTdG9yZSBzZXRDb29raWU6Y29va2llMi5nZXQoKSBjb21wbGV0aW9u
SGFuZGxlcjpbXSgpewogICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZ290RmxhZyk7CiAgICAgZ290RmxhZyA9IGZhbHNlOwogCiAgICAgW2dsb2JhbENvb2tp
ZVN0b3JlIGdldEFsbENvb2tpZXM6W2Nvb2tpZXNQdHIgPSAmY29va2llc10oTlNBcnJheTxOU0hU
VFBDb29raWUgKj4gKm5zQ29va2llcykgewpAQCAtMTM0LDcgKzEzNCw3IEBAIHN0YXRpYyB2b2lk
IHJ1blRlc3RXaXRoV2Vic2l0ZURhdGFTdG9yZSgKICAgICAgICAgZ290RmxhZyA9IHRydWU7CiAg
ICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGdvdEZsYWcpOwogICAgIGdvdEZsYWcgPSBmYWxzZTsKIAog
ICAgIEFTU0VSVF9FUShjb29raWVzLmNvdW50LCAydSk7CkBAIC0xNjIsNyArMTYyLDcgQEAgc3Rh
dGljIHZvaWQgcnVuVGVzdFdpdGhXZWJzaXRlRGF0YVN0b3JlKAogICAgICAgICBnb3RGbGFnID0g
dHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZ290RmxhZyk7CiAgICAgZ290RmxhZyA9IGZh
bHNlOwogCiAgICAgW2dsb2JhbENvb2tpZVN0b3JlIGdldEFsbENvb2tpZXM6W2Nvb2tpZXNQdHIg
PSAmY29va2llc10oTlNBcnJheTxOU0hUVFBDb29raWUgKj4gKm5zQ29va2llcykgewpAQCAtMTcw
LDcgKzE3MCw3IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3RXaXRoV2Vic2l0ZURhdGFTdG9yZSgKICAg
ICAgICAgZ290RmxhZyA9IHRydWU7CiAgICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmdvdEZsYWcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGdvdEZsYWcpOwog
ICAgIGdvdEZsYWcgPSBmYWxzZTsKIAogICAgIEFTU0VSVF9FUShjb29raWVzLmNvdW50LCAxdSk7
CkBAIC0yMDIsNyArMjAyLDcgQEAgVEVTVChXZWJLaXQsIFdLSFRUUENvb2tpZVN0b3JlUHJvY2Vz
c1ByaQogICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJlbW92ZURh
dGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZp
ZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpbXSB7CiAgICAg
ICAgIGdvdEZsYWcgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZ290RmxhZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZ290RmxhZyk7CiAgICAg
Z290RmxhZyA9IGZhbHNlOwogCiAgICAgZ2xvYmFsQ29va2llU3RvcmUgPSBbW1dLV2Vic2l0ZURh
dGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSBodHRwQ29va2llU3RvcmVdOwpAQCAtMjE3LDcgKzIx
Nyw3IEBAIFRFU1QoV2ViS2l0LCBXS0hUVFBDb29raWVTdG9yZVByb2Nlc3NQcmkKICAgICBbZ2xv
YmFsQ29va2llU3RvcmUgc2V0Q29va2llOmNvb2tpZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpb
XSgpIHsKICAgICAgICAgZ290RmxhZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZnb3RGbGFnKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChnb3RG
bGFnKTsKICAgICBnb3RGbGFnID0gZmFsc2U7CiAKIApAQCAtMjI1LDcgKzIyNSw3IEBAIFRFU1Qo
V2ViS2l0LCBXS0hUVFBDb29raWVTdG9yZVByb2Nlc3NQcmkKICAgICAgICAgQVNTRVJUX0VRKDF1
LCBjb29raWVzLmNvdW50KTsKICAgICAgICAgZ290RmxhZyA9IHRydWU7CiAgICAgfV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZnb3RGbGFnKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChnb3RGbGFnKTsKICAgICBnb3RGbGFnID0gZmFsc2U7CiB9CiAKQEAgLTI0Myw3ICsy
NDMsNyBAQCBURVNUKFdlYktpdCwgV0tIVFRQQ29va2llU3RvcmVIdHRwT25seSkgCiAgICAgW2Rh
dGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVE
YXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhh
bmRsZXI6W10gewogICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGdvdEZsYWcpOwogICAgIGdvdEZsYWcgPSBmYWxzZTsKIAogICAgIGdsb2JhbENvb2tpZVN0b3Jl
ID0gZGF0YVN0b3JlLmh0dHBDb29raWVTdG9yZTsKQEAgLTI1Myw3ICsyNTMsNyBAQCBURVNUKFdl
YktpdCwgV0tIVFRQQ29va2llU3RvcmVIdHRwT25seSkgCiAgICAgICAgICpjb29raWVzUHRyID0g
W25zQ29va2llcyByZXRhaW5dOwogICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKICAgICB9XTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGdvdEZsYWcpOwogICAgIGdvdEZsYWcgPSBmYWxzZTsKICAgICBBU1NFUlRfRVEo
Y29va2llcy5jb3VudCwgMHUpOwogICAgIFtjb29raWVzIHJlbGVhc2VdOwpAQCAtMjc3LDIxICsy
NzcsMjEgQEAgVEVTVChXZWJLaXQsIFdLSFRUUENvb2tpZVN0b3JlSHR0cE9ubHkpIAogICAgIFtn
bG9iYWxDb29raWVTdG9yZSBzZXRDb29raWU6aHR0cE9ubHlDb29raWUuZ2V0KCkgY29tcGxldGlv
bkhhbmRsZXI6W10oKSB7CiAgICAgICAgIGdvdEZsYWcgPSB0cnVlOwogICAgIH1dOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZ290RmxhZyk7CiAgICAgZ290RmxhZyA9IGZhbHNlOwogCiAgICAgLy8gU2V0dGluZyBo
dHRwT25seUNvb2tpZTIgc2hvdWxkIHN1Y2NlZWQuCiAgICAgW2dsb2JhbENvb2tpZVN0b3JlIHNl
dENvb2tpZTpodHRwT25seUNvb2tpZTIuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6W10oKSB7CiAg
ICAgICAgIGdvdEZsYWcgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZ290RmxhZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZ290RmxhZyk7CiAg
ICAgZ290RmxhZyA9IGZhbHNlOwogCiAgICAgW2dsb2JhbENvb2tpZVN0b3JlIGdldEFsbENvb2tp
ZXM6W2Nvb2tpZXNQdHIgPSAmY29va2llc10oTlNBcnJheTxOU0hUVFBDb29raWUgKj4gKm5zQ29v
a2llcykgewogICAgICAgICAqY29va2llc1B0ciA9IFtuc0Nvb2tpZXMgcmV0YWluXTsKICAgICAg
ICAgZ290RmxhZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZnb3RGbGFnKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChnb3RGbGFnKTsKICAgICBn
b3RGbGFnID0gZmFsc2U7CiAgICAgQVNTRVJUX0VRKGNvb2tpZXMuY291bnQsIDF1KTsKICAgICBF
WFBFQ1RfVFJVRShbW1tjb29raWVzIG9iamVjdEF0SW5kZXg6MF0gdmFsdWVdIGlzRXF1YWw6QCJj
b29raWVWYWx1ZTIiXSk7CkBAIC0zMDEsMTQgKzMwMSwxNCBAQCBURVNUKFdlYktpdCwgV0tIVFRQ
Q29va2llU3RvcmVIdHRwT25seSkgCiAgICAgW2dsb2JhbENvb2tpZVN0b3JlIHNldENvb2tpZTpu
b3RIdHRwT25seUNvb2tpZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpbXSgpIHsKICAgICAgICAg
Z290RmxhZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZn
b3RGbGFnKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChnb3RGbGFnKTsKICAgICBnb3RG
bGFnID0gZmFsc2U7CiAKICAgICBbZ2xvYmFsQ29va2llU3RvcmUgZ2V0QWxsQ29va2llczpbY29v
a2llc1B0ciA9ICZjb29raWVzXShOU0FycmF5PE5TSFRUUENvb2tpZSAqPiAqbnNDb29raWVzKSB7
CiAgICAgICAgICpjb29raWVzUHRyID0gW25zQ29va2llcyByZXRhaW5dOwogICAgICAgICBnb3RG
bGFnID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZs
YWcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGdvdEZsYWcpOwogICAgIGdvdEZsYWcg
PSBmYWxzZTsKICAgICBBU1NFUlRfRVEoY29va2llcy5jb3VudCwgMXUpOwogICAgIEVYUEVDVF9U
UlVFKFtbY29va2llcyBvYmplY3RBdEluZGV4OjBdIGlzSFRUUE9ubHldKTsKQEAgLTMxOCwxNCAr
MzE4LDE0IEBAIFRFU1QoV2ViS2l0LCBXS0hUVFBDb29raWVTdG9yZUh0dHBPbmx5KSAKICAgICBb
Z2xvYmFsQ29va2llU3RvcmUgZGVsZXRlQ29va2llOm5vdEh0dHBPbmx5Q29va2llLmdldCgpIGNv
bXBsZXRpb25IYW5kbGVyOltdKCkgewogICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKICAgICB9XTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGdvdEZsYWcpOwogICAgIGdvdEZsYWcgPSBmYWxzZTsKIAogICAgIFtnbG9i
YWxDb29raWVTdG9yZSBnZXRBbGxDb29raWVzOltjb29raWVzUHRyID0gJmNvb2tpZXNdKE5TQXJy
YXk8TlNIVFRQQ29va2llICo+ICpuc0Nvb2tpZXMpIHsKICAgICAgICAgKmNvb2tpZXNQdHIgPSBb
bnNDb29raWVzIHJldGFpbl07CiAgICAgICAgIGdvdEZsYWcgPSB0cnVlOwogICAgIH1dOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZ290RmxhZyk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZ290RmxhZyk7CiAgICAgZ290RmxhZyA9IGZhbHNlOwogICAgIEFTU0VSVF9FUShj
b29raWVzLmNvdW50LCAxdSk7CiAgICAgW2Nvb2tpZXMgcmVsZWFzZV07CkBAIC0zMzQsMTQgKzMz
NCwxNCBAQCBURVNUKFdlYktpdCwgV0tIVFRQQ29va2llU3RvcmVIdHRwT25seSkgCiAgICAgW2ds
b2JhbENvb2tpZVN0b3JlIGRlbGV0ZUNvb2tpZTpodHRwT25seUNvb2tpZS5nZXQoKSBjb21wbGV0
aW9uSGFuZGxlcjpbXSgpIHsKICAgICAgICAgZ290RmxhZyA9IHRydWU7CiAgICAgfV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZnb3RGbGFnKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChnb3RGbGFnKTsKICAgICBnb3RGbGFnID0gZmFsc2U7CiAKICAgICBbZ2xvYmFsQ29v
a2llU3RvcmUgZ2V0QWxsQ29va2llczpbY29va2llc1B0ciA9ICZjb29raWVzXShOU0FycmF5PE5T
SFRUUENvb2tpZSAqPiAqbnNDb29raWVzKSB7CiAgICAgICAgICpjb29raWVzUHRyID0gW25zQ29v
a2llcyByZXRhaW5dOwogICAgICAgICBnb3RGbGFnID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGdvdEZsYWcpOwogICAgIGdvdEZsYWcgPSBmYWxzZTsKICAgICBBU1NFUlRfRVEoY29va2ll
cy5jb3VudCwgMHUpOwogICAgIFtjb29raWVzIHJlbGVhc2VdOwpAQCAtMzYxLDcgKzM2MSw3IEBA
IFRFU1QoV2ViS2l0LCBXS0hUVFBDb29raWVTdG9yZUNyZWF0aW9uVGkKICAgICBbZGF0YVN0b3Jl
IHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBl
c10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpb
XSB7CiAgICAgICAgIGdvdEZsYWcgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZ290RmxhZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZ290Rmxh
Zyk7CiAgICAgZ290RmxhZyA9IGZhbHNlOwogCiAgICAgZ2xvYmFsQ29va2llU3RvcmUgPSBkYXRh
U3RvcmUuaHR0cENvb2tpZVN0b3JlOwpAQCAtMzc4LDcgKzM3OCw3IEBAIFRFU1QoV2ViS2l0LCBX
S0hUVFBDb29raWVTdG9yZUNyZWF0aW9uVGkKICAgICBbZ2xvYmFsQ29va2llU3RvcmUgc2V0Q29v
a2llOmNvb2tpZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpbXSgpIHsKICAgICAgICAgZ290Rmxh
ZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZnb3RGbGFn
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChnb3RGbGFnKTsKICAgICBnb3RGbGFnID0g
ZmFsc2U7CiAKICAgICBbZ2xvYmFsQ29va2llU3RvcmUgZ2V0QWxsQ29va2llczpbJl0oTlNBcnJh
eTxOU0hUVFBDb29raWUgKj4gKmNvb2tpZXMpIHsKQEAgLTM4Nyw3ICszODcsNyBAQCBURVNUKFdl
YktpdCwgV0tIVFRQQ29va2llU3RvcmVDcmVhdGlvblRpCiAgICAgICAgIEVYUEVDVF9UUlVFKFtj
cmVhdGlvblRpbWUuZ2V0KCkgaXNFcXVhbDpjcmVhdGVkVGltZV0pOwogICAgICAgICBnb3RGbGFn
ID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmdvdEZsYWcp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGdvdEZsYWcpOwogICAgIGdvdEZsYWcgPSBm
YWxzZTsKIAogICAgIHNsZWVwKDFfcyk7CkBAIC0zOTgsNyArMzk4LDcgQEAgVEVTVChXZWJLaXQs
IFdLSFRUUENvb2tpZVN0b3JlQ3JlYXRpb25UaQogICAgICAgICBFWFBFQ1RfVFJVRShbY3JlYXRp
b25UaW1lLmdldCgpIGlzRXF1YWw6Y3JlYXRlZFRpbWVdKTsKICAgICAgICAgZ290RmxhZyA9IHRy
dWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZnb3RGbGFnKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChnb3RGbGFnKTsKICAgICBnb3RGbGFnID0gZmFsc2U7
CiB9CiAjZW5kaWYgLy8gKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE0MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9P
U19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDApCkBAIC00NTgsNyArNDU4LDcgQEAgVEVT
VChXZWJLaXQsIENvb2tpZU9ic2VydmVyQ3Jhc2gpCiAgICAgICAgIGdvdEZsYWcgPSB0cnVlOwog
ICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZnb3RGbGFnKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChnb3RGbGFnKTsKIH0KIAogc3RhdGljIGJvb2wgZmluaXNo
ZWQ7CkBAIC01MDYsNyArNTA2LDcgQEAgdm9pZCBydW5XS0hUVFBDb29raWVTdG9yZVdpdGhvdXRQ
cm9jZXNzUAogICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwogICAgICAgICB9XTsKICAgICB9
XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZCk7CiAKICAgICBmaW5pc2hlZCA9IGZhbHNlOwogICAg
IFtlcGhlbWVyYWxTdG9yZVdpdGhDb29raWVzLmdldCgpLmh0dHBDb29raWVTdG9yZSBzZXRDb29r
aWU6c2Vzc2lvbkNvb2tpZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeewpAQCAtNTE1LDcgKzUx
NSw3IEBAIHZvaWQgcnVuV0tIVFRQQ29va2llU3RvcmVXaXRob3V0UHJvY2Vzc1AKICAgICAgICAg
ICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgfV07CiAgICAgfV07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
ZmluaXNoZWQpOwogICAgIGZpbmlzaGVkID0gZmFsc2U7CiAKICAgICBhdXRvIHByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKQEAgLTUyOSw3ICs1MjksNyBAQCB2b2lkIHJ1bldLSFRUUENvb2tpZVN0b3Jl
V2l0aG91dFByb2Nlc3NQCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tDb29raWVVSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgd2ViVmlldy5nZXQoKS5VSURlbGVnYXRlID0gZGVs
ZWdhdGUuZ2V0KCk7CiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6YWxlcnRDb29raWVIVE1M
IGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vMTI3LjAuMC4xIl1dOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGZpbmlzaGVkKTsKIAogICAgIGZpbmlzaGVkID0gZmFsc2U7CiAgICAgW2VwaGVt
ZXJhbFN0b3JlV2l0aENvb2tpZXMuZ2V0KCkuaHR0cENvb2tpZVN0b3JlIGRlbGV0ZUNvb2tpZTpz
ZXNzaW9uQ29va2llLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl57CkBAIC01MzgsNyArNTM4LDcg
QEAgdm9pZCBydW5XS0hUVFBDb29raWVTdG9yZVdpdGhvdXRQcm9jZXNzUAogICAgICAgICAgICAg
ZmluaXNoZWQgPSB0cnVlOwogICAgICAgICB9XTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5p
c2hlZCk7CiAgICAgCiAgICAgLy8gRGVmYXVsdERhdGFTdG9yZQogICAgIGF1dG8gZGVmYXVsdFN0
b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXTsKQEAgLTU0Niw3ICs1
NDYsNyBAQCB2b2lkIHJ1bldLSFRUUENvb2tpZVN0b3JlV2l0aG91dFByb2Nlc3NQCiAgICAgW2Rl
ZmF1bHRTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNp
dGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlv
bkhhbmRsZXI6W10gewogICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZmluaXNoZWQpOwogCiAgICAgZmluaXNoZWQgPSBmYWxzZTsKICAgICBbZGVmYXVsdFN0
b3JlLmh0dHBDb29raWVTdG9yZSBzZXRDb29raWU6cGVyc2lzdGVudENvb2tpZS5nZXQoKSBjb21w
bGV0aW9uSGFuZGxlcjpeewpAQCAtNTU1LDcgKzU1NSw3IEBAIHZvaWQgcnVuV0tIVFRQQ29va2ll
U3RvcmVXaXRob3V0UHJvY2Vzc1AKICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAg
ICAgfV07CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWQpOwogCiAgICAgZmluaXNoZWQg
PSBmYWxzZTsKICAgICBbZGVmYXVsdFN0b3JlLmh0dHBDb29raWVTdG9yZSBzZXRDb29raWU6c2Vz
c2lvbkNvb2tpZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeewpAQCAtNTY0LDcgKzU2NCw3IEBA
IHZvaWQgcnVuV0tIVFRQQ29va2llU3RvcmVXaXRob3V0UHJvY2Vzc1AKICAgICAgICAgICAgIGZp
bmlzaGVkID0gdHJ1ZTsKICAgICAgICAgfV07CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNo
ZWQpOwogCiAgICAgZmluaXNoZWQgPSBmYWxzZTsKICAgICBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAgLTU3Miw3ICs1NzIs
NyBAQCB2b2lkIHJ1bldLSFRUUENvb2tpZVN0b3JlV2l0aG91dFByb2Nlc3NQCiAgICAgd2ViVmll
dyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAg
d2ViVmlldy5nZXQoKS5VSURlbGVnYXRlID0gZGVsZWdhdGUuZ2V0KCk7CiAgICAgW3dlYlZpZXcg
bG9hZEhUTUxTdHJpbmc6YWxlcnRDb29raWVIVE1MIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJodHRwOi8vMTI3LjAuMC4xIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkKTsKIH0KIAog
VEVTVChXZWJLaXQsIFdLSFRUUENvb2tpZVN0b3JlV2l0aG91dFByb2Nlc3NQb29sV2l0aG91dFBy
ZXdhcm1pbmcpCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
TmF2aWdhdGlvblJlc3BvbnNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UubW0JKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tOYXZpZ2F0aW9u
UmVzcG9uc2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTg3LDcgKzg3LDcgQEAgVEVTVChXZWJLaXQs
IFdLTmF2aWdhdGlvblJlc3BvbnNlSlNPTk1JTQogCiAgICAgTlNVUkwgKnRlc3RVUkwgPSBbTlNV
UkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly8vanNvbi1yZXNwb25zZSJdOwogICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTF1dOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChpc0RvbmUpOwogfQogCiBURVNUKFdlYktpdCwgV0tOYXZpZ2F0aW9uUmVzcG9uc2VK
U09OTUlNRVR5cGUyKQpAQCAtMTA1LDcgKzEwNSw3IEBAIFRFU1QoV2ViS2l0LCBXS05hdmlnYXRp
b25SZXNwb25zZUpTT05NSU0KIAogICAgIE5TVVJMICp0ZXN0VVJMID0gW05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJ0ZXN0Oi8vL2pzb24tcmVzcG9uc2UiXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkxdXTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNE
b25lKTsKIH0KIAogVEVTVChXZWJLaXQsIFdLTmF2aWdhdGlvblJlc3BvbnNlVW5rbm93bk1JTUVU
eXBlKQpAQCAtMTIzLDcgKzEyMyw3IEBAIFRFU1QoV2ViS2l0LCBXS05hdmlnYXRpb25SZXNwb25z
ZVVua25vd24KIAogICAgIE5TVVJMICp0ZXN0VVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0
ZXN0Oi8vL2pzb24tcmVzcG9uc2UiXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkxdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIH0K
IAogVEVTVChXZWJLaXQsIFdLTmF2aWdhdGlvblJlc3BvbnNlUERGVHlwZSkKQEAgLTE0Myw3ICsx
NDMsNyBAQCBURVNUKFdlYktpdCwgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQREZUeXBlCiAKICAgICBO
U1VSTCAqdGVzdFVSTCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovLy9wZGYtcmVzcG9u
c2UiXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOnRlc3RVUkxdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIH0KIAogQGludGVyZmFjZSBOYXZp
Z2F0aW9uUmVzcG9uc2VUZXN0RGVsZWdhdGUgOiBOU09iamVjdCA8V0tOYXZpZ2F0aW9uRGVsZWdh
dGU+CkBAIC0xNjcsMTMgKzE2NywxMyBAQCAtIChXS05hdmlnYXRpb25SZXNwb25zZSAqKW5hdmln
YXRpb25SZXNwCiAtICh2b2lkKXdhaXRGb3JOYXZpZ2F0aW9uUmVzcG9uc2VDYWxsYmFjawogewog
ICAgIF9oYXNSZWNlaXZlZFJlc3BvbnNlQ2FsbGJhY2sgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJl9oYXNSZWNlaXZlZFJlc3BvbnNlQ2FsbGJhY2spOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKF9oYXNSZWNlaXZlZFJlc3BvbnNlQ2FsbGJhY2spOwogfQogCiAt
ICh2b2lkKXdhaXRGb3JOYXZpZ2F0aW9uRmluaXNoZWRDYWxsYmFjawogewogICAgIF9oYXNSZWNl
aXZlZE5hdmlnYXRpb25GaW5pc2hlZENhbGxiYWNrID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZfaGFzUmVjZWl2ZWROYXZpZ2F0aW9uRmluaXNoZWRDYWxsYmFjayk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoX2hhc1JlY2VpdmVkTmF2aWdhdGlvbkZpbmlzaGVk
Q2FsbGJhY2spOwogfQogCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdh
dGlvbkFjdGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeSkpZGVjaXNpb25IYW5kbGVyCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLUERGVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTExOCw3ICsxMTgsNyBAQCBURVNUKFdLUERGVmlldywgQ291bnRTdHJpbmcpCiAK
ICAgICBOU1N0cmluZyAqZXhwZWN0ZWRTdHJpbmcgPSBAIlR3byI7CiAgICAgW3dlYlZpZXcgX2Nv
dW50U3RyaW5nTWF0Y2hlczpleHBlY3RlZFN0cmluZyBvcHRpb25zOjAgbWF4Q291bnQ6bWF4Q291
bnRdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAgRVhQRUNUX0VRKDFVLCBbZmluZERlbGVn
YXRlIG1hdGNoZXNDb3VudF0pOwogICAgIEVYUEVDVF9GQUxTRShbZmluZERlbGVnYXRlIGRpZEZh
aWxdKTsKQEAgLTEzMyw3ICsxMzMsNyBAQCBURVNUKFdLUERGVmlldywgQ291bnRTdHJpbmdNaXNz
aW5nKQogCiAgICAgTlNTdHJpbmcgKmV4cGVjdGVkU3RyaW5nID0gQCJPbmUiOwogICAgIFt3ZWJW
aWV3IF9jb3VudFN0cmluZ01hdGNoZXM6ZXhwZWN0ZWRTdHJpbmcgb3B0aW9uczowIG1heENvdW50
Om1heENvdW50XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgIEVYUEVDVF9FUSgwVSwgW2Zp
bmREZWxlZ2F0ZSBtYXRjaGVzQ291bnRdKTsKICAgICBFWFBFQ1RfRkFMU0UoW2ZpbmREZWxlZ2F0
ZSBkaWRGYWlsXSk7CkBAIC0xNDgsNyArMTQ4LDcgQEAgVEVTVChXS1BERlZpZXcsIENvdW50U3Ry
aW5nQ2FzZUluc2Vuc2l0aQogCiAgICAgTlNTdHJpbmcgKmV4cGVjdGVkU3RyaW5nID0gQCJ0IjsK
ICAgICBbd2ViVmlldyBfY291bnRTdHJpbmdNYXRjaGVzOmV4cGVjdGVkU3RyaW5nIG9wdGlvbnM6
X1dLRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmUgbWF4Q291bnQ6bWF4Q291bnRdOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChpc0RvbmUpOwogCiAgICAgRVhQRUNUX0VRKDVVLCBbZmluZERlbGVnYXRlIG1hdGNoZXND
b3VudF0pOwogICAgIEVYUEVDVF9GQUxTRShbZmluZERlbGVnYXRlIGRpZEZhaWxdKTsKQEAgLTE2
Myw3ICsxNjMsNyBAQCBURVNUKFdLUERGVmlldywgRmluZFN0cmluZykKIAogICAgIE5TU3RyaW5n
ICpleHBlY3RlZFN0cmluZyA9IEAib25lIjsKICAgICBbd2ViVmlldyBfZmluZFN0cmluZzpleHBl
Y3RlZFN0cmluZyBvcHRpb25zOjAgbWF4Q291bnQ6bWF4Q291bnRdOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0Rv
bmUpOwogCiAgICAgRVhQRUNUX0VRKDFVLCBbZmluZERlbGVnYXRlIG1hdGNoZXNDb3VudF0pOwog
ICAgIEVYUEVDVF9FUSgwLCBbZmluZERlbGVnYXRlIG1hdGNoSW5kZXhdKTsKQEAgLTE3OSw3ICsx
NzksNyBAQCBURVNUKFdLUERGVmlldywgRmluZFN0cmluZ01pc3NpbmcpCiAKICAgICBOU1N0cmlu
ZyAqZXhwZWN0ZWRTdHJpbmcgPSBAIk9uZSI7CiAgICAgW3dlYlZpZXcgX2ZpbmRTdHJpbmc6ZXhw
ZWN0ZWRTdHJpbmcgb3B0aW9uczowIG1heENvdW50Om1heENvdW50XTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNE
b25lKTsKIAogICAgIEVYUEVDVF9UUlVFKFtmaW5kRGVsZWdhdGUgZGlkRmFpbF0pOwogICAgIEVY
UEVDVF9XS19TVFJFUShleHBlY3RlZFN0cmluZywgW2ZpbmREZWxlZ2F0ZSBmaW5kU3RyaW5nXSk7
CkBAIC0xOTMsNyArMTkzLDcgQEAgVEVTVChXS1BERlZpZXcsIEZpbmRTdHJpbmdDYXNlSW5zZW5z
aXRpdgogCiAgICAgTlNTdHJpbmcgKmV4cGVjdGVkU3RyaW5nID0gQCJ0IjsKICAgICBbd2ViVmll
dyBfZmluZFN0cmluZzpleHBlY3RlZFN0cmluZyBvcHRpb25zOl9XS0ZpbmRPcHRpb25zQ2FzZUlu
c2Vuc2l0aXZlIG1heENvdW50Om1heENvdW50XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAg
IEVYUEVDVF9FUSg1VSwgW2ZpbmREZWxlZ2F0ZSBtYXRjaGVzQ291bnRdKTsKICAgICBFWFBFQ1Rf
RVEoMCwgW2ZpbmREZWxlZ2F0ZSBtYXRjaEluZGV4XSk7CkBAIC0yMDIsNyArMjAyLDcgQEAgVEVT
VChXS1BERlZpZXcsIEZpbmRTdHJpbmdDYXNlSW5zZW5zaXRpdgogCiAgICAgaXNEb25lID0gTk87
CiAgICAgW3dlYlZpZXcgX2ZpbmRTdHJpbmc6ZXhwZWN0ZWRTdHJpbmcgb3B0aW9uczpfV0tGaW5k
T3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSBtYXhDb3VudDptYXhDb3VudF07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlz
RG9uZSk7CiAKICAgICBFWFBFQ1RfRVEoNVUsIFtmaW5kRGVsZWdhdGUgbWF0Y2hlc0NvdW50XSk7
CiAgICAgRVhQRUNUX0VRKDEsIFtmaW5kRGVsZWdhdGUgbWF0Y2hJbmRleF0pOwpAQCAtMjExLDcg
KzIxMSw3IEBAIFRFU1QoV0tQREZWaWV3LCBGaW5kU3RyaW5nQ2FzZUluc2Vuc2l0aXYKIAogICAg
IGlzRG9uZSA9IE5POwogICAgIFt3ZWJWaWV3IF9maW5kU3RyaW5nOmV4cGVjdGVkU3RyaW5nIG9w
dGlvbnM6X1dLRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmUgfCBfV0tGaW5kT3B0aW9uc0JhY2t3
YXJkcyBtYXhDb3VudDptYXhDb3VudF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZp
c0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBFWFBF
Q1RfRVEoNVUsIFtmaW5kRGVsZWdhdGUgbWF0Y2hlc0NvdW50XSk7CiAgICAgRVhQRUNUX0VRKDAs
IFtmaW5kRGVsZWdhdGUgbWF0Y2hJbmRleF0pOwpAQCAtMjI3LDcgKzIyNyw3IEBAIFRFU1QoV0tQ
REZWaWV3LCBGaW5kU3RyaW5nQmFja3dhcmQpCiAKICAgICBOU1N0cmluZyAqZXhwZWN0ZWRTdHJp
bmcgPSBAInQiOwogICAgIFt3ZWJWaWV3IF9maW5kU3RyaW5nOmV4cGVjdGVkU3RyaW5nIG9wdGlv
bnM6X1dLRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmUgfCBfV0tGaW5kT3B0aW9uc0JhY2t3YXJk
cyBtYXhDb3VudDptYXhDb3VudF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0Rv
bmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBFWFBFQ1Rf
RVEoNVUsIFtmaW5kRGVsZWdhdGUgbWF0Y2hlc0NvdW50XSk7CiAgICAgRVhQRUNUX0VRKDQsIFtm
aW5kRGVsZWdhdGUgbWF0Y2hJbmRleF0pOwpAQCAtMjM2LDcgKzIzNiw3IEBAIFRFU1QoV0tQREZW
aWV3LCBGaW5kU3RyaW5nQmFja3dhcmQpCiAKICAgICBpc0RvbmUgPSBOTzsKICAgICBbd2ViVmll
dyBfZmluZFN0cmluZzpleHBlY3RlZFN0cmluZyBvcHRpb25zOl9XS0ZpbmRPcHRpb25zQ2FzZUlu
c2Vuc2l0aXZlIHwgX1dLRmluZE9wdGlvbnNCYWNrd2FyZHMgbWF4Q291bnQ6bWF4Q291bnRdOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChpc0RvbmUpOwogCiAgICAgRVhQRUNUX0VRKDVVLCBbZmluZERlbGVnYXRlIG1h
dGNoZXNDb3VudF0pOwogICAgIEVYUEVDVF9FUSgzLCBbZmluZERlbGVnYXRlIG1hdGNoSW5kZXhd
KTsKQEAgLTI0NSw3ICsyNDUsNyBAQCBURVNUKFdLUERGVmlldywgRmluZFN0cmluZ0JhY2t3YXJk
KQogCiAgICAgaXNEb25lID0gTk87CiAgICAgW3dlYlZpZXcgX2ZpbmRTdHJpbmc6ZXhwZWN0ZWRT
dHJpbmcgb3B0aW9uczpfV0tGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSBtYXhDb3VudDptYXhD
b3VudF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBFWFBFQ1RfRVEoNVUsIFtmaW5kRGVs
ZWdhdGUgbWF0Y2hlc0NvdW50XSk7CiAgICAgRVhQRUNUX0VRKDQsIFtmaW5kRGVsZWdhdGUgbWF0
Y2hJbmRleF0pOwpAQCAtMjYxLDcgKzI2MSw3IEBAIFRFU1QoV0tQREZWaWV3LCBGaW5kU3RyaW5n
UGFzdEVuZCkKIAogICAgIE5TU3RyaW5nICpleHBlY3RlZFN0cmluZyA9IEAidHdvIjsKICAgICBb
d2ViVmlldyBfZmluZFN0cmluZzpleHBlY3RlZFN0cmluZyBvcHRpb25zOl9XS0ZpbmRPcHRpb25z
Q2FzZUluc2Vuc2l0aXZlIG1heENvdW50Om1heENvdW50XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsK
IAogICAgIEVYUEVDVF9FUSgyVSwgW2ZpbmREZWxlZ2F0ZSBtYXRjaGVzQ291bnRdKTsKICAgICBF
WFBFQ1RfRVEoMCwgW2ZpbmREZWxlZ2F0ZSBtYXRjaEluZGV4XSk7CkBAIC0yNzAsNyArMjcwLDcg
QEAgVEVTVChXS1BERlZpZXcsIEZpbmRTdHJpbmdQYXN0RW5kKQogCiAgICAgaXNEb25lID0gTk87
CiAgICAgW3dlYlZpZXcgX2ZpbmRTdHJpbmc6ZXhwZWN0ZWRTdHJpbmcgb3B0aW9uczpfV0tGaW5k
T3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSBtYXhDb3VudDptYXhDb3VudF07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlz
RG9uZSk7CiAKICAgICBFWFBFQ1RfRVEoMlUsIFtmaW5kRGVsZWdhdGUgbWF0Y2hlc0NvdW50XSk7
CiAgICAgRVhQRUNUX0VRKDEsIFtmaW5kRGVsZWdhdGUgbWF0Y2hJbmRleF0pOwpAQCAtMjc5LDcg
KzI3OSw3IEBAIFRFU1QoV0tQREZWaWV3LCBGaW5kU3RyaW5nUGFzdEVuZCkKIAogICAgIGlzRG9u
ZSA9IE5POwogICAgIFt3ZWJWaWV3IF9maW5kU3RyaW5nOmV4cGVjdGVkU3RyaW5nIG9wdGlvbnM6
X1dLRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmUgbWF4Q291bnQ6bWF4Q291bnRdOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChpc0RvbmUpOwogCiAgICAgRVhQRUNUX1RSVUUoW2ZpbmREZWxlZ2F0ZSBkaWRGYWlsXSk7
CiAgICAgRVhQRUNUX1dLX1NUUkVRKGV4cGVjdGVkU3RyaW5nLCBbZmluZERlbGVnYXRlIGZpbmRT
dHJpbmddKTsKQEAgLTI5Myw3ICsyOTMsNyBAQCBURVNUKFdLUERGVmlldywgRmluZFN0cmluZ0Jh
Y2t3YXJkUGFzdFN0CiAKICAgICBOU1N0cmluZyAqZXhwZWN0ZWRTdHJpbmcgPSBAInR3byI7CiAg
ICAgW3dlYlZpZXcgX2ZpbmRTdHJpbmc6ZXhwZWN0ZWRTdHJpbmcgb3B0aW9uczpfV0tGaW5kT3B0
aW9uc0Nhc2VJbnNlbnNpdGl2ZSB8IF9XS0ZpbmRPcHRpb25zQmFja3dhcmRzIG1heENvdW50Om1h
eENvdW50XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgIEVYUEVDVF9FUSgyVSwgW2ZpbmRE
ZWxlZ2F0ZSBtYXRjaGVzQ291bnRdKTsKICAgICBFWFBFQ1RfRVEoMSwgW2ZpbmREZWxlZ2F0ZSBt
YXRjaEluZGV4XSk7CkBAIC0zMDIsNyArMzAyLDcgQEAgVEVTVChXS1BERlZpZXcsIEZpbmRTdHJp
bmdCYWNrd2FyZFBhc3RTdAogCiAgICAgaXNEb25lID0gTk87CiAgICAgW3dlYlZpZXcgX2ZpbmRT
dHJpbmc6ZXhwZWN0ZWRTdHJpbmcgb3B0aW9uczpfV0tGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2
ZSB8IF9XS0ZpbmRPcHRpb25zQmFja3dhcmRzIG1heENvdW50Om1heENvdW50XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoaXNEb25lKTsKIAogICAgIEVYUEVDVF9FUSgyVSwgW2ZpbmREZWxlZ2F0ZSBtYXRjaGVzQ291
bnRdKTsKICAgICBFWFBFQ1RfRVEoMCwgW2ZpbmREZWxlZ2F0ZSBtYXRjaEluZGV4XSk7CkBAIC0z
MTEsNyArMzExLDcgQEAgVEVTVChXS1BERlZpZXcsIEZpbmRTdHJpbmdCYWNrd2FyZFBhc3RTdAog
CiAgICAgaXNEb25lID0gTk87CiAgICAgW3dlYlZpZXcgX2ZpbmRTdHJpbmc6ZXhwZWN0ZWRTdHJp
bmcgb3B0aW9uczpfV0tGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSB8IF9XS0ZpbmRPcHRpb25z
QmFja3dhcmRzIG1heENvdW50Om1heENvdW50XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAg
IEVYUEVDVF9UUlVFKFtmaW5kRGVsZWdhdGUgZGlkRmFpbF0pOwogICAgIEVYUEVDVF9XS19TVFJF
UShleHBlY3RlZFN0cmluZywgW2ZpbmREZWxlZ2F0ZSBmaW5kU3RyaW5nXSk7CkluZGV4OiBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlld1Jlc2l6ZUNyYXNoLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQ
REZWaWV3UmVzaXplQ3Jhc2gubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3UmVzaXplQ3Jhc2gubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTQ4LDYgKzQ4LDYgQEAgVEVTVChXZWJLaXQsIFdLUERGVmlld1Jlc2l6ZUNyYXNo
KQogICAgICAgICBmaW5pc2hlZERpc3BhdGNoID0gdHJ1ZTsKICAgICB9KTsKIAotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWREaXNwYXRjaCk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZmluaXNoZWREaXNwYXRjaCk7CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3U3RhYmxlUHJlc2VudGF0aW9uVXBkYXRl
Q2FsbGJhY2subW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS1BERlZpZXdTdGFibGVQcmVzZW50YXRpb25VcGRhdGVDYWxsYmFjay5tbQkocmV2
aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
S1BERlZpZXdTdGFibGVQcmVzZW50YXRpb25VcGRhdGVDYWxsYmFjay5tbQkod29ya2luZyBjb3B5
KQpAQCAtNDcsNyArNDcsNyBAQCBURVNUKFdlYktpdCwgV0tQREZWaWV3U3RhYmxlUHJlc2VudGF0
aW9uCiAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZp
bmlzaGVkKTsKIH0KIAogI2VuZGlmCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tSZXF1ZXN0QWN0aXZhdGVk
RWxlbWVudEluZm8ubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tSZXF1ZXN0QWN0aXZhdGVkRWxlbWVudEluZm8ubW0JKHdvcmtp
bmcgY29weSkKQEAgLTY5LDcgKzY5LDcgQEAgVEVTVChXZWJLaXQsIFJlcXVlc3RBY3RpdmF0ZWRF
bGVtZW50SW5mbwogICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgfV07CiAgICAgCi0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZmluaXNoZWQpOwogfQogICAgIAogVEVTVChXZWJLaXQsIFJlcXVlc3RBY3RpdmF0
ZWRFbGVtZW50SW5mb0ZvckltYWdlKQpAQCAtOTMsNyArOTMsNyBAQCBURVNUKFdlYktpdCwgUmVx
dWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvCiAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICB9
XTsKICAgICAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZCk7CiB9CiAgICAgCiBURVNUKFdlYktpdCwg
UmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvRm9yQmxhbmspCkBAIC0xMTIsNyArMTEyLDcgQEAg
VEVTVChXZWJLaXQsIFJlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mbwogICAgICAgICBmaW5pc2hl
ZCA9IHRydWU7CiAgICAgfV07CiAgICAgCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZm
aW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWQpOwogfQogICAg
IAogVEVTVChXZWJLaXQsIFJlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mb1dpdGhOZXN0ZWRTeW5j
aHJvbm91c1VwZGF0ZXMpCkBAIC0xMjcsNyArMTI3LDcgQEAgVEVTVChXZWJLaXQsIFJlcXVlc3RB
Y3RpdmF0ZWRFbGVtZW50SW5mbwogICAgICAgICBjaGVja0VsZW1lbnRUeXBlQW5kQm91bmRpbmdS
ZWN0KGVsZW1lbnRJbmZvLCBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmssIENHUmVjdE1ha2Uo
MCwgMCwgMjAwLCAyMDApKTsKICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwogICAgIH1dOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGZpbmlzaGVkKTsKIAogICAgIGZpbmlzaGVkID0gZmFsc2U7CiAgICAgW3dlYlZp
ZXcgX3JlcXVlc3RBY3RpdmF0ZWRFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDEw
MCkgY29tcGxldGlvbkJsb2NrOl4oX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmVsZW1lbnRJbmZv
KSB7CkBAIC0xMzYsNyArMTM2LDcgQEAgVEVTVChXZWJLaXQsIFJlcXVlc3RBY3RpdmF0ZWRFbGVt
ZW50SW5mbwogICAgICAgICBjaGVja0VsZW1lbnRUeXBlQW5kQm91bmRpbmdSZWN0KGVsZW1lbnRJ
bmZvLCBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmssIENHUmVjdE1ha2UoMCwgMCwgMjAwLCAy
MDApKTsKICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZp
bmlzaGVkKTsKIH0KIAogVEVTVChXZWJLaXQsIFJlcXVlc3RBY3RpdmF0ZWRFbGVtZW50SW5mb1dp
dGhOZXN0ZWRSZXF1ZXN0cykKQEAgLTE1NCw4ICsxNTQsOCBAQCBURVNUKFdlYktpdCwgUmVxdWVz
dEFjdGl2YXRlZEVsZW1lbnRJbmZvCiAgICAgICAgIGNoZWNrRWxlbWVudFR5cGVBbmRCb3VuZGlu
Z1JlY3Qob3V0ZXJFbGVtZW50SW5mbywgX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVJbWFnZSwgQ0dS
ZWN0TWFrZSgwLCAwLCAyMDAsIDIwMCkpOwogICAgICAgICBmaW5pc2hlZFdpdGhPdXRlciA9IHRy
dWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFdpdGhP
dXRlcik7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFdpdGhJbm5lcik7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWRXaXRoT3V0ZXIpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkV2l0aElubmVyKTsKIAogICAgIGZpbmlzaGVk
V2l0aElubmVyID0gZmFsc2U7CiAgICAgZmluaXNoZWRXaXRoT3V0ZXIgPSBmYWxzZTsKQEAgLTE2
Nyw4ICsxNjcsOCBAQCBURVNUKFdlYktpdCwgUmVxdWVzdEFjdGl2YXRlZEVsZW1lbnRJbmZvCiAg
ICAgICAgIGNoZWNrRWxlbWVudFR5cGVBbmRCb3VuZGluZ1JlY3Qob3V0ZXJFbGVtZW50SW5mbywg
X1dLQWN0aXZhdGVkRWxlbWVudFR5cGVJbWFnZSwgQ0dSZWN0TWFrZSgwLCAwLCAyMDAsIDIwMCkp
OwogICAgICAgICBmaW5pc2hlZFdpdGhPdXRlciA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZFdpdGhPdXRlcik7Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZmaW5pc2hlZFdpdGhJbm5lcik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwoZmluaXNoZWRXaXRoT3V0ZXIpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZp
bmlzaGVkV2l0aElubmVyKTsKIH0KIAogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XS1VSTFNjaGVtZUhhbmRsZXItMS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLVVJMU2NoZW1lSGFuZGxlci0xLm1t
CShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLVVJMU2NoZW1lSGFuZGxlci0xLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgsNyArMTQ4
LDcgQEAgVEVTVChVUkxTY2hlbWVIYW5kbGVyLCBCYXNpYykKICAgICBOU1VSTFJlcXVlc3QgKnJl
cXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAidGVzdGluZzptYWluIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChkb25lKTsKIAogICAgIEVYUEVDVF9FUShbaGFuZGxlci5nZXQoKS5zdGFydGVk
VVJMcyBjb3VudF0sIDJ1KTsKICAgICBFWFBFQ1RfVFJVRShbW2hhbmRsZXIuZ2V0KCkuc3RhcnRl
ZFVSTHMgb2JqZWN0QXRJbmRleDowXSBpc0VxdWFsOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVz
dGluZzptYWluIl1dKTsKQEAgLTE3Miw3ICsxNzIsNyBAQCBURVNUKFVSTFNjaGVtZUhhbmRsZXIs
IEJhc2ljV2l0aEFzeW5jUG9sCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Rpbmc6bWFpbiJd
XTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7
CiAKICAgICBFWFBFQ1RfRVEoW2hhbmRsZXIuZ2V0KCkuc3RhcnRlZFVSTHMgY291bnRdLCAydSk7
CiAgICAgRVhQRUNUX1RSVUUoW1toYW5kbGVyLmdldCgpLnN0YXJ0ZWRVUkxzIG9iamVjdEF0SW5k
ZXg6MF0gaXNFcXVhbDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Rpbmc6bWFpbiJdXSk7CkBA
IC0xOTgsNyArMTk4LDcgQEAgVEVTVChVUkxTY2hlbWVIYW5kbGVyLCBOb01JTUVUeXBlKQogICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0aW5nOm1haW4iXV07CiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6cmVxdWVzdF07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgRVhQRUNUX0VRKFtoYW5k
bGVyLmdldCgpLnN0YXJ0ZWRVUkxzIGNvdW50XSwgMXUpOwogICAgIEVYUEVDVF9UUlVFKFtbaGFu
ZGxlci5nZXQoKS5zdGFydGVkVVJMcyBvYmplY3RBdEluZGV4OjBdIGlzRXF1YWw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJ0ZXN0aW5nOm1haW4iXV0pOwpAQCAtMzEyLDcgKzMxMiw3IEBAIFRFU1Qo
VVJMU2NoZW1lSGFuZGxlciwgUmVkaXJlY3Rpb24pCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0
ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRl
c3Rpbmc6Ly8vaW5pdGlhbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsK
ICAgICAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGRvbmUpOwogICAgIAogICAgIEVYUEVDVF9UUlVFKHJlc3BvbnNlUG9s
aWN5RGVjaWRlZCk7CiAgICAgRVhQRUNUX1NUUkVRKHdlYlZpZXcuZ2V0KCkuVVJMLmFic29sdXRl
U3RyaW5nLlVURjhTdHJpbmcsICJ0ZXN0aW5nOi8vL3JlZGlyZWN0ZWQiKTsKQEAgLTM5NCw3ICsz
OTQsNyBAQCBzdGF0aWMgdm9pZCBjaGVja0NhbGxTZXF1ZW5jZShWZWN0b3I8Q29tCiAgICAgW2Nv
bmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVt
ZTpAInRlc3RpbmciXTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0aW5nOi8v
L2luaXRpYWwiXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKIFRFU1QoVVJMU2NoZW1lSGFuZGxl
ciwgRXhjZXB0aW9ucykKQEAgLTUxOSw3ICs1MTksNyBAQCBURVNUKFVSTFNjaGVtZUhhbmRsZXIs
IFN5bmNYSFIpCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN5bmN4aHI6Ly9ob3N0L21haW4uaHRt
bCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkTWVzc2FnZSA9IGZhbHNlOwog
CiAgICAgRVhQRUNUX0VRKCh1bnNpZ25lZClyZWNlaXZlZE1lc3NhZ2VzLmdldCgpLmNvdW50LCAo
dW5zaWduZWQpMSk7CkBAIC01MzAsMTMgKzUzMCwxMyBAQCBURVNUKFVSTFNjaGVtZUhhbmRsZXIs
IFN5bmNYSFIpCiAgICAgaGFuZGxlci5nZXQoKS0+cmVzb3VyY2VzLmZpbmQoInN5bmN4aHI6Ly9o
b3N0L3Rlc3QuZGF0IiktPnZhbHVlLnNob3VsZFJlc3BvbmQgPSBmYWxzZTsKICAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
c3RhcnRlZFhIUik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoc3RhcnRlZFhIUik7CiAg
ICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7CiAKICAgICB3ZWJWaWV3ID0gbmlsOwogICAgIFtw
b29sIGRyYWluXTsKICAgICAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVk
U3RvcCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVjZWl2ZWRTdG9wKTsKIH0KIAog
QGludGVyZmFjZSBTeW5jRXJyb3JTY2hlbWUgOiBOU09iamVjdCA8V0tVUkxTY2hlbWVIYW5kbGVy
LCBXS1VJRGVsZWdhdGU+CkBAIC01NzksNyArNTc5LDcgQEAgVEVTVChVUkxTY2hlbWVIYW5kbGVy
LCBTeW5jWEhSRXJyb3IpCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0
aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgW3dlYlZpZXcgc2V0VUlEZWxl
Z2F0ZTpoYW5kbGVyLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3luY2Vycm9yOi8vL21h
aW4uaHRtbCJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIqIHho
clBvc3REb2N1bWVudCA9IFIiWEhSUE9TVFJFU09VUkNFKDxodG1sPjxoZWFkPjxzY3JpcHQ+CkBA
IC02ODksNiArNjg5LDYgQEAgVEVTVChVUkxTY2hlbWVIYW5kbGVyLCBYSFJQb3N0KQogICAgIH1d
OwogICAgIAogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRo
VVRGOFN0cmluZzp4aHJQb3N0RG9jdW1lbnRdIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJ4aHJwb3N0Oi8vZXhhbXBsZS94aHJ0ZXN0Il1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3Q2FuZGlk
YXRlVGVzdHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVU
ZXN0cy5tbQkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCAtICh2b2lkKWluc2VydENh
bmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9uCiB7CiAgICAgX2lzRG9uZVdhaXRpbmdGb3JDYW5kaWRh
dGUgPSBmYWxzZTsKICAgICBbc2VsZiBfaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGU6W1tUZXN0Q2Fu
ZGlkYXRlIGFsbG9jXSBpbml0V2l0aFJlcGxhY2VtZW50U3RyaW5nOnJlcGxhY2VtZW50U3RyaW5n
IGluUmFuZ2U6cmFuZ2VdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJl9pc0RvbmVX
YWl0aW5nRm9yQ2FuZGlkYXRlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChfaXNEb25l
V2FpdGluZ0ZvckNhbmRpZGF0ZSk7CiB9CiAKIC0gKHZvaWQpX2RpZEhhbmRsZUFjY2VwdGVkQ2Fu
ZGlkYXRlCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCShyZXZpc2lvbiAyNDU1
MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTkzLDUgKzkzLDUgQEAgVEVTVChXZWJL
aXQsIERlZmF1bHRDb25maWd1cmF0aW9uRU1FKQogICAgICAgICBFWFBFQ1RfVFJVRShbcmVzdWx0
IGlzRXF1YWxUb1N0cmluZzpAIkVOQUJMRUQiXSk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAg
IH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLV2ViVmlld0RlZmF1bHROYXZpZ2F0aW9uRGVsZWdhdGUubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdE
ZWZhdWx0TmF2aWdhdGlvbkRlbGVnYXRlLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0RlZmF1bHROYXZpZ2F0aW9u
RGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgVEVTVChXS1dlYlZp
ZXcsIERlZmF1bHROYXZpZ2F0aW9uRGVsZWdhdAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9
IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJub3Ry
ZWFsOi9oZWxsbyJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChpc0RvbmUpOwogfQogCiAjZW5kaWYKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RGlhZ25vc3RpY0xvZ2dpbmcubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdEaWFn
bm9zdGljTG9nZ2luZy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdEaWFnbm9zdGljTG9nZ2luZy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtOTMsNSArOTMsNSBAQCBURVNUKFdLV2ViVmlldywgRGlhZ25vc3RpY0xvZ2dp
bmdEaWN0aW9uCiAgICAgW3dlYlZpZXcgY29uZmlndXJhdGlvbl0ucHJlZmVyZW5jZXMuX2RpYWdu
b3N0aWNMb2dnaW5nRW5hYmxlZCA9IFlFUzsKIAogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5n
OkAiPHNjcmlwdD53aW5kb3cuaW50ZXJuYWxzLnRlc3REaWN0aW9uYXJ5TG9nZ2luZygpPC9zY3Jp
cHQ+IiBiYXNlVVJMOm5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlw
dC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFT
Y3JpcHQubW0JKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAgVEVTVChXS1dlYlZpZXcs
IEV2YWx1YXRlSmF2YVNjcmlwdEJsb2NrQwogICAgIH0KIAogICAgIGlzRG9uZSA9IGZhbHNlOwot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbChpc0RvbmUpOwogfQogCiBURVNUKFdLV2ViVmlldywgRXZhbHVhdGVKYXZhU2Ny
aXB0RXJyb3JDYXNlcykKQEAgLTc5LDcgKzc5LDcgQEAgVEVTVChXS1dlYlZpZXcsIEV2YWx1YXRl
SmF2YVNjcmlwdEVycm9yQwogICAgIH1dOwogCiAgICAgaXNEb25lID0gZmFsc2U7Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGlzRG9uZSk7CiAKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVu
dC5ib2R5Lmluc2VydEJlZm9yZShkb2N1bWVudCwgZG9jdW1lbnQpIiBjb21wbGV0aW9uSGFuZGxl
cjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgRVhQRUNUX05VTEwocmVz
dWx0KTsKQEAgLTk0LDcgKzk0LDcgQEAgVEVTVChXS1dlYlZpZXcsIEV2YWx1YXRlSmF2YVNjcmlw
dEVycm9yQwogICAgIH1dOwogCiAgICAgaXNEb25lID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9u
ZSk7CiAKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJcblxudGhyb3cgJ3NvbWV0
aGluZyBiYWQnIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3Ip
IHsKICAgICAgICAgRVhQRUNUX05VTEwocmVzdWx0KTsKQEAgLTEwOSw1ICsxMDksNSBAQCBURVNU
KFdLV2ViVmlldywgRXZhbHVhdGVKYXZhU2NyaXB0RXJyb3JDCiAgICAgfV07CiAKICAgICBpc0Rv
bmUgPSBmYWxzZTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RmluZFN0cmluZy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0ZpbmRT
dHJpbmcubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV0tXZWJWaWV3RmluZFN0cmluZy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTM3
LDcgKzEzNyw3IEBAIFRFU1QoV0tXZWJWaWV3RmluZFN0cmluZywgRG9Ob3RGb2N1c01hdGMKICAg
ICBFWFBFQ1RfRkFMU0Uodmlld0lzRmlyc3RSZXNwb25kZXIoZmlyc3RXZWJWaWV3LmdldCgpKSk7
CiAKICAgICBbZmlyc3RXZWJWaWV3IF9maW5kU3RyaW5nOkAiaGVsbG8iIG9wdGlvbnM6MCBtYXhD
b3VudDptYXhDb3VudF07Ci0gICAgVXRpbDo6cnVuKCZpc0RvbmUpOworICAgIHJ1blVudGlsKGlz
RG9uZSk7CiAKICAgICBFWFBFQ1RfRkFMU0Uodmlld0lzRmlyc3RSZXNwb25kZXIoZmlyc3RXZWJW
aWV3LmdldCgpKSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJoZWxsbyIsIFtmaW5kRGVsZWdhdGUg
ZmluZFN0cmluZ10pOwpAQCAtMTYyLDcgKzE2Miw3IEBAIFRFU1QoV0tXZWJWaWV3RmluZFN0cmlu
ZywgRG9Ob3RGb2N1c01hdGMKICAgICBFWFBFQ1RfRkFMU0UoW2ZpcnN0V2ViVmlldyBpc0ZpcnN0
UmVzcG9uZGVyXSk7CiAKICAgICBbZmlyc3RXZWJWaWV3IF9maW5kU3RyaW5nOkAiaGVsbG8iIG9w
dGlvbnM6MCBtYXhDb3VudDptYXhDb3VudF07Ci0gICAgVXRpbDo6cnVuKCZpc0RvbmUpOworICAg
IHJ1blVudGlsKGlzRG9uZSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoW2ZpcnN0V2ViVmlldyBpc0Zp
cnN0UmVzcG9uZGVyXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJoZWxsbyIsIFtmaW5kRGVsZWdh
dGUgZmluZFN0cmluZ10pOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1dlYlZpZXdGaXJzdFJlc3BvbmRlclRlc3RzLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3Rmlyc3RSZXNwb25kZXJU
ZXN0cy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XS1dlYlZpZXdGaXJzdFJlc3BvbmRlclRlc3RzLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC01Niw3ICs1Niw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3Qp
ZnIKICAgICBfaW5wdXRGaWVsZCA9IGFkb3B0TlMoW1tVSVRleHRGaWVsZCBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIENHUmVjdEdldFdpZHRoKGZyYW1lKSwgNDQpXSk7CiAg
ICAgW3NlbGYuc2Nyb2xsVmlldyBhZGRTdWJ2aWV3Ol9pbnB1dEZpZWxkLmdldCgpXTsKICAgICBb
c2VsZiBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBjb250ZW50ZWRpdGFibGU+
PHNjcmlwdD5kb2N1bWVudC5ib2R5LmZvY3VzKCk8L3NjcmlwdD4iXTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmVGb2N1c2luZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoZG9uZUZvY3VzaW5nKTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdHZXRDb250ZW50cy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmll
d0dldENvbnRlbnRzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0dldENvbnRlbnRzLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC00Niw3ICs0Niw3IEBAIFRFU1QoV0tXZWJWaWV3LCBHZXRDb250ZW50c1Nob3VsZFJldHVy
blMKICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwogICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmlu
aXNoZWQpOwogfQogCiBURVNUKFdLV2ViVmlldywgR2V0Q29udGVudHNTaG91bGRSZXR1cm5BdHRy
aWJ1dGVkU3RyaW5nKQpAQCAtOTUsNSArOTUsNSBAQCBURVNUKFdLV2ViVmlldywgR2V0Q29udGVu
dHNTaG91bGRSZXR1cm5BCiAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICB9XTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGZpbmlzaGVkKTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV0tXZWJWaWV3U25hcHNob3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdTbmFwc2hvdC5tbQkocmV2aXNp
b24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dl
YlZpZXdTbmFwc2hvdC5tbQkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCBURVNUKFdL
V2ViVmlldywgU25hcHNob3RJbWFnZUVycm9yKQogICAgICAgICBpc0RvbmUgPSB0cnVlOwogICAg
IH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CiAKIFRFU1QoV0tXZWJWaWV3LCBTbmFwc2hv
dEltYWdlQmFzZUNhc2UpCkBAIC0xNDMsNyArMTQzLDcgQEAgVEVTVChXS1dlYlZpZXcsIFNuYXBz
aG90SW1hZ2VCYXNlQ2FzZSkKICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChpc0RvbmUpOwogfQogCiBURVNUKFdLV2ViVmlldywgU25hcHNob3RJbWFnZVNjYWxl
KQpAQCAtMTcwLDcgKzE3MCw3IEBAIFRFU1QoV0tXZWJWaWV3LCBTbmFwc2hvdEltYWdlU2NhbGUp
CiAgICAgICAgIGlzRG9uZSA9IHRydWU7CiAgICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsK
IH0KIAogVEVTVChXS1dlYlZpZXcsIFNuYXBzaG90SW1hZ2VOaWxDb25maWd1cmF0aW9uKQpAQCAt
MTkxLDcgKzE5MSw3IEBAIFRFU1QoV0tXZWJWaWV3LCBTbmFwc2hvdEltYWdlTmlsQ29uZmlndXIK
ICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwog
fQogCiBURVNUKFdLV2ViVmlldywgU25hcHNob3RJbWFnZVVuaW5pdGlhbGl6ZWRDb25maWd1cmF0
aW9uKQpAQCAtMjE0LDcgKzIxNCw3IEBAIFRFU1QoV0tXZWJWaWV3LCBTbmFwc2hvdEltYWdlVW5p
bml0aWFsaXoKICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChp
c0RvbmUpOwogfQogCiBURVNUKFdLV2ViVmlldywgU25hcHNob3RJbWFnZVVuaW5pdGlhbGl6ZWRT
bmFwc2hvdFdpZHRoKQpAQCAtMjM4LDcgKzIzOCw3IEBAIFRFU1QoV0tXZWJWaWV3LCBTbmFwc2hv
dEltYWdlVW5pbml0aWFsaXoKICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChpc0RvbmUpOwogfQogCiBURVNUKFdLV2ViVmlldywgU25hcHNob3RJbWFnZUxhcmdl
QXN5bmNEZWNvZGluZykKQEAgLTI4OSw3ICsyODksNyBAQCBURVNUKFdLV2ViVmlldywgU25hcHNo
b3RJbWFnZUxhcmdlQXN5bmNECiAgICAgICAgIGlzRG9uZSA9IHRydWU7CiAgICAgfV07CiAKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoaXNEb25lKTsKIH0KIAogVEVTVChXS1dlYlZpZXcsIFNuYXBzaG90QWZ0ZXJTY3Jl
ZW5VcGRhdGVzKQpAQCAtMzQ5LDcgKzM0OSw3IEBAIFRFU1QoV0tXZWJWaWV3LCBTbmFwc2hvdEFm
dGVyU2NyZWVuVXBkYXQKICAgICAgICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsKICAgICAKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoaXNEb25lKTsKIH0KIAogVEVTVChXS1dlYlZpZXcsIFNuYXBzaG90V2l0aG91dEFm
dGVyU2NyZWVuVXBkYXRlcykKQEAgLTQxMCw1ICs0MTAsNSBAQCBURVNUKFdLV2ViVmlldywgU25h
cHNob3RXaXRob3V0QWZ0ZXJTY3JlCiAgICAgICAgIGlzRG9uZSA9IHRydWU7CiAgICAgfV07CiAg
ICAgCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGlzRG9uZSk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbQko
cmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XS1dlYnNpdGVEYXRhc3RvcmUubW0JKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAg
LSAoaW5zdGFuY2V0eXBlKWluaXQKIAogLSAodm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlv
bgogewotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmX2hhc0ZpbmlzaGVkTmF2aWdhdGlv
bik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoX2hhc0ZpbmlzaGVkTmF2aWdhdGlvbik7
CiB9CiAKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRGaW5pc2hOYXZp
Z2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uCkBAIC04NywxNCArODcsMTQgQEAgVEVT
VChXS1dlYnNpdGVEYXRhU3RvcmUsIFJlbW92ZUFuZEZldGNoRAogICAgIFtbV0tXZWJzaXRlRGF0
YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRh
U3RvcmUgX2FsbFdlYnNpdGVEYXRhVHlwZXNJbmNsdWRpbmdQcml2YXRlXSBtb2RpZmllZFNpbmNl
OltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CiAgICAgICAgIHJl
YWR5VG9Db250aW51ZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWFkeVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlYWR5
VG9Db250aW51ZSk7CiAgICAgCiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CiAgICAgW1tX
S1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gZmV0Y2hEYXRhUmVjb3Jkc09mVHlw
ZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBfYWxsV2Vic2l0ZURhdGFUeXBlc0luY2x1ZGluZ1ByaXZh
dGVdIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+ICpk
YXRhUmVjb3JkcykgewogICAgICAgICBBU1NFUlRfRVEoMHUsIGRhdGFSZWNvcmRzLmNvdW50KTsK
ICAgICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVu
VW50aWwocmVhZHlUb0NvbnRpbnVlKTsKIH0KIAogVEVTVChXS1dlYnNpdGVEYXRhU3RvcmUsIFJl
bW92ZUVwaGVtZXJhbERhdGEpCkBAIC0xMDcsNyArMTA3LDcgQEAgVEVTVChXS1dlYnNpdGVEYXRh
U3RvcmUsIFJlbW92ZUVwaGVtZXJhbAogICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0
b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRh
VHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRs
ZXI6IF57CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9
CiAKIHN0YXRpYyB2b2lkIHJlc3BvbmRXaXRoQ2hhbGxlbmdlVGhlbk9LKGludCBzb2NrZXQpCkBA
IC0xNTksNyArMTU5LDcgQEAgVEVTVChXS1dlYnNpdGVEYXRhU3RvcmUsIEZldGNoTm9uUGVyc2lz
dAogICAgICAgICAgICAgQVNTRVJUX1RSVUUoW1tyZWNvcmQgZGlzcGxheU5hbWVdIGlzRXF1YWxU
b1N0cmluZzpAIjEyNy4wLjAuMSJdKTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChkb25lKTsKIH0KIAogVEVTVChXS1dlYnNpdGVEYXRhU3RvcmUsIEZldGNoUGVyc2lz
dGVudENyZWRlbnRpYWxzKQpAQCAtMTg5LDcgKzE4OSw3IEBAIFRFU1QoV0tXZWJzaXRlRGF0YVN0
b3JlLCBGZXRjaFBlcnNpc3RlbnQKICAgICAgICAgRVhQRUNUX1RSVUUoZm91bmRFeHBlY3RlZFJl
Y29yZCk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAg
ICAgCiAgICAgX19ibG9jayBib29sIHJlbW92ZWRDcmVkZW50aWFsID0gZmFsc2U7CiAgICAgW3dl
YnNpdGVEYXRhU3RvcmUgZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6W05TU2V0IHNldFdpdGhPYmpl
Y3Q6X1dLV2Vic2l0ZURhdGFUeXBlQ3JlZGVudGlhbHNdIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNB
cnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+ICpkYXRhUmVjb3JkcykgewpAQCAtMTk3LDcgKzE5
Nyw3IEBAIFRFU1QoV0tXZWJzaXRlRGF0YVN0b3JlLCBGZXRjaFBlcnNpc3RlbnQKICAgICAgICAg
ICAgIHJlbW92ZWRDcmVkZW50aWFsID0gdHJ1ZTsKICAgICAgICAgfV07CiAgICAgfV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZW1vdmVkQ3JlZGVudGlhbCk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwocmVtb3ZlZENyZWRlbnRpYWwpOwogfQogCiBURVNUKFdLV2Vic2l0
ZURhdGFTdG9yZSwgUmVtb3ZlUGVyc2lzdGVudENyZWRlbnRpYWxzKQpAQCAtMjI3LDEzICsyMjcs
MTMgQEAgVEVTVChXS1dlYnNpdGVEYXRhU3RvcmUsIFJlbW92ZVBlcnNpc3RlbgogICAgICAgICBF
WFBFQ1RfVFJVRShleHBlY3RlZFJlY29yZCk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1d
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBkb25lID0gZmFsc2U7CiAgICAgW3dlYnNpdGVEYXRh
U3RvcmUgcmVtb3ZlRGF0YU9mVHlwZXM6W05TU2V0IHNldFdpdGhPYmplY3Q6X1dLV2Vic2l0ZURh
dGFUeXBlQ3JlZGVudGlhbHNdIGZvckRhdGFSZWNvcmRzOltOU0FycmF5IGFycmF5V2l0aE9iamVj
dDpleHBlY3RlZFJlY29yZC5nZXQoKV0gY29tcGxldGlvbkhhbmRsZXI6Xih2b2lkKSB7CiAgICAg
ICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBkb25lID0g
ZmFsc2U7CiAgICAgW3dlYnNpdGVEYXRhU3RvcmUgZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6W05T
U2V0IHNldFdpdGhPYmplY3Q6X1dLV2Vic2l0ZURhdGFUeXBlQ3JlZGVudGlhbHNdIGNvbXBsZXRp
b25IYW5kbGVyOl4oTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+ICpkYXRhUmVjb3Jkcykg
ewpAQCAtMjQ4LDcgKzI0OCw3IEBAIFRFU1QoV0tXZWJzaXRlRGF0YVN0b3JlLCBSZW1vdmVQZXJz
aXN0ZW4KICAgICAgICAgRVhQRUNUX0ZBTFNFKGZvdW5kTG9jYWxIb3N0UmVjb3JkKTsKICAgICAg
ICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogVEVTVChXS1dl
YnNpdGVEYXRhU3RvcmUsIFJlbW92ZU5vblBlcnNpc3RlbnRDcmVkZW50aWFscykKQEAgLTI4MCwx
MyArMjgwLDEzIEBAIFRFU1QoV0tXZWJzaXRlRGF0YVN0b3JlLCBSZW1vdmVOb25QZXJzaXMKICAg
ICAgICAgRVhQRUNUX1RSVUUoZXhwZWN0ZWRSZWNvcmQpOwogICAgICAgICBkb25lID0gdHJ1ZTsK
ICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgZG9uZSA9IGZhbHNlOwogICAgIFt3ZWJz
aXRlRGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOltOU1NldCBzZXRXaXRoT2JqZWN0Ol9XS1dl
YnNpdGVEYXRhVHlwZUNyZWRlbnRpYWxzXSBmb3JEYXRhUmVjb3JkczpbTlNBcnJheSBhcnJheVdp
dGhPYmplY3Q6ZXhwZWN0ZWRSZWNvcmQuZ2V0KCldIGNvbXBsZXRpb25IYW5kbGVyOl4odm9pZCkg
ewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAg
ZG9uZSA9IGZhbHNlOwogICAgIFt3ZWJzaXRlRGF0YVN0b3JlIGZldGNoRGF0YVJlY29yZHNPZlR5
cGVzOltOU1NldCBzZXRXaXRoT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZUNyZWRlbnRpYWxzXSBj
b21wbGV0aW9uSGFuZGxlcjpeKE5TQXJyYXk8V0tXZWJzaXRlRGF0YVJlY29yZCAqPiAqZGF0YVJl
Y29yZHMpIHsKQEAgLTMwMSw3ICszMDEsNyBAQCBURVNUKFdLV2Vic2l0ZURhdGFTdG9yZSwgUmVt
b3ZlTm9uUGVyc2lzCiAgICAgICAgIEVYUEVDVF9GQUxTRShmb3VuZExvY2FsSG9zdFJlY29yZCk7
CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKIH0K
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViQ29udGVudFBy
b2Nlc3NEaWRUZXJtaW5hdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZS5tbQkocmV2aXNp
b24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJD
b250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTE4LDcgKzEx
OCw3IEBAIFRFU1QoV0tOYXZpZ2F0aW9uLCBGYWlsdXJlVG9TdGFydFdlYlByb2MKICAgICBzaG91
bGRMb2FkQWdhaW5PbkNyYXNoID0gdHJ1ZTsKIAogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5n
OnRlc3RIVE1MIGJhc2VVUkw6bmlsXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZp
bmlzaGVkTG9hZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWRMb2FkKTsK
IAogICAgIEVYUEVDVF9UUlVFKGRpZENyYXNoKTsKICAgICBFWFBFQ1RfVFJVRSghIXdlYlZpZXcu
Z2V0KCkuX3dlYlByb2Nlc3NJZGVudGlmaWVyKTsKQEAgLTE0MSw3ICsxNDEsNyBAQCBURVNUKFdL
TmF2aWdhdGlvbiwgRmFpbHVyZVRvU3RhcnRXZWJQcm9jCiAgICAgZGlkQ3Jhc2ggPSBmYWxzZTsK
IAogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOnRlc3RIVE1MIGJhc2VVUkw6bmlsXTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTG9hZCk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZmluaXNoZWRMb2FkKTsKIAogICAgIEVYUEVDVF9GQUxTRShkaWRDcmFz
aCk7CiAgICAgRVhQRUNUX1RSVUUoISF3ZWJWaWV3LmdldCgpLl93ZWJQcm9jZXNzSWRlbnRpZmll
cik7CkBAIC0xNTIsNyArMTUyLDcgQEAgVEVTVChXS05hdmlnYXRpb24sIEZhaWx1cmVUb1N0YXJ0
V2ViUHJvYwogICAgIGV4cGVjdGVkQ3Jhc2hSZWFzb24gPSBfV0tQcm9jZXNzVGVybWluYXRpb25S
ZWFzb25SZXF1ZXN0ZWRCeUNsaWVudDsKICAgICBbd2ViVmlldyBfa2lsbFdlYkNvbnRlbnRQcm9j
ZXNzQW5kUmVzZXRTdGF0ZV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENy
YXNoKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRDcmFzaCk7CiAgICAgRVhQRUNU
X1RSVUUoIXdlYlZpZXcuZ2V0KCkuX3dlYlByb2Nlc3NJZGVudGlmaWVyKTsKICAgICBFWFBFQ1Rf
RkFMU0UocmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKIApAQCAtMTY1LDcgKzE2NSw3IEBAIFRFU1Qo
V0tOYXZpZ2F0aW9uLCBGYWlsdXJlVG9TdGFydFdlYlByb2MKICAgICBbY29uZmlndXJhdGlvbi5n
ZXQoKS5wcm9jZXNzUG9vbCBfbWFrZU5leHRXZWJQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3Rpbmdd
OwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOnRlc3RIVE1MIGJhc2VVUkw6bmlsXTsKIAot
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWRMb2FkKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZExvYWQpOwogCiAgICAgRVhQRUNUX1RSVUUoZGlkQ3Jh
c2gpOwogICAgIEVYUEVDVF9UUlVFKCEhd2ViVmlldy5nZXQoKS5fd2ViUHJvY2Vzc0lkZW50aWZp
ZXIpOwpAQCAtMTgzLDcgKzE4Myw3IEBAIFRFU1QoV0tOYXZpZ2F0aW9uLCBBdXRvbWF0aWNWaWV3
UmVsb2FkQWYKICAgICBmaW5pc2hlZExvYWQgPSBmYWxzZTsKIAogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAInJpY2gtYW5kLXBsYWluLXRleHQiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZExvYWQpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGZpbmlzaGVkTG9hZCk7CiAKICAgICBzdGFydGVkTG9hZCA9IGZhbHNlOwogICAg
IGZpbmlzaGVkTG9hZCA9IGZhbHNlOwpAQCAtMTkyLDcgKzE5Miw3IEBAIFRFU1QoV0tOYXZpZ2F0
aW9uLCBBdXRvbWF0aWNWaWV3UmVsb2FkQWYKICAgICBbd2ViVmlldyBfa2lsbFdlYkNvbnRlbnRQ
cm9jZXNzXTsKIAogICAgIC8vIFNpbmNlIHdlIGRvIG5vdCBkZWFsIHdpdGggdGhlIGNyYXNoLCBX
ZWJLaXQgc2hvdWxkIGF0dGVtcHQgYSByZWxvYWQuCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZmaW5pc2hlZExvYWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVk
TG9hZCk7CiAKICAgICBzdGFydGVkTG9hZCA9IGZhbHNlOwogICAgIGZpbmlzaGVkTG9hZCA9IGZh
bHNlOwpAQCAtMjE3LDcgKzIxNyw3IEBAIFRFU1QoV0tOYXZpZ2F0aW9uLCBQcm9jZXNzQ3Jhc2hE
dXJpbmdDYWwKICAgICBmaW5pc2hlZExvYWQgPSBmYWxzZTsKIAogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAInJpY2gtYW5kLXBsYWluLXRleHQiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZExvYWQpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGZpbmlzaGVkTG9hZCk7CiAKICAgICBzdGFydGVkTG9hZCA9IGZhbHNlOwogICAg
IGZpbmlzaGVkTG9hZCA9IGZhbHNlOwpAQCAtMjczLDcgKzI3Myw3IEBAIFRFU1QoV0tOYXZpZ2F0
aW9uLCBQcm9jZXNzQ3Jhc2hEdXJpbmdDYWwKICAgICAvLyBTaW11bGF0ZSBhIGNyYXNoLCB3aGlj
aCBzaG91bGQgaW52YWxpZGF0ZSBhbGwgcGVuZGluZyBjYWxsYmFja3MuCiAgICAgW3dlYlZpZXcg
X2tpbGxXZWJDb250ZW50UHJvY2Vzc107CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmNhbGxlZEFsbENhbGxiYWNrcyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoY2FsbGVk
QWxsQ2FsbGJhY2tzKTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjUpOwogICAg
IEVYUEVDVF9FUSg2VSwgY2FsbGJhY2tDb3VudCk7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkNyeXB0b01hc3RlcktleS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkNyeXB0b01hc3Rlcktl
eS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XZWJDcnlwdG9NYXN0ZXJLZXkubW0JKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0
LDcgQEAgVEVTVChXZWJLaXQsIFdlYkNyeXB0b05pbE1hc3RlcktleSkKICAgICBbd2ViVmlldyBz
ZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOwotICAgIFV0aWw6
OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICBydW5VbnRpbChyZWNlaXZlZE1lc3NhZ2UpOwog
ICAgIEVYUEVDVF9XS19TVFJFUSgiRGF0YUNsb25lRXJyb3IiLCBnTWVzc2FnZSk7CiB9CiAKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViR0xQb2xpY3kubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJH
TFBvbGljeS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XZWJHTFBvbGljeS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTEyLDcgKzEx
Miw3IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoX1dLV2ViR0xMb2FkUG9saWN5IGYKICAgICBbd2Vi
VmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3
IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6aHRtbFVSTC5nZXQoKV1dOwotICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmdGVzdENvbXBsZXRlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbCh0ZXN0Q29tcGxldGUpOwogfQogCiBURVNUKFdlYktpdCwgV2ViR0xQb2xpY3kpCkBA
IC0xNjEsNyArMTYxLDcgQEAgVEVTVChXZWJLaXQsIFdlYkdMUG9saWN5Tm9EZWxlZ2F0ZSkKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0XSk7CiAgICAg
W3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9h
ZEhUTUxTdHJpbmc6ZGF0YSBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL2V4
YW1wbGUuY29tLyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnRlc3RDb21wbGV0
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwodGVzdENvbXBsZXRlKTsKICAgICBFWFBF
Q1RfU1RSRVEoW2FsZXJ0IFVURjhTdHJpbmddLCAiZG9pbmcgc3R1ZmYgd2l0aCB3ZWJnbCBjb250
ZXh0IHN1Y2NlZWRlZCIpOwogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlByb2Nlc3NLaWxsSURCQ2xlYW51
cC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0JKHdvcmtpbmcgY29weSkKQEAgLTU4
LDcgKzU4LDcgQEAgc3RhdGljIFdLU2NyaXB0TWVzc2FnZSAqZ2V0TmV4dE1lc3NhZ2UoKQogewog
ICAgIGlmIChzY3JpcHRNZXNzYWdlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgcmVjZWl2ZWRTY3Jp
cHRNZXNzYWdlID0gZmFsc2U7Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICB9CiAKICAgICByZXR1cm4gW1tzY3JpcHRNZXNzYWdl
cy50YWtlRmlyc3QoKSByZXRhaW5dIGF1dG9yZWxlYXNlXTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0
ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5t
bQkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgV0tTY3JpcHRNZXNzYWdl
ICpnZXROZXh0TWVzc2FnZSgpCiB7CiAgICAgaWYgKHNjcmlwdE1lc3NhZ2VzLmlzRW1wdHkoKSkg
ewogICAgICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKLSAgICAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgICAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIH0KIAogICAg
IHJldHVybiBbW3NjcmlwdE1lc3NhZ2VzLnRha2VGaXJzdCgpIHJldGFpbl0gYXV0b3JlbGVhc2Vd
OwpAQCAtMjIxLDEzICsyMjEsMTMgQEAgc3RhdGljIHZvaWQgcnVuV2Vic2l0ZURhdGFTdG9yZUN1
c3RvbVBhdAogICAgICAgICB9CiAgICAgfV07CiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0g
ZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7
CiAKICAgICBbZGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOnR5cGVzLmdldCgpIG1vZGlmaWVk
U2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6W10oKSB7CiAgICAg
ICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7CiAgICAgfV07CiAgICAgcmVjZWl2ZWRT
Y3JpcHRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVk
U2NyaXB0TWVzc2FnZSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1
bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmZpbGVJREJQYXRoLmdldCgpLnBhdGhdKTsKIApA
QCAtMjQzLDcgKzI0Myw3IEBAIHN0YXRpYyB2b2lkIHJ1bldlYnNpdGVEYXRhU3RvcmVDdXN0b21Q
YXQKICAgICB9XTsKIAogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogCiAgICAgW3Byb2Nl
c3NQb29sIF90ZXJtaW5hdGVOZXR3b3JrUHJvY2Vzc107CiAgICAgbmV3Q3VzdG9tRGF0YVN0b3Jl
ID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJh
dGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0pOwpAQCAtMjUzLDcgKzI1
Myw3IEBAIHN0YXRpYyB2b2lkIHJ1bldlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXQKICAgICB9XTsK
IAogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogCiAgICAgLy8gVGhpcyB0aW1lLCByZXVz
ZSB0aGUgc2FtZSBuZXR3b3JrIHByb2Nlc3MgYnV0IHN0aWxsIGRvIGEgbmV3IHdlYnNpdGVkYXRh
c3RvcmUsIHRvIG1ha2Ugc3VyZSBldmVuIGFuIGV4aXN0aW5nIG5ldHdvcmsgcHJvY2VzcwogICAg
IC8vIGdldHMgdGhlIG5ldyBkYXRhc3RvcmUuCkBAIC0yNjUsNyArMjY1LDcgQEAgc3RhdGljIHZv
aWQgcnVuV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdAogICAgIH1dOwogCiAgICAgcmVjZWl2ZWRT
Y3JpcHRNZXNzYWdlID0gZmFsc2U7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVk
U2NyaXB0TWVzc2FnZSk7CiAKICAgICBFWFBFQ1RfRkFMU0UoW1dLV2Vic2l0ZURhdGFTdG9yZSBf
ZGVmYXVsdERhdGFTdG9yZUV4aXN0c10pOwogfQpAQCAtMzAzLDcgKzMwMyw3IEBAIFRFU1QoV2Vi
S2l0LCBDdXN0b21EYXRhU3RvcmVQYXRoc1ZlcnN1c0MKICAgICAgICAgRVhQRUNUX0VRKDFVLCBk
YXRhUmVjb3Jkcy5jb3VudCk7CiAgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7CiAgICAg
fV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlYWR5VG9Db250aW51ZSk7CiAgICAgcmVhZHlUb0Nv
bnRpbnVlID0gZmFsc2U7CiAKICAgICAvLyBGZXRjaCByZWNvcmRzIGFnYWluLCB0aGlzIHRpbWUg
cmVsZWFzaW5nIG91ciByZWZlcmVuY2UgdG8gdGhlIGRhdGEgc3RvcmUgd2hpbGUgdGhlIHJlcXVl
c3QgaXMgaW4gZmxpZ2h0LgpAQCAtMzEyLDcgKzMxMiw3IEBAIFRFU1QoV2ViS2l0LCBDdXN0b21E
YXRhU3RvcmVQYXRoc1ZlcnN1c0MKICAgICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKICAg
ICB9XTsKICAgICBkYXRhU3RvcmUgPSBuaWw7Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWFkeVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlYWR5VG9D
b250aW51ZSk7CiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CiAKICAgICAvLyBEZWxldGUg
YWxsIFNXIHJlY29yZHMsIHJlbGVhc2luZyBvdXIgcmVmZXJlbmNlIHRvIHRoZSBkYXRhIHN0b3Jl
IHdoaWxlIHRoZSByZXF1ZXN0IGlzIGluIGZsaWdodC4KQEAgLTMyMSw3ICszMjEsNyBAQCBURVNU
KFdlYktpdCwgQ3VzdG9tRGF0YVN0b3JlUGF0aHNWZXJzdXNDCiAgICAgICAgIHJlYWR5VG9Db250
aW51ZSA9IHRydWU7CiAgICAgfV07CiAgICAgZGF0YVN0b3JlID0gbmlsOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpy
dW5VbnRpbChyZWFkeVRvQ29udGludWUpOwogICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOwog
CiAgICAgLy8gVGhlIHJlY29yZHMgc2hvdWxkIGhhdmUgYmVlbiBkZWxldGVkLCBhbmQgdGhlIGNh
bGxiYWNrIHNob3VsZCBoYXZlIGJlZW4gbWFkZS4KQEAgLTMzMSw3ICszMzEsNyBAQCBURVNUKFdl
YktpdCwgQ3VzdG9tRGF0YVN0b3JlUGF0aHNWZXJzdXNDCiAgICAgICAgIEVYUEVDVF9FUSgwVSwg
ZGF0YVJlY29yZHMuY291bnQpOwogICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOwogICAg
IH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRvQ29udGludWUpOwogfQogCiBURVNUKFdl
YktpdCwgQ3VzdG9tRGF0YVN0b3JlRGVzdHJveVdoaWxlRmV0Y2hpbmdOZXR3b3JrUHJvY2Vzc0Rh
dGEpCkBAIC0zNTMsNyArMzUzLDcgQEAgVEVTVChXZWJLaXQsIEN1c3RvbURhdGFTdG9yZURlc3Ry
b3lXaGlsZQogICAgICAgICAgICAgRVhQRUNUX0VRKChpbnQpZGF0YVJlY29yZHMuY291bnQsIDAp
OwogICAgICAgICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKICAgICAgICAgfV07Ci0gICAg
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKyAgICAgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVhZHlUb0NvbnRpbnVlKTsKICAgICAgICAgcmVhZHlU
b0NvbnRpbnVlID0gZmFsc2U7CiAKICAgICAgICAgLy8gRmV0Y2ggcmVjb3JkcyBhZ2FpbiwgdGhp
cyB0aW1lIHJlbGVhc2luZyBvdXIgcmVmZXJlbmNlIHRvIHRoZSBkYXRhIHN0b3JlIHdoaWxlIHRo
ZSByZXF1ZXN0IGlzIGluIGZsaWdodC4KQEAgLTM2Myw3ICszNjMsNyBAQCBURVNUKFdlYktpdCwg
Q3VzdG9tRGF0YVN0b3JlRGVzdHJveVdoaWxlCiAgICAgICAgIH1dOwogICAgICAgICBkYXRhU3Rv
cmUgPSBuaWw7CiAgICAgfQotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0Nv
bnRpbnVlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChyZWFkeVRvQ29udGludWUpOwog
ICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOwogCiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CkBA
IC0zODQsNyArMzg0LDcgQEAgVEVTVChXZWJLaXQsIEN1c3RvbURhdGFTdG9yZURlc3Ryb3lXaGls
ZQogICAgICAgICBkYXRhU3RvcmUgPSBuaWw7CiAgICAgfQogCi0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KHJlYWR5VG9Db250aW51ZSk7CiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CiB9CiAKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVz
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V2Vic2l0ZVBvbGljaWVzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMTQ5LDcgKzE0OSw3IEBAIFRFU1QoV2ViS2l0LCBXZWJzaXRlUG9saWNpZXNDb250ZW50Qmxv
Y2sKICAgICAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gX2FkZFVz
ZXJDb250ZW50RmlsdGVyOmZpbHRlcl07CiAgICAgICAgIGRvbmVDb21waWxpbmcgPSB0cnVlOwog
ICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUNvbXBpbGluZyk7Cisg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZUNvbXBpbGluZyk7CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwog
CkBAIC0xNjEsMTUgKzE2MSwxNSBAQCBURVNUKFdlYktpdCwgV2Vic2l0ZVBvbGljaWVzQ29udGVu
dEJsb2NrCiAgICAgYWxlcnRDb3VudCA9IDA7CiAgICAgcmVjZWl2ZWRBbGVydCA9IGZhbHNlOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcmVjZWl2ZWRBbGVydCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocmVj
ZWl2ZWRBbGVydCk7CiAKICAgICByZWNlaXZlZEFsZXJ0ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcg
cmVsb2FkXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkQWxlcnQpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkQWxlcnQpOwogCiAgICAgcmVjZWl2
ZWRBbGVydCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IF9yZWxvYWRXaXRob3V0Q29udGVudEJsb2Nr
ZXJzXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkQWxlcnQpOworICAg
IFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHJlY2VpdmVkQWxlcnQpOwogCiAgICAgW1tfV0tVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlIGRlZmF1bHRTdG9yZV0gX3JlbW92ZUFsbENvbnRlbnRFeHRl
bnNpb25zXTsKIH0KQEAgLTU3Miw3ICs1NzIsNyBAQCBURVNUKFdlYktpdCwgV2Vic2l0ZVBvbGlj
aWVzV2l0aFVuZXhwZWN0CiAKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVs
ZWdhdGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAic2ltcGxlIl07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDYXRjaEV4Y2VwdGlvbik7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkQ2F0Y2hFeGNlcHRpb24pOwogfQogCiBzdHJ1Y3Qg
UGFyc2VkUmFuZ2UgewpAQCAtMTA2MywxNiArMTA2MywxNiBAQCBURVNUKFdlYktpdCwgQ3VzdG9t
SGVhZGVyRmllbGRzKQogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVn
YXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovLy9tYWlucmVz
b3VyY2UiXV1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmlyc3RUZXN0RG9uZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmlyc3RUZXN0RG9uZSk7CiAgICAgCiAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAInRlc3Q6Ly9tYWluZnJhbWVvcmlnaW4vbWFpbnJlc291cmNld2l0aGlm
cmFtZSJdXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZzZWNvbmRUZXN0RG9uZSk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoc2Vjb25kVGVzdERvbmUpOwogCiAgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAInRlc3Q6Ly90b3BvcmlnaW4vbmVzdGVkdG9wIl1dXTsKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnRoaXJkVGVzdERvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKHRoaXJkVGVzdERvbmUpOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly9ob3N0
L3Rlc3RjdXN0b21oZWFkZXJmaWVsZGhvc3RzIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmZpZnRoVGVzdERvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpZnRo
VGVzdERvbmUpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgbG9hZENvdW50OwpAQCAtMTE5NCw3ICsx
MTk0LDcgQEAgVEVTVChXZWJLaXQsIFdlYnNpdGVQb2xpY2llc0N1c3RvbVVzZXJBZwogICAgIE5T
VVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJ0ZXN0Oi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGZpbmlzaGVkTmF2aWdhdGlvbik7CiAgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CiAK
ICAgICB3aGlsZSAobG9hZENvdW50ICE9IDlVKQpAQCAtMTIwNCw3ICsxMjA0LDcgQEAgVEVTVChX
ZWJLaXQsIFdlYnNpdGVQb2xpY2llc0N1c3RvbVVzZXJBZwogICAgIHJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovL3d3dy5n
b29nbGUuY29tL21haW4uaHRtbCJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hlZE5hdmlnYXRpb24pOwogICAgIGZp
bmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0VRKDFVLCBsb2FkQ291bnQp
OwpAQCAtMTI2MCw3ICsxMjYwLDcgQEAgVEVTVChXZWJLaXQsIFdlYnNpdGVQb2xpY2llc0N1c3Rv
bUphdmFTYwogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0Oi8vd3d3LndlYmtpdC5vcmcvbWFp
bi5odG1sIl1dOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJL
aXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkTmF2aWdhdGlvbik7CiAgICAgZmluaXNoZWROYXZpZ2F0
aW9uID0gZmFsc2U7CiAKICAgICB3aGlsZSAobG9hZENvdW50ICE9IDlVKQpAQCAtMTI5Myw3ICsx
MjkzLDcgQEAgVEVTVChXZWJLaXQsIFdlYnNpdGVQb2xpY2llc0N1c3RvbVVzZXJBZwogICAgIE5T
VVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJ0ZXN0Oi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOwogICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGZpbmlzaGVkTmF2aWdhdGlvbik7CiAgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CiAK
ICAgICB3aGlsZSAobG9hZENvdW50ICE9IDlVKQpAQCAtMTMzNyw3ICsxMzM3LDcgQEAgVEVTVChX
ZWJLaXQsIFdlYnNpdGVQb2xpY2llc0N1c3RvbU5hdmlnYQogICAgIE5TVVJMUmVxdWVzdCAqcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJkYXRhOnRleHQvaHRtbCxoZWxsbyJdXTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKICAgICAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdh
dGlvbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWROYXZpZ2F0aW9uKTsK
ICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKIAogICAgIEVYUEVDVF9TVFJFUSgiVGVz
dCBDdXN0b20gUGxhdGZvcm0iLCBbW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAIm5hdmlnYXRvci5wbGF0Zm9ybSJdIFVURjhTdHJpbmddKTsKQEAgLTE0MTYsMTQgKzE0MTYs
MTQgQEAgc3RhdGljIHZvaWQgcnVuV2Vic2l0ZVBvbGljaWVzRGV2aWNlT3JpZQogCiAgICAgTlNV
UkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAInRlc3Q6Ly9sb2NhbGhvc3QvbWFpbi5odG1sIl1dOwogICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZmluaXNoZWROYXZpZ2F0aW9uKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hl
ZE5hdmlnYXRpb24pOwogICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOwogCiAgICAgYm9v
bCBhc2tlZEZvclBlcm1pc3Npb24gPSBmYWxzZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJEZXZpY2VPcmllbnRhdGlvbkV2ZW50LnJlcXVlc3RQZXJtaXNzaW9uKCkiIGNvbXBs
ZXRpb25IYW5kbGVyOiBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAg
YXNrZWRGb3JQZXJtaXNzaW9uID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmFza2VkRm9yUGVybWlzc2lvbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50
aWwoYXNrZWRGb3JQZXJtaXNzaW9uKTsKIAogICAgIF9fYmxvY2sgYm9vbCBkaWRSZWNlaXZlTWVz
c2FnZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6
QCJyZWNlaXZlZC1kZXZpY2Utb3JpZW50YXRpb24tZXZlbnQiIGFjdGlvbjpeewpAQCAtMTQzOCw3
ICsxNDM4LDcgQEAgc3RhdGljIHZvaWQgcnVuV2Vic2l0ZVBvbGljaWVzRGV2aWNlT3JpZQogICAg
ICAgICBFWFBFQ1RfRkFMU0UoY2FsbGVkU2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzc0RlbGVnYXRlKTsKIAogICAgIGlmIChhY2Nlc3NQb2xpY3kgIT0gX1dLV2Vic2l0
ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUG9saWN5RGVueSkKLSAgICAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRSZWNlaXZlTWVzc2FnZSk7CisgICAgICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGRpZFJlY2VpdmVNZXNzYWdlKTsKICAgICBlbHNlIHsKICAgICAg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC4xKTsKICAgICAgICAgRVhQRUNUX0ZBTFNF
KGRpZFJlY2VpdmVNZXNzYWdlKTsKQEAgLTE2MTQsMTEgKzE2MTQsMTEgQEAgVEVTVChXZWJLaXQs
IFVwZGF0ZVdlYnNpdGVQb2xpY2llc0ludmFsaQogICAgIEVYUEVDVF9UUlVFKHNhd0V4Y2VwdGlv
bik7CiAgICAgCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly8vaW52YWxpZCJdXV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICAKICAgICBkb25lID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZEhU
TUxTdHJpbmc6QCI8aWZyYW1lIHNyYz0nc3ViRnJhbWUnPjwvaWZyYW1lPiIgYmFzZVVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQub3JnL21haW5GcmFtZSJdXTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogfQogCiBURVNUKFdlYktpdCwgV2Vic2l0ZVBvbGljaWVzRGF0YVN0b3JlKQpA
QCAtMTYyNiwxMyArMTYyNiwxMyBAQCBURVNUKFdlYktpdCwgV2Vic2l0ZVBvbGljaWVzRGF0YVN0
b3JlKQogICAgIGF1dG8gY29va2llV2ViVmlldyA9IHdlYnNpdGVEYXRhU3RvcmVUZXN0V2ViVmll
dygpOwogICAgIE5TU3RyaW5nICphbGVydE9sZENvb2tpZSA9IEAiPHNjcmlwdD52YXIgb2xkQ29v
a2llID0gZG9jdW1lbnQuY29va2llOyBkb2N1bWVudC5jb29raWUgPSAna2V5PXZhbHVlJzsgYWxl
cnQoJ29sZCB2YWx1ZTogPCcgKyBvbGRDb29raWUgKyAnPicpOzwvc2NyaXB0PiI7CiAgICAgW2Nv
b2tpZVdlYlZpZXcgbG9hZEhUTUxTdHJpbmc6YWxlcnRPbGRDb29raWUgYmFzZVVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS9jaGVja0Nvb2tpZXMiXV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKICAgICBhdXRvIHBpZDEgPSBbY29va2ll
V2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOwogCiAgICAgW2Nvb2tpZVdlYlZpZXcgbG9h
ZEhUTUxTdHJpbmc6YWxlcnRPbGRDb29raWUgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
Imh0dHA6Ly9leGFtcGxlLmNvbS9jaGVja0Nvb2tpZXMiXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIAog
ICAgIEVYUEVDVF9ORShwaWQxLCBbY29va2llV2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJd
KTsKIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLSW5w
dXREZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL19XS0lucHV0RGVsZWdhdGUubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLSW5wdXREZWxlZ2F0ZS5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBAIFRFU1QoV2ViS2l0LCBGb3JtU3VibWlzc2lv
bikKICAgICAgICAgIjxpbnB1dCB0eXBlPSdwYXNzd29yZCcgbmFtZT0ndGVzdG5hbWUyJyB2YWx1
ZT0ndGVzdHZhbHVlMicvPiIKICAgICAgICAgIjxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J3Rl
c3RuYW1lMycgdmFsdWU9J3Rlc3R2YWx1ZTMnLz4iCiAgICAgIjwvZm9ybT48L2JvZHk+IiBiYXNl
VVJMOm5pbF07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1VzZXJDb250
ZW50RXh0ZW5zaW9uU3RvcmUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCShyZXZpc2lv
biAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1Vz
ZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0JKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcg
QEAgVEVTVF9GKF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVUZXN0LAogCiAgICAgICAgIGRv
bmVDb21waWxpbmcgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZUNvbXBpbGluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZUNvbXBp
bGluZyk7CiB9CiAKIHN0YXRpYyBOU1N0cmluZyAqaW52YWxpZEZpbHRlciA9IEAiWyI7CkBAIC03
NCw3ICs3NCw3IEBAIFRFU1RfRihfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCwKIAog
ICAgICAgICBkb25lQ29tcGlsaW5nID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmVDb21waWxpbmcpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGls
KGRvbmVDb21waWxpbmcpOwogfQogCiBURVNUX0YoX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZVRlc3QsIExvb2t1cCkKQEAgLTg3LDcgKzg3LDcgQEAgVEVTVF9GKF9XS1VzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmVUZXN0LAogCiAgICAgICAgIGRvbmVDb21waWxpbmcgPSB0cnVlOwogICAgIH1d
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUNvbXBpbGluZyk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZUNvbXBpbGluZyk7CiAKICAgICBfX2Jsb2NrIGJvb2wg
ZG9uZUxvb2tpbmdVcCA9IGZhbHNlOwogICAgIFtbX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZSBkZWZhdWx0U3RvcmVdIGxvb2t1cENvbnRlbnRFeHRlbnNpb25Gb3JJZGVudGlmaWVyOkAiVGVz
dEV4dGVuc2lvbiIgY29tcGxldGlvbkhhbmRsZXI6XihfV0tVc2VyQ29udGVudEZpbHRlciAqZmls
dGVyLCBOU0Vycm9yICplcnJvcikgewpAQCAtOTcsNyArOTcsNyBAQCBURVNUX0YoX1dLVXNlckNv
bnRlbnRFeHRlbnNpb25TdG9yZVRlc3QsCiAKICAgICAgICAgZG9uZUxvb2tpbmdVcCA9IHRydWU7
CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lTG9va2luZ1VwKTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lTG9va2luZ1VwKTsKIH0KIAogVEVTVF9G
KF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVUZXN0LCBOb25FeGlzdGluZ0lkZW50aWZpZXJM
b29rdXApCkBAIC0xMTMsNyArMTEzLDcgQEAgVEVTVF9GKF9XS1VzZXJDb250ZW50RXh0ZW5zaW9u
U3RvcmVUZXN0LAogICAgICAgICAKICAgICAgICAgZG9uZUxvb2tpbmdVcCA9IHRydWU7CiAgICAg
fV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lTG9va2luZ1VwKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lTG9va2luZ1VwKTsKIH0KIAogVEVTVF9GKF9XS1Vz
ZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVUZXN0LCBWZXJzaW9uTWlzbWF0Y2gpCkBAIC0xMjcsNyAr
MTI3LDcgQEAgVEVTVF9GKF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVUZXN0LAogICAgICAg
ICAKICAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5V
bnRpbChkb25lQ29tcGlsaW5nKTsKIAogICAgIFtbX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZSBkZWZhdWx0U3RvcmVdIF9pbnZhbGlkYXRlQ29udGVudEV4dGVuc2lvblZlcnNpb25Gb3JJZGVu
dGlmaWVyOkAiVGVzdEV4dGVuc2lvbiJdOwogICAgIApAQCAtMTQzLDcgKzE0Myw3IEBAIFRFU1Rf
RihfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCwKICAgICAgICAgCiAgICAgICAgIGRv
bmVMb29raW5nVXAgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZUxvb2tpbmdVcCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZUxvb2tp
bmdVcCk7CiB9CiAKIFRFU1RfRihfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCwgUmVt
b3ZhbCkKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNUX0YoX1dLVXNlckNvbnRlbnRFeHRlbnNpb25T
dG9yZVRlc3QsCiAKICAgICAgICAgZG9uZUNvbXBpbGluZyA9IHRydWU7CiAgICAgfV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lQ29tcGlsaW5nKTsKIAogICAgIF9fYmxvY2sgYm9vbCBkb25lUmVt
b3ZpbmcgPSBmYWxzZTsKICAgICBbW19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgZGVmYXVs
dFN0b3JlXSByZW1vdmVDb250ZW50RXh0ZW5zaW9uRm9ySWRlbnRpZmllcjpAIlRlc3RFeHRlbnNp
b24iIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqZXJyb3IpIHsKQEAgLTE2NCw3ICsxNjQs
NyBAQCBURVNUX0YoX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVRlc3QsCiAKICAgICAgICAg
ZG9uZVJlbW92aW5nID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmVSZW1vdmluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZVJlbW92
aW5nKTsKIH0KIAogVEVTVF9GKF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVUZXN0LCBOb25F
eGlzdGluZ0lkZW50aWZpZXJSZW1vdmUpCkBAIC0xNzgsNSArMTc4LDUgQEAgVEVTVF9GKF9XS1Vz
ZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVUZXN0LAogCiAgICAgICAgIGRvbmVSZW1vdmluZyA9IHRy
dWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lUmVtb3Zpbmcp
OworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVSZW1vdmluZyk7CiB9CkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdExlZ2FjeS9pb3MvQXVkaW9TZXNzaW9uQ2F0
ZWdvcnlJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRMZWdhY3kvaW9zL0F1ZGlvU2Vzc2lvbkNhdGVnb3J5SU9TLm1tCShyZXZpc2lvbiAyNDU1MTYp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdExlZ2FjeS9pb3MvQXVkaW9TZXNz
aW9uQ2F0ZWdvcnlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTk3LDcgKzk3LDcgQEAgVEVTVChX
ZWJLaXRMZWdhY3ksIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5SQogCiAgICAgW3VpV2ViVmlldyBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJ2aWRlby13aXRoLWF1ZGlvIiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwogCi0gICAgVXRp
bDo6cnVuKCZkaWRCZWdpblBsYXlpbmcpOworICAgIHJ1blVudGlsKGRpZEJlZ2luUGxheWluZyk7
CiAKICAgICB3YWl0VW50aWxBdWRpb1Nlc3Npb25DYXRlZ29yeUlzRXF1YWxUbyhnZXRBVkF1ZGlv
U2Vzc2lvbkNhdGVnb3J5UGxheWJhY2soKSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKGdldEFWQXVk
aW9TZXNzaW9uQ2F0ZWdvcnlQbGF5YmFjaygpLCBbW2dldEFWQXVkaW9TZXNzaW9uQ2xhc3MoKSBz
aGFyZWRJbnN0YW5jZV0gY2F0ZWdvcnldKTsKQEAgLTExMCw3ICsxMTAsNyBAQCBURVNUKFdlYktp
dExlZ2FjeSwgQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJCiAKICAgICBbdWlXZWJWaWV3IGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAInZpZGVvLXdpdGhvdXQtYXVkaW8iIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CiAKLSAgICBVdGls
OjpydW4oJmRpZEJlZ2luUGxheWluZyk7CisgICAgcnVuVW50aWwoZGlkQmVnaW5QbGF5aW5nKTsK
IAogICAgIHdhaXRVbnRpbEF1ZGlvU2Vzc2lvbkNhdGVnb3J5SXNFcXVhbFRvKGdldEFWQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnlBbWJpZW50KCkpOwogICAgIEVYUEVDVF9XS19TVFJFUShnZXRBVkF1ZGlv
U2Vzc2lvbkNhdGVnb3J5QW1iaWVudCgpLCBbW2dldEFWQXVkaW9TZXNzaW9uQ2xhc3MoKSBzaGFy
ZWRJbnN0YW5jZV0gY2F0ZWdvcnldKTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBURVNUKFdlYktpdExl
Z2FjeSwgQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJCiAKICAgICBbdWlXZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAInZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8iIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CiAKLSAgICBVdGls
OjpydW4oJmRpZEJlZ2luUGxheWluZyk7CisgICAgcnVuVW50aWwoZGlkQmVnaW5QbGF5aW5nKTsK
IAogICAgIHdhaXRVbnRpbEF1ZGlvU2Vzc2lvbkNhdGVnb3J5SXNFcXVhbFRvKGdldEFWQXVkaW9T
ZXNzaW9uQ2F0ZWdvcnlBbWJpZW50KCkpOwogICAgIEVYUEVDVF9XS19TVFJFUShnZXRBVkF1ZGlv
U2Vzc2lvbkNhdGVnb3J5QW1iaWVudCgpLCBbW2dldEFWQXVkaW9TZXNzaW9uQ2xhc3MoKSBzaGFy
ZWRJbnN0YW5jZV0gY2F0ZWdvcnldKTsKQEAgLTEzMCw3ICsxMzAsNyBAQCBURVNUKFdlYktpdExl
Z2FjeSwgQXVkaW9TZXNzaW9uQ2F0ZWdvcnlJCiAKICAgICBbdWlXZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAInZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlvIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1d
OwogCi0gICAgVXRpbDo6cnVuKCZkaWRCZWdpblBsYXlpbmcpOworICAgIHJ1blVudGlsKGRpZEJl
Z2luUGxheWluZyk7CiAKICAgICB3YWl0VW50aWxBdWRpb1Nlc3Npb25DYXRlZ29yeUlzRXF1YWxU
byhnZXRBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5QW1iaWVudCgpKTsKICAgICBFWFBFQ1RfV0tfU1RS
RVEoZ2V0QVZBdWRpb1Nlc3Npb25DYXRlZ29yeUFtYmllbnQoKSwgW1tnZXRBVkF1ZGlvU2Vzc2lv
bkNsYXNzKCkgc2hhcmVkSW5zdGFuY2VdIGNhdGVnb3J5XSk7CkBAIC0xNDAsNyArMTQwLDcgQEAg
VEVTVChXZWJLaXRMZWdhY3ksIEF1ZGlvU2Vzc2lvbkNhdGVnb3J5SQogCiAgICAgW3VpV2ViVmll
dyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ2aWRlby13aXRoLXBhdXNlZC1hdWRpby1hbmQtcGxh
eWluZy1tdXRlZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl1dXTsKIAotICAgIFV0aWw6OnJ1bigmZGlkQmVnaW5QbGF5aW5nKTsK
KyAgICBydW5VbnRpbChkaWRCZWdpblBsYXlpbmcpOwogCiAgICAgd2FpdFVudGlsQXVkaW9TZXNz
aW9uQ2F0ZWdvcnlJc0VxdWFsVG8oZ2V0QVZBdWRpb1Nlc3Npb25DYXRlZ29yeVBsYXliYWNrKCkp
OwogICAgIEVYUEVDVF9XS19TVFJFUShnZXRBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5UGxheWJhY2so
KSwgW1tnZXRBVkF1ZGlvU2Vzc2lvbkNsYXNzKCkgc2hhcmVkSW5zdGFuY2VdIGNhdGVnb3J5XSk7
CkBAIC0xNTMsNyArMTUzLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIEF1ZGlvU2Vzc2lvbkNhdGVn
b3J5SQogCiAgICAgW3VpV2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJhdWRpby1vbmx5
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXV1dOwogCi0gICAgVXRpbDo6cnVuKCZkaWRCZWdpblBsYXlpbmcpOworICAgIHJ1blVu
dGlsKGRpZEJlZ2luUGxheWluZyk7CiAKICAgICB3YWl0VW50aWxBdWRpb1Nlc3Npb25DYXRlZ29y
eUlzRXF1YWxUbyhnZXRBVkF1ZGlvU2Vzc2lvbkNhdGVnb3J5UGxheWJhY2soKSk7CiAgICAgRVhQ
RUNUX1dLX1NUUkVRKGdldEFWQXVkaW9TZXNzaW9uQ2F0ZWdvcnlQbGF5YmFjaygpLCBbW2dldEFW
QXVkaW9TZXNzaW9uQ2xhc3MoKSBzaGFyZWRJbnN0YW5jZV0gY2F0ZWdvcnldKTsKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0TGVnYWN5L2lvcy9TY3JvbGxpbmdEb2VzTm90
UGF1c2VNZWRpYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdExlZ2FjeS9pb3MvU2Nyb2xsaW5nRG9lc05vdFBhdXNlTWVkaWEubW0JKHJldmlzaW9uIDI0
NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0TGVnYWN5L2lvcy9TY3Jv
bGxpbmdEb2VzTm90UGF1c2VNZWRpYS5tbQkod29ya2luZyBjb3B5KQpAQCAtODgsOCArODgsOCBA
QCBURVNUKFdlYktpdExlZ2FjeSwgU2Nyb2xsaW5nRG9lc05vdFBhdXNlCiAKICAgICBbdWlXZWJW
aWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TQnVuZGxlLm1h
aW5CdW5kbGUgVVJMRm9yUmVzb3VyY2U6QCJ2aWRlby13aXRoLWF1ZGlvIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwogCi0g
ICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKLSAgICBVdGlsOjpydW4oJmdvdE1haW5GcmFt
ZSk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZ290TWFpbkZy
YW1lKTsKIAogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KFsmXSAoKSBtdXRhYmxlIHsKICAg
ICAgICAgRE9NSFRNTE1lZGlhRWxlbWVudCogdmlkZW8gPSAoRE9NSFRNTE1lZGlhRWxlbWVudCop
W21haW5GcmFtZS5ET01Eb2N1bWVudCBxdWVyeVNlbGVjdG9yOkAidmlkZW8iXTsKQEAgLTEwMiw3
ICsxMDIsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgU2Nyb2xsaW5nRG9lc05vdFBhdXNlCiAgICAg
ICAgIFt2aWRlbyBwbGF5XTsKICAgICB9KTsKIAotICAgIFV0aWw6OnJ1bigmZGlkUmVjZWl2ZVBs
YXlpbmcpOworICAgIHJ1blVudGlsKGRpZFJlY2VpdmVQbGF5aW5nKTsKIAogICAgIGNhbGxPbk1h
aW5UaHJlYWRBbmRXYWl0KFsmXSAoKSBtdXRhYmxlIHsKICAgICAgICAgRE9NSFRNTE1lZGlhRWxl
bWVudCogdmlkZW8gPSAoRE9NSFRNTE1lZGlhRWxlbWVudCopW21haW5GcmFtZS5ET01Eb2N1bWVu
dCBxdWVyeVNlbGVjdG9yOkAidmlkZW8iXTsKQEAgLTExNSw3ICsxMTUsNyBAQCBURVNUKFdlYktp
dExlZ2FjeSwgU2Nyb2xsaW5nRG9lc05vdFBhdXNlCiAgICAgICAgIFt2aWRlbyBwYXVzZV07CiAg
ICAgfSk7CiAKLSAgICBVdGlsOjpydW4oJmRpZFJlY2VpdmVQYXVzZSk7CisgICAgcnVuVW50aWwo
ZGlkUmVjZWl2ZVBhdXNlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvaW9zL1NuYXBzaG90Vmlh
UmVuZGVySW5Db250ZXh0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0TGVnYWN5L2lvcy9TbmFwc2hvdFZpYVJlbmRlckluQ29udGV4dC5tbQkocmV2aXNp
b24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvaW9z
L1NuYXBzaG90VmlhUmVuZGVySW5Db250ZXh0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4
MCw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBSZW5kZXJJbkNvbnRleHRTbmFwc2gKICAgICBOU0xv
ZyhAIkxvYWRpbmcgJUAiLCB1cmwpOwogICAgIFt1aVdlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp1cmxdXTsKICAgICAKLSAgICBVdGlsOjpydW4oJmxvYWRD
b21wbGV0ZSk7CisgICAgcnVuVW50aWwobG9hZENvbXBsZXRlKTsKICAgICAKICAgICBFWFBFQ1Rf
VFJVRShsb2FkQ29tcGxldGUpOwogICAgIEVYUEVDVF9GQUxTRShsb2FkRmFpbGVkKTsKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0TGVnYWN5L21hYy9BY2Nlc3NpbmdQYXN0
ZWRJbWFnZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dExlZ2FjeS9tYWMvQWNjZXNzaW5nUGFzdGVkSW1hZ2UubW0JKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0TGVnYWN5L21hYy9BY2Nlc3NpbmdQYXN0
ZWRJbWFnZS5tbQkod29ya2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCBURVNUKFdlYktpdExl
Z2FjeSwgQWNjZXNzaW5nSW1hZ2VJblBhc3RlCiAKICAgICBhdXRvICptYWluRnJhbWUgPSB3ZWJW
aWV3LmdldCgpLm1haW5GcmFtZTsKICAgICBbW3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJwYXN0ZS1ydGZkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwotICAgIFV0aWw6OnJ1bigm
ZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgW3dlYlZp
ZXcuZ2V0KCkgc2V0RWRpdGFibGU6WUVTXTsKIAogICAgIGF1dG8gKnBuZ0RhdGEgPSBbTlNEYXRh
IGRhdGFXaXRoQ29udGVudHNPZkZpbGU6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBwYXRoRm9yUmVz
b3VyY2U6QCJzdW5zZXQtaW4tY3VwZXJ0aW5vLTIwMHB4IiBvZlR5cGU6QCJwbmciIGluRGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CkBAIC05OSw3ICs5OSw3IEBAIFRFU1Qo
V2ViS2l0TGVnYWN5LCBBY2Nlc3NpbmdJbWFnZUluUGFzdGUKIAogICAgIHdyaXRlUlRGRFRvUGFz
dGVib2FyZChSVEZERGF0YSk7CiAgICAgW3dlYlZpZXcgcGFzdGU6bmlsXTsKLSAgICBVdGlsOjpy
dW4oJmRpZEFsZXJ0KTsKKyAgICBydW5VbnRpbChkaWRBbGVydCk7CiAKICAgICBET01Eb2N1bWVu
dCAqZG9jdW1lbnQgPSBbbWFpbkZyYW1lIERPTURvY3VtZW50XTsKICAgICBET01FbGVtZW50ICpk
b2N1bWVudEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CkBAIC0xMjYsMTkgKzEy
NiwxOSBAQCBURVNUKFdlYktpdExlZ2FjeSwgQWNjZXNzaW5nSW1hZ2VJblBhc3RlCiAgICAgW2Rl
c3RpbmF0aW9uV2ViVmlldy5nZXQoKSBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAog
ICAgIFtbc291cmNlV2ViVmlldy5nZXQoKSBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAImltYWdlLWFuZC1jb250ZW50ZWRpdGFibGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07Ci0gICAgVXRpbDo6cnVuKCZk
aWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICBbc291cmNl
V2ViVmlldy5nZXQoKSBzZXRFZGl0YWJsZTpZRVNdOwogCiAgICAgZGlkRmluaXNoTG9hZCA9IGZh
bHNlOwogICAgIFtbZGVzdGluYXRpb25XZWJWaWV3LmdldCgpIG1haW5GcmFtZV0gbG9hZFJlcXVl
c3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAicGFzdGUtcnRmZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKLSAgICBVdGlsOjpydW4oJmRpZEZp
bmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIFtkZXN0aW5hdGlv
bldlYlZpZXcuZ2V0KCkgc2V0RWRpdGFibGU6WUVTXTsKIAogICAgIFtzb3VyY2VXZWJWaWV3IHN0
cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHRGcm9tU3RyaW5nOkAiZG9jdW1lbnQuYm9keS5mb2N1
cygpOyBkb2N1bWVudC5leGVjQ29tbWFuZCgnc2VsZWN0QWxsJyk7Il07CiAgICAgW3NvdXJjZVdl
YlZpZXcgY29weTpuaWxdOwogCiAgICAgW2Rlc3RpbmF0aW9uV2ViVmlldyBwYXN0ZTpuaWxdOwot
ICAgIFV0aWw6OnJ1bigmZGlkQWxlcnQpOworICAgIHJ1blVudGlsKGRpZEFsZXJ0KTsKIAogICAg
IGF1dG8gKm1haW5GcmFtZSA9IGRlc3RpbmF0aW9uV2ViVmlldy5nZXQoKS5tYWluRnJhbWU7CiAg
ICAgRE9NRG9jdW1lbnQgKmRvY3VtZW50ID0gW21haW5GcmFtZSBET01Eb2N1bWVudF07CkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdExlZ2FjeS9tYWMvQ2xvc2luZ1dlYlZp
ZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdh
Y3kvbWFjL0Nsb3NpbmdXZWJWaWV3Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdExlZ2FjeS9tYWMvQ2xvc2luZ1dlYlZpZXcubW0JKHdvcmtp
bmcgY29weSkKQEAgLTc2LDcgKzc2LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIENsb3NpbmdXZWJW
aWV3VGhlblNlbgogICAgIAogICAgIFtbd2ViVmlldyBtYWluRnJhbWVdIGxvYWRIVE1MU3RyaW5n
OkAiPGh0bWw+PGJvZHkgY29udGVudGVkaXRhYmxlPjxzY3JpcHQ+ZnVuY3Rpb24gYWRkS2V5UHJl
c3NIYW5kbGVyKCkgeyBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywg
ZnVuY3Rpb24oZXZlbnQpIHsgZXZlbnQucHJldmVudERlZmF1bHQoKTsgfSwgdHJ1ZSkgfTsgZG9j
dW1lbnQuYm9keS5mb2N1cygpOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+IiBiYXNlVVJMOm5pbF07
CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlz
aExvYWQpOwogCiAgICAgLy8gRmlyc3QsIGFkZCBhIG5hdGl2ZSBldmVudCBsaXN0ZW5lciB0aGF0
IGNsb3NlcyB0aGUgV2ViVmlldy4KICAgICBbW1t3ZWJWaWV3IG1haW5GcmFtZURvY3VtZW50XSBi
b2R5XSBhZGRFdmVudExpc3RlbmVyOkAia2V5cHJlc3MiIGxpc3RlbmVyOltbS2V5Ym9hcmRFdmVu
dExpc3RlbmVyIGFsbG9jXSBpbml0XSB1c2VDYXB0dXJlOk5PXTsKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0TGVnYWN5L21hYy9EZWFsbG9jV2ViVmlld0luRXZlbnRMaXN0
ZW5lci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdExl
Z2FjeS9tYWMvRGVhbGxvY1dlYlZpZXdJbkV2ZW50TGlzdGVuZXIubW0JKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0TGVnYWN5L21hYy9EZWFsbG9j
V2ViVmlld0luRXZlbnRMaXN0ZW5lci5tbQkod29ya2luZyBjb3B5KQpAQCAtNzcsNyArNzcsNyBA
QCBURVNUKFdlYktpdExlZ2FjeSwgRGVhbGxvY1dlYlZpZXdJbkV2ZW50CiAgICAgICAgIHdlYlZp
ZXcuZ2V0KCkuZnJhbWVMb2FkRGVsZWdhdGUgPSBsb2FkRGVsZWdhdGUuZ2V0KCk7CiAKICAgICAg
ICAgW1t3ZWJWaWV3IG1haW5GcmFtZV0gbG9hZEhUTUxTdHJpbmc6QCI8aHRtbD48Ym9keT48L2Jv
ZHk+PC9odG1sPiIgYmFzZVVSTDpuaWxdOwotICAgICAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExv
YWQpOworICAgICAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKIAogICAgICAgICBhdXRvIGxp
c3RlbmVyID0gYWRvcHROUyhbW0RlYWxsb2NXZWJWaWV3SW5FdmVudExpc3RlbmVyIGFsbG9jXSBp
bml0XSk7CiAgICAgICAgIFtbW3dlYlZpZXcgbWFpbkZyYW1lRG9jdW1lbnRdIGJvZHldIGFkZEV2
ZW50TGlzdGVuZXI6QCJrZXlwcmVzcyIgbGlzdGVuZXI6bGlzdGVuZXIuZ2V0KCkgdXNlQ2FwdHVy
ZTpOT107CkBAIC04Niw3ICs4Niw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBEZWFsbG9jV2ViVmll
d0luRXZlbnQKICAgICAgICAgW3dlYlZpZXcgY2xvc2VdOwogICAgICAgICBbcG9vbCBkcmFpbl07
CiAgICAgfQotICAgIFV0aWw6OnJ1bigmZGlkQ2xvc2UpOworICAgIHJ1blVudGlsKGRpZENsb3Nl
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvbWFjL0Rvd25sb2FkVGhyZWFkLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0TGVnYWN5L21hYy9Eb3dubG9h
ZFRocmVhZC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRMZWdhY3kvbWFjL0Rvd25sb2FkVGhyZWFkLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04
NCw3ICs4NCw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBEb3dubG9hZFRocmVhZCkKICAgICBbd2Vi
VmlldyBzZXREb3dubG9hZERlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAogICAgIFtbd2ViVmll
dyBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKLSAg
ICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGlsKGRvbmUpOwogCiAgICAgRVhQRUNUX1RS
VUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRlc3Rp
bmF0aW9uLmdldCgpXSk7CiAgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1v
dmVJdGVtQXRQYXRoOmRlc3RpbmF0aW9uLmdldCgpIGVycm9yOm5pbF07CkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdE9iakMvQ3VzdG9tUHJvdG9jb2xzSW52YWxpZFNjaGVt
ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdE9iakMv
Q3VzdG9tUHJvdG9jb2xzSW52YWxpZFNjaGVtZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRPYmpDL0N1c3RvbVByb3RvY29sc0ludmFsaWRT
Y2hlbWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAgVEVTVChXZWJLaXQyQ3Vz
dG9tUHJvdG9jb2xzVGVzdCwgTG9hZEludgogICAgIHdlYlZpZXcucGxhdGZvcm1WaWV3KCkuYnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlci5sb2FkRGVsZWdhdGUgPSBbW0xvYWRJbnZhbGlkU2NoZW1l
RGVsZWdhdGUgYWxsb2NdIGluaXRdOwogICAgIFt3ZWJWaWV3LnBsYXRmb3JtVmlldygpLmJyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXIgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0J3RwOi8vd3d3LndlYmtpdC5vcmciXV1dOwog
ICAgIAotICAgIFV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICBydW5VbnRpbCh0ZXN0Rmlu
aXNoZWQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdE9iakMvQ3VzdG9tUHJvdG9jb2xzVGVzdC5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdE9iakMvQ3VzdG9tUHJv
dG9jb2xzVGVzdC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRPYmpDL0N1c3RvbVByb3RvY29sc1Rlc3QubW0JKHdvcmtpbmcgY29weSkKQEAg
LTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KCkKICAgICBbd2tWaWV3IGJyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXJdLmxvYWREZWxlZ2F0ZSA9IGxvYWREZWxlZ2F0ZS5nZXQoKTsK
ICAgICBbW3drVmlldyBicm93c2luZ0NvbnRleHRDb250cm9sbGVyXSBsb2FkUmVxdWVzdDpbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOltOU1N0cmluZyBz
dHJpbmdXaXRoRm9ybWF0OkAiJUA6Ly9yZWRpcmVjdD90ZXN0IiwgW1Rlc3RQcm90b2NvbCBzY2hl
bWVdXV1dXTsKIAotICAgIFV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICBydW5VbnRpbCh0
ZXN0RmluaXNoZWQpOwogfQogCiBURVNUKFdlYktpdDJDdXN0b21Qcm90b2NvbHNUZXN0LCBNYWlu
UmVzb3VyY2UpCkBAIC0xNzUsNyArMTc1LDcgQEAgVEVTVChXZWJLaXQyQ3VzdG9tUHJvdG9jb2xz
VGVzdCwgUHJvY2VzcwogICAgIAogICAgICAgICBbW3drVmlldyBicm93c2luZ0NvbnRleHRDb250
cm9sbGVyXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAiY3VzdG9tOi8vL3Rlc3QiXV1dOwogCi0gICAgICAgIFV0aWw6OnJ1bigm
aXNEb25lKTsKKyAgICAgICAgcnVuVW50aWwoaXNEb25lKTsKICAgICAgICAgaXNEb25lID0gZmFs
c2U7CiAKICAgICAgICAgLy8gSW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBibG9jayBnb2luZyBv
dXQgb2Ygc2NvcGUsIG1hbnVhbGx5IHJlbGVhc2UgdGhlc2Ugb2JqZWN0cyBpbiB0aGlzIG9yZGVy
CkBAIC0xODksNyArMTg5LDcgQEAgVEVTVChXZWJLaXQyQ3VzdG9tUHJvdG9jb2xzVGVzdCwgUHJv
Y2VzcwogICAgIAogICAgIC8vIGlzRG9uZSBtaWdodCBhbHJlYWR5IGJlIHRydWUgaWYgdGhlIHBy
b3RvY29sIGhhcyBhbHJlYWR5IGJlZW4gdG9sZCB0byBzdG9wTG9hZGluZy4KICAgICBpZiAoIWlz
RG9uZSkKLSAgICAgICAgVXRpbDo6cnVuKCZpc0RvbmUpOworICAgICAgICBydW5VbnRpbChpc0Rv
bmUpOwogICAgIAogICAgIC8vIFRvIGNyYXNoIHJlbGlhYmx5IHdlIG5lZWQgdG8gc3BpbiB0aGUg
cnVubG9vcCBhIGZldyB0aW1lcyBhZnRlciB0aGUgY3VzdG9tIHByb3RvY29sIGhhcyBjb21wbGV0
ZWQuCiAgICAgVXRpbDo6c3BpblJ1bkxvb3AoMTApOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRPYmpDL1ByZXZlbnRJbWFnZUxvYWRXaXRoQXV0b1Jlc2l6aW5nLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0T2JqQy9QcmV2ZW50
SW1hZ2VMb2FkV2l0aEF1dG9SZXNpemluZy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRPYmpDL1ByZXZlbnRJbWFnZUxvYWRXaXRoQXV0b1Jl
c2l6aW5nLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBAIFRFU1QoV2ViS2l0LCBQ
cmV2ZW50SW1hZ2VMb2FkV2l0aEF1dG9SZXMKICAgICB9XTsKICAgICBbd2ViVmlldy5wbGF0Zm9y
bVZpZXcoKS5icm93c2luZ0NvbnRleHRDb250cm9sbGVyIGxvYWRIVE1MU3RyaW5nOkAiPGh0bWw+
PGJvZHkgc3R5bGU9J2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxp
VkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQW9BQUFBS0NBWUFBQUNOTXMrOUFBQUFHWFJGV0hSVGIy
WjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBRlpKUkVGVWVGNTl6NEVKQURF
SVExRjM2azd1NUU3WktYZVVRUEFDSjN3SzdVTm9rVnhWazlrSG5RSDdiWTloYkR5RGhOWGdqcFJM
cUZsbzRNMkdnZnlKSGhqcThWNGFnZnJnUFFYM0p0SlFHYm9mbUNIZ0EvbkFLa3MrSkFqRkFBQUFB
RWxGVGtTdVFtQ0MpOyc+PC9ib2R5PjwvaHRtbD4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJhYm91dDpibGFuayJdXTsKIAotICAgIFV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAg
ICBydW5VbnRpbCh0ZXN0RmluaXNoZWQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdE9iakMvVXNlckNvbnRl
bnRUZXN0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
T2JqQy9Vc2VyQ29udGVudFRlc3QubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0T2JqQy9Vc2VyQ29udGVudFRlc3QubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTEzNSw3ICsxMzUsNyBAQCBURVNUX0YoV2ViS2l0MlVzZXJDb250ZW50VGVzdCwgQWRk
VXNlclN0CiAgICAgCiAgICAgW3drVmlldy5icm93c2luZ0NvbnRleHRDb250cm9sbGVyIGxvYWRI
VE1MU3RyaW5nOmh0bWxTdHJpbmcgYmFzZVVSTDpuaWxdOwogICAgIAotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bCh0ZXN0RmluaXNoZWQpOwogfQogCiBURVNUX0YoV2ViS2l0MlVzZXJDb250ZW50VGVzdCwgQWRk
VXNlclN0eWxlU2hlZXRBZnRlckNyZWF0aW5nVmlldykKQEAgLTE1Niw3ICsxNTYsNyBAQCBURVNU
X0YoV2ViS2l0MlVzZXJDb250ZW50VGVzdCwgQWRkVXNlclN0CiAgICAgCiAgICAgW3drVmlldy5i
cm93c2luZ0NvbnRleHRDb250cm9sbGVyIGxvYWRIVE1MU3RyaW5nOmh0bWxTdHJpbmcgYmFzZVVS
TDpuaWxdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZ0ZXN0RmluaXNoZWQpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHRlc3RGaW5pc2hlZCk7CiB9CiAKIFRFU1RfRihX
ZWJLaXQyVXNlckNvbnRlbnRUZXN0LCBSZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMpCkBAIC0xNzgs
NyArMTc4LDcgQEAgVEVTVF9GKFdlYktpdDJVc2VyQ29udGVudFRlc3QsIFJlbW92ZUFsbAogICAg
IAogICAgIFt3a1ZpZXcuYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBsb2FkSFRNTFN0cmluZzpo
dG1sU3RyaW5nIGJhc2VVUkw6bmlsXTsKICAgICAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnRlc3RGaW5pc2hlZCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwodGVzdEZpbmlz
aGVkKTsKIH0KIAogVEVTVF9GKFdlYktpdDJVc2VyQ29udGVudFRlc3QsIEFkZFVzZXJTY3JpcHRC
ZWZvcmVDcmVhdGluZ1ZpZXcpCkBAIC0xOTgsNyArMTk4LDcgQEAgVEVTVF9GKFdlYktpdDJVc2Vy
Q29udGVudFRlc3QsIEFkZFVzZXJTYwogICAgIAogICAgIFt3a1ZpZXcuYnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlciBsb2FkSFRNTFN0cmluZzpAIiIgYmFzZVVSTDpuaWxdOwogICAgIAotICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpydW5VbnRpbCh0ZXN0RmluaXNoZWQpOwogfQogCiBURVNUX0YoV2ViS2l0MlVzZXJDb250ZW50
VGVzdCwgQWRkVXNlclNjcmlwdEFmdGVyQ3JlYXRpbmdWaWV3KQpAQCAtMjE5LDcgKzIxOSw3IEBA
IFRFU1RfRihXZWJLaXQyVXNlckNvbnRlbnRUZXN0LCBBZGRVc2VyU2MKICAgICAKICAgICBbd2tW
aWV3LmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgbG9hZEhUTUxTdHJpbmc6QCIiIGJhc2VVUkw6
bmlsXTsKICAgICAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnRlc3RGaW5pc2hlZCk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwodGVzdEZpbmlzaGVkKTsKIH0KIAogVEVTVF9G
KFdlYktpdDJVc2VyQ29udGVudFRlc3QsIFJlbW92ZUFsbFVzZXJTY3JpcHRzKQpAQCAtMjQxLDcg
KzI0MSw3IEBAIFRFU1RfRihXZWJLaXQyVXNlckNvbnRlbnRUZXN0LCBSZW1vdmVBbGwKICAgICAK
ICAgICBbd2tWaWV3LmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgbG9hZEhUTUxTdHJpbmc6aHRt
bFN0cmluZyBiYXNlVVJMOm5pbF07CiAgICAgCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZ0ZXN0RmluaXNoZWQpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHRlc3RGaW5pc2hl
ZCk7CiB9CiAKICNlbmRpZiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
T2JqQy9XS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRPYmpDL1dLQnJvd3NpbmdDb250ZXh0TG9h
ZERlbGVnYXRlVGVzdC5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRPYmpDL1dLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlVGVzdC5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTE1LDcgKzExNSw3IEBAIFRFU1RfRihXS0Jyb3dzaW5nQ29udGV4
dExvYWREZWxlZ2F0ZVRlc3QKICAgICBbdmlldy5icm93c2luZ0NvbnRleHRDb250cm9sbGVyIGxv
YWRGaWxlVVJMOm5zVVJMIHJlc3RyaWN0VG9GaWxlc1dpdGhpbjpuaWxdOwogCiAgICAgLy8gV2Fp
dCBmb3IgdGhlIGxvYWQgdG8gZmluaXNoLgotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
c2ltcGxlTG9hZERvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKHNpbXBsZUxvYWRE
b25lKTsKIAogICAgIC8vIFRlYXIgZG93biB0aGUgZGVsZWdhdGUuCiAgICAgdmlldy5icm93c2lu
Z0NvbnRleHRDb250cm9sbGVyLmxvYWREZWxlZ2F0ZSA9IG5pbDsKQEAgLTEzNCw3ICsxMzQsNyBA
QCBURVNUX0YoV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVUZXN0CiAgICAgW3ZpZXcuYnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlciBsb2FkSFRNTFN0cmluZzpAIjxodG1sPjxib2R5PlNpbXBs
ZSBIVE1MIFN0cmluZzwvYm9keT48L2h0bWw+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAiYWJvdXQ6YmxhbmsiXV07CiAKICAgICAvLyBXYWl0IGZvciB0aGUgbG9hZCB0byBmaW5pc2gu
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZzaW1wbGVMb2FkRG9uZSk7CisgICAgVGVz
dFdlYktpdEFQSTo6cnVuVW50aWwoc2ltcGxlTG9hZERvbmUpOwogCiAgICAgLy8gVGVhciBkb3du
IHRoZSBkZWxlZ2F0ZS4KICAgICB2aWV3LmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubG9hZERl
bGVnYXRlID0gbmlsOwpAQCAtMTUzLDcgKzE1Myw3IEBAIFRFU1RfRihXS0Jyb3dzaW5nQ29udGV4
dExvYWREZWxlZ2F0ZVRlc3QKICAgICBbdmlldy5icm93c2luZ0NvbnRleHRDb250cm9sbGVyIGxv
YWRIVE1MU3RyaW5nOkAiPGh0bWw+PGJvZHk+U2ltcGxlIEhUTUwgU3RyaW5nPC9ib2R5PjwvaHRt
bD4iIGJhc2VVUkw6bmlsXTsKIAogICAgIC8vIFdhaXQgZm9yIHRoZSBsb2FkIHRvIGZpbmlzaC4K
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnNpbXBsZUxvYWREb25lKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbChzaW1wbGVMb2FkRG9uZSk7CiAKICAgICAvLyBUZWFyIGRvd24g
dGhlIGRlbGVnYXRlLgogICAgIHZpZXcuYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5sb2FkRGVs
ZWdhdGUgPSBuaWw7CkBAIC0xNzIsNyArMTcyLDcgQEAgVEVTVF9GKFdLQnJvd3NpbmdDb250ZXh0
TG9hZERlbGVnYXRlVGVzdAogICAgIFt2aWV3LmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgbG9h
ZEhUTUxTdHJpbmc6bmlsIGJhc2VVUkw6bmlsXTsKIAogICAgIC8vIFdhaXQgZm9yIHRoZSBsb2Fk
IHRvIGZpbmlzaC4KLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnNpbXBsZUxvYWREb25l
KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChzaW1wbGVMb2FkRG9uZSk7CiAKICAgICAv
LyBUZWFyIGRvd24gdGhlIGRlbGVnYXRlLgogICAgIHZpZXcuYnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlci5sb2FkRGVsZWdhdGUgPSBuaWw7CkBAIC0yMjMsNyArMjIzLDcgQEAgVEVTVF9GKFdLQnJv
d3NpbmdDb250ZXh0TG9hZERlbGVnYXRlVGVzdAogICAgIFt2aWV3LmJyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIgbG9hZEZpbGVVUkw6bnNVUkwgcmVzdHJpY3RUb0ZpbGVzV2l0aGluOm5pbF07CiAK
ICAgICAvLyBXYWl0IGZvciB0aGUgbG9hZCB0byBmYWlsLgotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmc2ltcGxlTG9hZEZhaWxEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRp
bChzaW1wbGVMb2FkRmFpbERvbmUpOwogCiAgICAgLy8gVGVhciBkb3duIHRoZSBkZWxlZ2F0ZS4K
ICAgICB2aWV3LmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubG9hZERlbGVnYXRlID0gbmlsOwpJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvQWNjZXNzaWJpbGl0eVRlc3RzSU9T
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0FjY2Vzc2li
aWxpdHlUZXN0c0lPUy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9pb3MvQWNjZXNzaWJpbGl0eVRlc3RzSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00
MCw3ICs0MCw3IEBAIC0gKE5TQXJyYXk8TlNWYWx1ZSAqPiAqKXJlY3RzQXRTZWxlY3Rpb24KICAg
ICAgICAgc2VsZWN0aW9uUmVjdHMgPSByZWN0czsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAg
fV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChkb25lKTsKICAgICByZXR1cm4gc2VsZWN0aW9uUmVjdHMuYXV0b3JlbGVh
c2UoKTsKIH0KIEBlbmQKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0FjdGlv
blNoZWV0VGVzdHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9p
b3MvQWN0aW9uU2hlZXRUZXN0cy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9pb3MvQWN0aW9uU2hlZXRUZXN0cy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MTIyLDcgKzEyMiw3IEBAIFRFU1QoQWN0aW9uU2hlZXRUZXN0cywgRElTQUJMRURfRGlzbWlzc2kK
ICAgICB9XTsKIAogICAgIFt3ZWJWaWV3IF9zaW11bGF0ZUxvbmdQcmVzc0FjdGlvbkF0TG9jYXRp
b246Q0dQb2ludE1ha2UoMTAwLCAxMDApXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogCiAgICAgRVhQRUNU
X0ZBTFNFKGRpZERpc21pc3NXZWJWaWV3Q29udHJvbGxlcik7CiAgICAgRVhQRUNUX05VTEwoW3dl
YlZpZXdDb250cm9sbGVyIHByZXNlbnRlZFZpZXdDb250cm9sbGVyXSk7CkBAIC0xNDcsNyArMTQ3
LDcgQEAgVEVTVChBY3Rpb25TaGVldFRlc3RzLCBJbWFnZU1hcERvZXNOb3REZQogICAgICAgICBy
ZXR1cm4gYWN0aW9uczsKICAgICB9XTsKICAgICBbd2ViVmlldyBfc2ltdWxhdGVMb25nUHJlc3NB
Y3Rpb25BdExvY2F0aW9uOkNHUG9pbnRNYWtlKDIwMCwgMjAwKV07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
IAogICAgIEVYUEVDVF9XS19TVFJFUSgiSGVsbG8gd29ybGQiLCBbd2ViVmlldyBzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSJdKTsKIH0KQEAg
LTE3Nyw3ICsxNzcsNyBAQCBURVNUKEFjdGlvblNoZWV0VGVzdHMsIERhdGFEZXRlY3RvcnNMaW5r
CiAgICAgICAgICAgICByZXR1cm4gQFsgXTsKICAgICAgICAgfV07CiAgICAgICAgIFt3ZWJWaWV3
IF9zaW11bGF0ZUxvbmdQcmVzc0FjdGlvbkF0TG9jYXRpb246Q0dQb2ludE1ha2UoNSwgNSldOwot
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChkb25lKTsKIAogICAgICAgICByZXR1cm4gc3VjY2VlZGVkOwogICAg
IH07CkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIHZvaWQgcHJlc2VudEFjdGlvblNoZWV0QW5k
Q2hvb3NlQQogICAgICAgICByZXR1cm4gQFsgY29weUFjdGlvbi5nZXQoKSBdOwogICAgIH1dOwog
ICAgIFt3ZWJWaWV3IF9zaW11bGF0ZUxvbmdQcmVzc0FjdGlvbkF0TG9jYXRpb246bG9jYXRpb25d
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBFWFBFQ1RfVFJVRSghIWNvcHlBY3Rpb24pOwogICAg
IEVYUEVDVF9UUlVFKCEhY29weUVsZW1lbnQpOwpAQCAtMjQ2LDcgKzI0Niw3IEBAIFRFU1QoQWN0
aW9uU2hlZXRUZXN0cywgQ29weUltYWdlRWxlbWVudFcKICAgICAgICAgRVhQRUNUX1dLX1NUUkVR
KChfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVVUkwsIFtpdGVtUHJvdmlkZXIgcmVnaXN0ZXJl
ZFR5cGVJZGVudGlmaWVyc10ubGFzdE9iamVjdCk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAg
IH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktp
dEFQSTo6cnVuVW50aWwoZG9uZSk7CiAKICAgICBfX2Jsb2NrIGJvb2wgZG9uZUxvYWRpbmcgPSBm
YWxzZTsKICAgICBbaXRlbVByb3ZpZGVyIGxvYWRPYmplY3RPZkNsYXNzOltOU1VSTCBjbGFzc10g
Y29tcGxldGlvbkhhbmRsZXI6XihpZCA8TlNJdGVtUHJvdmlkZXJSZWFkaW5nPiByZXN1bHQsIE5T
RXJyb3IgKikgewpAQCAtMjU2LDcgKzI1Niw3IEBAIFRFU1QoQWN0aW9uU2hlZXRUZXN0cywgQ29w
eUltYWdlRWxlbWVudFcKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJoZWxsbyB3b3JsZCIsIHVy
bC5fdGl0bGUpOwogICAgICAgICBkb25lTG9hZGluZyA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lTG9hZGluZyk7CisgICAgVGVzdFdlYktpdEFQSTo6
cnVuVW50aWwoZG9uZUxvYWRpbmcpOwogfQogCiBURVNUKEFjdGlvblNoZWV0VGVzdHMsIENvcHlJ
bWFnZUVsZW1lbnRXaXRoSFJFRikKQEAgLTI4Niw3ICsyODYsNyBAQCBURVNUKEFjdGlvblNoZWV0
VGVzdHMsIENvcHlJbWFnZUVsZW1lbnRXCiAgICAgICAgIEVYUEVDVF9XS19TVFJFUSgoX19icmlk
Z2UgTlNTdHJpbmcgKilrVVRUeXBlVVJMLCBbaXRlbVByb3ZpZGVyIHJlZ2lzdGVyZWRUeXBlSWRl
bnRpZmllcnNdLmxhc3RPYmplY3QpOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1
blVudGlsKGRvbmUpOwogCiAgICAgX19ibG9jayBib29sIGRvbmVMb2FkaW5nID0gZmFsc2U7CiAg
ICAgW2l0ZW1Qcm92aWRlciBsb2FkT2JqZWN0T2ZDbGFzczpbTlNVUkwgY2xhc3NdIGNvbXBsZXRp
b25IYW5kbGVyOl4oaWQgPE5TSXRlbVByb3ZpZGVyUmVhZGluZz4gcmVzdWx0LCBOU0Vycm9yICop
IHsKQEAgLTI5Niw3ICsyOTYsNyBAQCBURVNUKEFjdGlvblNoZWV0VGVzdHMsIENvcHlJbWFnZUVs
ZW1lbnRXCiAgICAgICAgIEVYUEVDVF9XS19TVFJFUSgiaHR0cHM6Ly93d3cuYXBwbGUuY29tLyIs
IHVybC5fdGl0bGUpOwogICAgICAgICBkb25lTG9hZGluZyA9IHRydWU7CiAgICAgfV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lTG9hZGluZyk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZUxvYWRpbmcpOwogfQogCiBURVNUKEFjdGlvblNoZWV0VGVzdHMsIENv
cHlJbWFnZUVsZW1lbnRXaXRob3V0SFJFRikKQEAgLTMyMyw3ICszMjMsNyBAQCBURVNUKEFjdGlv
blNoZWV0VGVzdHMsIENvcHlJbWFnZUVsZW1lbnRXCiAgICAgICAgIEVYUEVDVF9XS19TVFJFUSgo
X19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlUE5HLCBpdGVtUHJvdmlkZXIucmVnaXN0ZXJlZFR5
cGVJZGVudGlmaWVycy5maXJzdE9iamVjdCk7CiAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgIH1d
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiB9CiAKIFRFU1QoQWN0aW9uU2hlZXRUZXN0cywgQ29weUxpbmtX
cml0ZXNVUkxBbmRQbGFpblRleHQpCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lv
cy9EcmFnQW5kRHJvcFRlc3RzSU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW0JKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW0JKHdv
cmtpbmcgY29weSkKQEAgLTU2Miw3ICs1NjIsNyBAQCBURVNUKERyYWdBbmREcm9wVGVzdHMsIExp
bmtUb0lucHV0KQogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoIkhlbGxvIHdvcmxkIiwgdXJsLl90
aXRsZS5VVEY4U3RyaW5nID86ICIiKTsKICAgICAgICAgZG9uZUxvYWRpbmdVUkwgPSB0cnVlOwog
ICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUxvYWRpbmdVUkwpOwor
ICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmVMb2FkaW5nVVJMKTsKIAogICAgIE5TQXJy
YXkgKm9ic2VydmVkRXZlbnROYW1lcyA9IFtzaW11bGF0b3Igb2JzZXJ2ZWRFdmVudE5hbWVzXTsK
ICAgICBFWFBFQ1RfVFJVRShbb2JzZXJ2ZWRFdmVudE5hbWVzIGNvbnRhaW5zT2JqZWN0OkAiZHJh
Z2VudGVyIl0pOwpAQCAtMTIzMyw3ICsxMjMzLDcgQEAgVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBF
eHRlcm5hbFNvdXJjZURhdAogICAgICAgICBbc2ltdWxhdG9yIHJ1bkZyb206Q0dQb2ludE1ha2Uo
NTAsIDUwKSB0bzpDR1BvaW50TWFrZSgxNTAsIDUwKV07CiAgICAgfSk7CiAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRv
bmUpOwogICAgIEVYUEVDVF9XS19TVFJFUShbZXhwZWN0ZWRPdXRwdXQgY29tcG9uZW50c0pvaW5l
ZEJ5U3RyaW5nOkAiXG4iXSwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
Im91dHB1dC52YWx1ZSJdKTsKIH0KIApAQCAtMTI2Myw3ICsxMjYzLDcgQEAgVEVTVChEcmFnQW5k
RHJvcFRlc3RzLCBFeHRlcm5hbFNvdXJjZURhdAogICAgICAgICBbc2ltdWxhdG9yIHJ1bkZyb206
Q0dQb2ludE1ha2UoNTAsIDUwKSB0bzpDR1BvaW50TWFrZSgxNTAsIDUwKV07CiAgICAgfSk7CiAK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRvbmUpOwogICAgIEVYUEVDVF9XS19TVFJFUShbZXhwZWN0ZWRPdXRwdXQgY29t
cG9uZW50c0pvaW5lZEJ5U3RyaW5nOkAiXG4iXSwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAIm91dHB1dC52YWx1ZSJdKTsKIH0KIApAQCAtMTMyMCw3ICsxMzIwLDcgQEAg
VEVTVChEcmFnQW5kRHJvcFRlc3RzLCBPdmVycmlkZURyb3ApCiAgICAgICAgIH1dOwogICAgIH1d
OwogICAgIFtzaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFrZSgzMDAsIDQwMCkgdG86Q0dQb2lu
dE1ha2UoMTAwLCAzMDApXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVk
TG9hZGluZ0RhdGEpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkTG9hZGlu
Z0RhdGEpOwogfQogCiBURVNUKERyYWdBbmREcm9wVGVzdHMsIEluamVjdGVkQnVuZGxlT3ZlcnJp
ZGVQZXJmb3JtVHdvU3RlcERyb3ApCkBAIC0xNjEzLDcgKzE2MTMsNyBAQCBURVNUKERyYWdBbmRE
cm9wVGVzdHMsIFdlYkl0ZW1Qcm92aWRlclBhCiAgICAgICAgIGhhc1J1blNlY29uZENvbXBsZXRp
b25CbG9jayA9IHRydWU7CiAgICAgfSBzeW5jaHJvbm91c1RpbWVvdXQ6MF07CiAgICAgRVhQRUNU
X0ZBTFNFKGhhc1J1blNlY29uZENvbXBsZXRpb25CbG9jayk7Ci0gICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZoYXNSdW5TZWNvbmRDb21wbGV0aW9uQmxvY2spOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGhhc1J1blNlY29uZENvbXBsZXRpb25CbG9jayk7CiB9CiAKIFRFU1QoRHJh
Z0FuZERyb3BUZXN0cywgRG9Ob3RDcmFzaFdoZW5TZWxlY3Rpb25Nb3Zlc09mZnNjcmVlbkFmdGVy
RHJhZ1N0YXJ0KQpAQCAtMjAwNCw3ICsyMDA0LDcgQEAgVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBE
YXRhVHJhbnNmZXJTZXREYQogICAgICAgICAgICAgQCJ0ZXh0L3VyaS1saXN0IjogQCJodHRwczov
L3dlYmtpdC5vcmcvYi8xMjMiLAogICAgICAgICB9CiAgICAgfSk7Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsK
IH0KIAogVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBEYXRhVHJhbnNmZXJTZXREYXRhVW5lc2NhcGVk
VVJMKQpAQCAtMjA0MSw3ICsyMDQxLDcgQEAgVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBEYXRhVHJh
bnNmZXJTZXREYQogICAgICAgICAgICAgQCJ0ZXh0L3VyaS1saXN0IjogQCJodHRwOi8vd2Via2l0
Lm9yZy9iL1x1NEY2MFx1NTk3RDs/eD04ICsgNiIsCiAgICAgICAgIH0KICAgICB9KTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVu
dGlsKGRvbmUpOwogfQogCiBURVNUKERyYWdBbmREcm9wVGVzdHMsIERhdGFUcmFuc2ZlclNldERh
dGFJbnZhbGlkVVJMKQpAQCAtMjEwNCw3ICsyMTA0LDcgQEAgVEVTVChEcmFnQW5kRHJvcFRlc3Rz
LCBEYXRhVHJhbnNmZXJTYW5pdAogICAgICAgICAgICAgQCJ0ZXh0L2h0bWwiOiBAIjxtZXRhIGNv
bnRlbnQ9XCJzZWNyZXRcIj48YiBvbm1vdXNlb3Zlcj1cImRhbmdlcm91c0NvZGUoKVwiPmhlbGxv
PC9iPjwhLS0gc2VjcmV0LS0+LCB3b3JsZDxzY3JpcHQ+ZGFuZ2Vyb3VzQ29kZSgpPC9zY3JpcHQ+
IiwKICAgICAgICAgfQogICAgIH0pOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0Zv
Y3VzUHJlc2VydmF0aW9uVGVzdHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9pb3MvRm9jdXNQcmVzZXJ2YXRpb25UZXN0cy5tbQkocmV2aXNpb24gMjQ1NTE2KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRm9jdXNQcmVzZXJ2YXRpb25UZXN0cy5t
bQkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBURVNUKEZvY3VzUHJlc2VydmF0aW9u
VGVzdHMsIFByZXNlcnZlQW5kCiAKICAgICBUZXN0V0tXZWJWaWV3ICp3ZWJWaWV3ID0gd2ViVmll
d0FuZERlbGVnYXRlLmZpcnN0LmdldCgpOwogICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlw
dDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZm9jdXMoKSIgY29tcGxldGlvbkhh
bmRsZXI6bmlsXTsKLSAgICBVdGlsOjpydW4oJmlucHV0Rm9jdXNlZCk7CisgICAgcnVuVW50aWwo
aW5wdXRGb2N1c2VkKTsKIAogICAgIE5TVVVJRCAqZm9jdXNUb2tlbiA9IE5TVVVJRC5VVUlEOwog
ICAgIFt3ZWJWaWV3LnRleHRJbnB1dENvbnRlbnRWaWV3IF9wcmVzZXJ2ZUZvY3VzV2l0aFRva2Vu
OmZvY3VzVG9rZW4gZGVzdHJ1Y3RpdmVseTpZRVNdOwpAQCAtODYsMTMgKzg2LDEzIEBAIFRFU1Qo
Rm9jdXNQcmVzZXJ2YXRpb25UZXN0cywgQ2hhbmdpbmdGb2MKIAogICAgIFRlc3RXS1dlYlZpZXcg
KndlYlZpZXcgPSB3ZWJWaWV3QW5kRGVsZWdhdGUuZmlyc3QuZ2V0KCk7CiAgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1
cygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwotICAgIFV0aWw6OnJ1bigmaW5wdXRGb2N1c2Vk
KTsKKyAgICBydW5VbnRpbChpbnB1dEZvY3VzZWQpOwogCiAgICAgTlNVVUlEICpmb2N1c1Rva2Vu
ID0gTlNVVUlELlVVSUQ7CiAgICAgW3dlYlZpZXcudGV4dElucHV0Q29udGVudFZpZXcgX3ByZXNl
cnZlRm9jdXNXaXRoVG9rZW46Zm9jdXNUb2tlbiBkZXN0cnVjdGl2ZWx5OllFU107CiAKICAgICBb
d2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzZWxl
Y3QnKS5mb2N1cygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwotICAgIFV0aWw6OnJ1bigmc2Vs
ZWN0Rm9jdXNlZCk7CisgICAgcnVuVW50aWwoc2VsZWN0Rm9jdXNlZCk7CiAKICAgICBFWFBFQ1Rf
Tk9UX05VTEwod2ViVmlldy50ZXh0SW5wdXRDb250ZW50Vmlldy5pbnB1dFZpZXcpOwogICAgIFt3
ZWJWaWV3IHNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3c6MV07CkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL2lvcy9LZXlib2FyZElucHV0VGVzdHNJT1MubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvS2V5Ym9hcmRJbnB1dFRlc3RzSU9TLm1t
CShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9LZXli
b2FyZElucHV0VGVzdHNJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2MCw3ICsxNjAsNyBAQCBz
dGF0aWMgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXdXCiAgICAgW3dlYlZpZXcgX3Nl
dElucHV0RGVsZWdhdGU6aW5wdXREZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J3dp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xJz48aW5wdXQgYXV0b2ZvY3VzPiJdOwog
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lV2FpdGluZyk7CisgICAgVGVzdFdl
YktpdEFQSTo6cnVuVW50aWwoZG9uZVdhaXRpbmcpOwogICAgIGRvbmVXYWl0aW5nID0gZmFsc2U7
CiAgICAgcmV0dXJuIHdlYlZpZXc7CiB9CkBAIC0yODksNyArMjg5LDcgQEAgVEVTVChLZXlib2Fy
ZElucHV0VGVzdHMsIENhbkhhbmRsZUtleUV2ZQogICAgICAgICB9XTsKICAgICB9XTsKIAotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZVdhaXRpbmcpOworICAgIFRlc3RXZWJLaXRB
UEk6OnJ1blVudGlsKGRvbmVXYWl0aW5nKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoImEiLCBbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignaW5wdXQnKS52YWx1ZSJdKTsKIH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9pb3MvUmVuZGVyaW5nUHJvZ3Jlc3NUZXN0cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL2lvcy9SZW5kZXJpbmdQcm9ncmVzc1Rlc3RzLm1tCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9SZW5kZXJpbmdQcm9ncmVz
c1Rlc3RzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02MiwxMSArNjIsMTEgQEAgVEVTVChSZW5kZXJp
bmdQcm9ncmVzc1Rlc3RzLCBEaWRSZW5kZXJTaQogCiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlv
bkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07CiAgICAgW3dlYlZpZXcgbG9hZFRl
c3RQYWdlTmFtZWQ6QCJzaWduaWZpY2FudC10ZXh0LW1pbGVzdG9uZSJdOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmb2JzZXJ2ZWRTaWduaWZpY2FudFJlbmRlcmVkVGV4dCk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwob2JzZXJ2ZWRTaWduaWZpY2FudFJlbmRlcmVkVGV4dCk7
CiAKICAgICBvYnNlcnZlZFNpZ25pZmljYW50UmVuZGVyZWRUZXh0ID0gZmFsc2U7CiAgICAgW3dl
YlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJzaWduaWZpY2FudC10ZXh0LW1pbGVzdG9uZS1hcnRp
Y2xlIl07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZvYnNlcnZlZFNpZ25pZmljYW50
UmVuZGVyZWRUZXh0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChvYnNlcnZlZFNpZ25p
ZmljYW50UmVuZGVyZWRUZXh0KTsKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkp
CkBAIC05MSw3ICs5MSw3IEBAIFRFU1QoUmVuZGVyaW5nUHJvZ3Jlc3NUZXN0cywgRmlyc3RQYWlu
dFcKIAogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdh
dGUuZ2V0KCldOwogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAicGFpbnQtc2lnbmlm
aWNhbnQtYXJlYS1taWxlc3RvbmUiXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm9i
c2VydmVkU2lnbmlmaWNhbnRQYWludCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwob2Jz
ZXJ2ZWRTaWduaWZpY2FudFBhaW50KTsKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKFdBVENIT1Mp
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9TY3JvbGxWaWV3SW5zZXRUZXN0
cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9TY3JvbGxW
aWV3SW5zZXRUZXN0cy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9pb3MvU2Nyb2xsVmlld0luc2V0VGVzdHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2
NCw3ICsxNjQsNyBAQCBURVNUKFNjcm9sbFZpZXdJbnNldFRlc3RzLCBSZXN0b3JlSW5pdGlhCiAg
ICAgfV07CiAKICAgICBbd2ViVmlldyBfa2lsbFdlYkNvbnRlbnRQcm9jZXNzQW5kUmVzZXRTdGF0
ZV07Ci0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25lKTsKIAogICAgIEVY
UEVDVF9FUShpbml0aWFsQ29udGVudE9mZnNldC54LCBjb250ZW50T2Zmc2V0QWZ0ZXJDcmFzaC54
KTsKICAgICBFWFBFQ1RfRVEoaW5pdGlhbENvbnRlbnRPZmZzZXQueSwgY29udGVudE9mZnNldEFm
dGVyQ3Jhc2gueSk7CkBAIC0xODEsMTMgKzE4MSwxMyBAQCBURVNUKFNjcm9sbFZpZXdJbnNldFRl
c3RzLCBSZXN0b3JlSW5pdGlhCiAgICAgZGVsZWdhdGUtPl9uYXZpZ2F0aW9uQ29tcGxldGUgPSBO
TzsKICAgICBOU1VSTCAqdGVzdFJlc291cmNlVVJMID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
YnVuZGxlVVJMXSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOwogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOnZlcnlUYWxsRG9jdW1lbnRN
YXJrdXAgYmFzZVVSTDp0ZXN0UmVzb3VyY2VVUkxdOwotICAgIFV0aWw6OnJ1bigmZGVsZWdhdGUt
Pl9uYXZpZ2F0aW9uQ29tcGxldGUpOworICAgIHJ1blVudGlsKGRlbGVnYXRlLT5fbmF2aWdhdGlv
bkNvbXBsZXRlKTsKIAogICAgIF9fYmxvY2sgYm9vbCBwcmVzZW50YXRpb25VcGRhdGVIYXBwZW5l
ZCA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IF9kb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZTpe
ewogICAgICAgICBwcmVzZW50YXRpb25VcGRhdGVIYXBwZW5lZCA9IHRydWU7CiAgICAgfV07Ci0g
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwcmVzZW50YXRpb25VcGRhdGVIYXBwZW5lZCk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwocHJlc2VudGF0aW9uVXBkYXRlSGFwcGVuZWQp
OwogCiAgICAgQ0dQb2ludCBpbml0aWFsQ29udGVudE9mZnNldCA9IFt3ZWJWaWV3IHNjcm9sbFZp
ZXddLmNvbnRlbnRPZmZzZXQ7CiAgICAgX19ibG9jayBDR1BvaW50IGNvbnRlbnRPZmZzZXRBZnRl
ckNyYXNoID0gQ0dQb2ludFplcm87CkBAIC0xOTgsNyArMTk4LDcgQEAgVEVTVChTY3JvbGxWaWV3
SW5zZXRUZXN0cywgUmVzdG9yZUluaXRpYQogICAgIH1dOwogCiAgICAgW3dlYlZpZXcgX2tpbGxX
ZWJDb250ZW50UHJvY2Vzc0FuZFJlc2V0U3RhdGVdOwotICAgIFV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgcnVuVW50aWwoZG9uZSk7CiAKICAgICBFWFBFQ1RfRVEoaW5pdGlhbENvbnRlbnRPZmZzZXQu
eCwgY29udGVudE9mZnNldEFmdGVyQ3Jhc2gueCk7CiAgICAgRVhQRUNUX0VRKGluaXRpYWxDb250
ZW50T2Zmc2V0LnksIGNvbnRlbnRPZmZzZXRBZnRlckNyYXNoLnkpOwpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9pb3MvU2V0VGltZW91dEZ1bmN0aW9uLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1NldFRpbWVvdXRGdW5jdGlvbi5tbQkocmV2
aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2V0VGltZW91
dEZ1bmN0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04NSwxMSArODUsMTEgQEAgVEVTVChXZWJL
aXRMZWdhY3ksIFNldFRpbWVvdXRGdW5jdGlvbikKIAogICAgIFJldGFpblB0cjxOU1VSTD4gdXJs
ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNldC10aW1lb3V0LWZ1
bmN0aW9uIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQ
SS5yZXNvdXJjZXMiXTsKICAgICBbdWlXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6dXJsLmdldCgpXV07Ci0gICAgVXRpbDo6cnVuKCZsb2FkQ29tcGxldGUp
OworICAgIHJ1blVudGlsKGxvYWRDb21wbGV0ZSk7CiAgICAgRVhQRUNUX1RSVUUobG9hZENvbXBs
ZXRlKTsKICAgICBFWFBFQ1RfRkFMU0UobG9hZEZhaWxlZCk7CiAKLSAgICBVdGlsOjpydW4oJnRl
c3RDb21wbGV0ZSk7CisgICAgcnVuVW50aWwodGVzdENvbXBsZXRlKTsKICAgICBFWFBFQ1RfV0tf
U1RSRVEoIjMiLCBudW1iZXJPZlNldFRpbWVvdXRDYWxsYmFja3MuZ2V0KCkpOwogfQogCkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9VSVBhc3RlYm9hcmRUZXN0cy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9VSVBhc3RlYm9hcmRUZXN0
cy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3Mv
VUlQYXN0ZWJvYXJkVGVzdHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsxNTYsNyBAQCBU
RVNUKFVJUGFzdGVib2FyZFRlc3RzLCBQYXN0ZVdpdGhDb21wbGV0CiAgICAgICAgIGRvbmUgPSB0
cnVlOwogICAgIH1dOwogCi0gICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBydW5VbnRpbChkb25l
KTsKIAogICAgIEVYUEVDVF9XS19TVFJFUSgidGV4dC91cmktbGlzdCwgdGV4dC9wbGFpbiIsIFt3
ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ0eXBlcy50ZXh0Q29udGVudCJd
KTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoIihTVFJJTkcsIHRleHQvdXJpLWxpc3QpLCAoU1RSSU5H
LCB0ZXh0L3BsYWluKSIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJp
dGVtcy50ZXh0Q29udGVudCJdKTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9z
L1dLU2Nyb2xsVmlld0RlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvaW9zL1dLU2Nyb2xsVmlld0RlbGVnYXRlLm1tCShyZXZpc2lvbiAyNDU1MTYpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9XS1Njcm9sbFZpZXdEZWxlZ2F0ZS5tbQko
d29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBURVNUKFdLV2ViVmlldywgV0tTY3JvbGxW
aWV3RGVsZWdhdGVDcmFzCiAgICAgfQogICAgIGRlbGVnYXRlSXNEZWFsbG9jYXRlZCA9IGZhbHNl
OwogICAgIFtkZWxlZ2F0ZUZvclNjcm9sbFZpZXcgcmVsZWFzZV07Ci0gICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkZWxlZ2F0ZUlzRGVhbGxvY2F0ZWQpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRlbGVnYXRlSXNEZWFsbG9jYXRlZCk7CiAKICAgICBFWFBFQ1RfTlVMTCh3ZWJW
aWV3LnNjcm9sbFZpZXcuZGVsZWdhdGUpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9pb3MvV0tTY3JvbGxWaWV3VGVzdHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9pb3MvV0tTY3JvbGxWaWV3VGVzdHMubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1dLU2Nyb2xsVmlld1Rlc3RzLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIFRFU1QoV0tTY3JvbGxWaWV3VGVzdHMsIFBv
c2l0aW9uRml4ZWRMYXkKICAgICAvLyBvcHBvcnR1bml0eSB0byBhcnJpdmUgaW4gdGhlIFVJIHBy
b2Nlc3MgYmVmb3JlIGRpc3BhdGNoaW5nIHRoZSBuZXh0IHZpc2libGUgY29udGVudCByZWN0IHVw
ZGF0ZS4KICAgICB1c2xlZXAoVVNFQ19QRVJfU0VDICogMC4yNSk7CiAKLSAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRlc3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUp
OwogCiAgICAgYm9vbCBmb3VuZExheWVyRm9yRml4ZWROYXZpZ2F0aW9uQmFyID0gZmFsc2U7CiAg
ICAgdHJhdmVyc2VMYXllclRyZWUoW3dlYlZpZXcgbGF5ZXJdLCBbJl0gKENBTGF5ZXIgKmxheWVy
KSB7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9XS1dlYlZpZXdBdXRvZmls
bFRlc3RzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1dL
V2ViVmlld0F1dG9maWxsVGVzdHMubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvaW9zL1dLV2ViVmlld0F1dG9maWxsVGVzdHMubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTE4MSw3ICsxODEsNyBAQCBURVNUKFdLV2ViVmlld0F1dG9maWxsVGVzdHMsIEF1dG9m
aWxsUmVxCiAgICAgfV07CiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5n
OkAiPGlucHV0IGlkPSd1c2VyJyB0eXBlPSdlbWFpbCc+PGlucHV0IGlkPSdwYXNzd29yZCcgdHlw
ZT0ncGFzc3dvcmQnPiJdOwogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJ1c2VyLmZvY3VzKCkiXTsKLSAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIHJ1blVudGls
KGRvbmUpOwogCiAgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IHRleHRJbnB1dEhhc0F1dG9maWxs
Q29udGV4dF0pOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMubW0JKHJldmlzaW9u
IDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0FkZGl0aW9uYWxTdXBw
b3J0ZWRJbWFnZVR5cGVzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRp
YyB2b2lkIHJ1blRlc3QoTlNBcnJheSAqYWRkaXRpb25hbFMKICAgICBSZXRhaW5QdHI8TlNVUkw+
IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiQWRkaXRp
b25hbFN1cHBvcnRlZEltYWdlVHlwZXMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rv
cnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogICAgIFtbd2ViVmlldy5nZXQoKSBtYWlu
RnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5n
ZXQoKV1dOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChk
aWRGaW5pc2hMb2FkKTsKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAKICAgICBET01Eb2N1
bWVudCAqZG9jdW1lbnQgPSB3ZWJWaWV3LmdldCgpLm1haW5GcmFtZURvY3VtZW50OwpJbmRleDog
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQmFja0ZvcndhcmRMaXN0Lm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0JhY2tGb3J3YXJkTGlzdC5tbQko
cmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQmFja0Zv
cndhcmRMaXN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01OCwxMSArNTgsMTEgQEAgVEVTVChXZWJL
aXRMZWdhY3ksIFJlbG9hZEJhY2tGb3J3YXJkKQogICAgIFJldGFpblB0cjxCYWNrRm9yd2FyZExp
c3RUZXN0PiB0ZXN0Q29udHJvbGxlciA9IGFkb3B0TlMoW0JhY2tGb3J3YXJkTGlzdFRlc3QgbmV3
XSk7CiAgICAgd2ViVmlldy5nZXQoKS5mcmFtZUxvYWREZWxlZ2F0ZSA9IHRlc3RDb250cm9sbGVy
LmdldCgpOwogICAgIFtbd2ViVmlldy5nZXQoKSBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZG9l
cy1ub3QtZXhpc3QuZXhhbXBsZSJdXV07Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsK
KyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7
CiAKICAgICBbW3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSByZWxvYWRdOwotICAgIFV0aWw6OnJ1
bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgZGlk
RmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgV2ViQmFja0ZvcndhcmRMaXN0ICpiZkxpc3QgPSBb
d2ViVmlldy5nZXQoKSBiYWNrRm9yd2FyZExpc3RdOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9DYW5jZWxMb2FkRnJvbVJlc291
cmNlTG9hZERlbGVnYXRlLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9DYW5jZWxMb2FkRnJvbVJlc291cmNlTG9hZERlbGVnYXRlLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBDYW5jZWxMb2Fk
RnJvbVJlc291cmMKIAogICAgIFtbd2ViVmlldy5nZXQoKSBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIkNhbmNlbExvYWRGcm9tUmVzb3VyY2VMb2FkRGVsZWdhdGUiIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07
CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlz
aExvYWQpOwogCiAgICAgW3Bvb2wgZHJhaW5dOwogICAgIC8vIElmIHdlIGZpbmlzaGVkIHdpdGhv
dXQgY3Jhc2hpbmcsIHRoZSB0ZXN0IHBhc3NlZC4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL0NhbmRpZGF0ZVRlc3RzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL0NhbmRpZGF0ZVRlc3RzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9DYW5kaWRhdGVUZXN0cy5tbQkod29ya2luZyBj
b3B5KQpAQCAtOTMsOCArOTMsOCBAQCBURVNUKENhbmRpZGF0ZVRlc3RzLCBESVNBQkxFRF9Eb05v
dExlYWtWCiAgICAgTlNVUkwgKmNvbnRlbnRVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAiYXV0b2ZvY3VzZWQtdGV4dC1pbnB1dCIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAgICAgW1t3ZWJW
aWV3IG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpj
b250ZW50VVJMXV07CiAgICAgCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRGaW5p
c2hMb2FkKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENhbGxTaG93Q2FuZGlk
YXRlcyk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkQ2FsbFNob3dDYW5kaWRhdGVzKTsKIAogICAgIFt3
ZWJWaWV3IHJlbGVhc2VdOwogICAgIEVYUEVDVF9UUlVFKHdlYlZpZXdXYXNEZWFsbG9jYXRlZCk7
CkBAIC0xMTAsNyArMTEwLDcgQEAgVEVTVChDYW5kaWRhdGVUZXN0cywgRElTQUJMRURfUmVxdWVz
dENhbgogICAgIE5TVVJMICpjb250ZW50VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAImZvY3VzLWlucHV0cyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAgICAgW1t3ZWJWaWV3IG1haW5GcmFt
ZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpjb250ZW50VVJMXV07
CiAgICAgCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICAKICAgICBbd2Vi
VmlldyBmb3JjZVJlcXVlc3RDYW5kaWRhdGVzRm9yVGVzdGluZ107CiAKQEAgLTEzMSw3ICsxMzEs
NyBAQCBURVNUKENhbmRpZGF0ZVRlc3RzLCBEb05vdFJlcXVlc3RDYW5kaWRhCiAgICAgTlNVUkwg
KmNvbnRlbnRVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiZm9j
dXMtaW5wdXRzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKICAgICBbW3dlYlZpZXcgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOmNvbnRlbnRVUkxdXTsKICAgICAKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIFRlc3RXZWJLaXRBUEk6
OnJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIAogICAgIFt3ZWJWaWV3IGZvcmNlUmVxdWVz
dENhbmRpZGF0ZXNGb3JUZXN0aW5nXTsKICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0RnJvbVN0cmluZzpAImZvY3VzUGFzc3dvcmRGaWVsZCgpIl07CkluZGV4OiBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9DbG9zZU5ld1dpbmRvd0luTmF2aWdhdGlvblBvbGlj
eURlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0Nsb3NlTmV3V2luZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVsZWdhdGUubW0JKHJldmlzaW9uIDI0
NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nsb3NlTmV3V2luZG93SW5O
YXZpZ2F0aW9uUG9saWN5RGVsZWdhdGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2LDcg
QEAgVEVTVChXZWJLaXRMZWdhY3ksIENsb3NlTmV3V2luZG93SW5OYXZpZwogICAgIHdlYlZpZXcu
Z2V0KCkuVUlEZWxlZ2F0ZSA9IFtUZXN0RGVsZWdhdGUgc2hhcmVkXTsKICAgICBbW3dlYlZpZXcu
Z2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJPcGVuTmV3V2luZG93IiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXV1dOwogICAgIAotICAgIFV0aWw6OnJ1bigmdGVzdEZpbmlzaGVkKTsKKyAgICBydW5VbnRp
bCh0ZXN0RmluaXNoZWQpOwogICAgIAogICAgIFtwb29sIGRyYWluXTsKIH0KSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRlbnRGaWx0ZXJpbmcubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGVudEZpbHRlcmluZy5tbQkocmV2
aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvQ29udGVudEZp
bHRlcmluZy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMgdm9pZCBs
b2FkQWx0ZXJuYXRlVGVzdChEZWNpc2lvbiBkCiAgICAgICAgIFtbd2ViVmlldyBtYWluRnJhbWVd
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJodHRwOi8vcmVkaXJlY3QvP3Jlc3VsdCJdXV07CiAKICAgICAgICAgaXNEb25lID0g
ZmFsc2U7Ci0gICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICAg
ICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25lKTsKIAogICAgICAgICBzZXR0aW5ncy5z
ZXRFbmFibGVkKGZhbHNlKTsKICAgICAgICAgW1Rlc3RQcm90b2NvbCB1bnJlZ2lzdGVyXTsKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVu
dUNhbkNvcHlVUkwubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL0NvbnRleHRNZW51Q2FuQ29weVVSTC5tbQkod29ya2luZyBjb3B5KQpAQCAtOTcs
NyArOTcsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgQ29udGV4dE1lbnVDYW5Db3B5VVJMCiAKICAg
ICBbd2ViVmlldy5nZXQoKS5tYWluRnJhbWUgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1
ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiQ29udGV4
dE1lbnVDYW5Db3B5VVJMIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwogICAgIAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNo
TG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAKICAgICBjb250ZXh0TWVudUNv
cHlMaW5rKHdlYlZpZXcuZ2V0KCksIDApOwogICAgIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvQ29udGV4dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFncy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Db250ZXh0TWVudURlZmF1bHRJdGVt
c0hhdmVUYWdzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9Db250ZXh0TWVudURlZmF1bHRJdGVtc0hhdmVUYWdzLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC01OCw3ICs1OCw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBDb250ZXh0TWVudURlZmF1bHRJ
dGUKIAogICAgIFt3ZWJWaWV3LmdldCgpLm1haW5GcmFtZSBsb2FkSFRNTFN0cmluZzpAIjxib2R5
IGNvbnRlbnRlZGl0YWJsZT4iIGJhc2VVUkw6bmlsXTsKIAotICAgIFV0aWw6OnJ1bigmZGlkRmlu
aXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAKICAgICBOU0V2ZW50ICpl
dmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZVJpZ2h0TW91c2VE
b3duIGxvY2F0aW9uOk5TTWFrZVBvaW50KDQwMCwgMzAwKSBtb2RpZmllckZsYWdzOjAgdGltZXN0
YW1wOltOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXQogICAgICAgICB3aW5k
b3dOdW1iZXI6W3dpbmRvdyB3aW5kb3dOdW1iZXJdIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0
IGN1cnJlbnRDb250ZXh0XSBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsK
SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nyb3NzUGFydGl0aW9uRmlsZVNj
aGVtZUFjY2Vzcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9Dcm9zc1BhcnRpdGlvbkZpbGVTY2hlbWVBY2Nlc3MubW0JKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Nyb3NzUGFydGl0aW9uRmlsZVNjaGVtZUFj
Y2Vzcy5tbQkod29ya2luZyBjb3B5KQpAQCAtOTksNyArOTksNyBAQCBURVNUKFdlYktpdExlZ2Fj
eSwgQ3Jvc3NQYXJ0aXRpb25GaWxlU2NoCiAgICAgCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0
ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp1cmxdOwogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnJlcXVlc3RdOwotICAgIFV0aWw6OnJ1bigmbmF2aWdhdGlvbkNvbXBsZXRlKTsKKyAg
ICBydW5VbnRpbChuYXZpZ2F0aW9uQ29tcGxldGUpOwogICAgIGNsZWFuVXAoKTsKIH0KIH0KSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RPTUhUTUxUYWJsZUNlbGxDZWxsQWJv
dmUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRE9NSFRN
TFRhYmxlQ2VsbENlbGxBYm92ZS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvRE9NSFRNTFRhYmxlQ2VsbENlbGxBYm92ZS5tbQkod29ya2luZyBj
b3B5KQpAQCAtNjMsNyArNjMsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgSFRNTFRhYmxlQ2VsbEVs
ZW1lbnRDCiAgICAgW1t3ZWJWaWV3LmdldCgpIG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdCiAgICAgICAgIFVS
TEZvclJlc291cmNlOkAiRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnRDZWxsQWJvdmUiIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07
CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlz
aExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKIAogICAgIERPTURvY3VtZW50ICpk
b2N1bWVudCA9IHdlYlZpZXcuZ2V0KCkubWFpbkZyYW1lRG9jdW1lbnQ7CkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9ET01IVE1MVmlkZW9FbGVtZW50V3JhcHBlci5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9ET01IVE1MVmlkZW9FbGVt
ZW50V3JhcHBlci5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9tYWMvRE9NSFRNTFZpZGVvRWxlbWVudFdyYXBwZXIubW0JKHdvcmtpbmcgY29weSkKQEAg
LTU1LDcgKzU1LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIERPTUhUTUxWaWRlb0VsZW1lbnRXcgog
ICAgIHdlYlZpZXcuZ2V0KCkuZnJhbWVMb2FkRGVsZWdhdGUgPSBmcmFtZUxvYWREZWxlZ2F0ZS5n
ZXQoKTsKICAgICBbd2ViVmlldy5nZXQoKS5tYWluRnJhbWUgbG9hZEhUTUxTdHJpbmc6QCIiIGJh
c2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJdXTsKIAotICAgIFV0aWw6
OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAKICAg
ICBET01Eb2N1bWVudCAqZG9jdW1lbnQgPSB3ZWJWaWV3LmdldCgpLm1haW5GcmFtZURvY3VtZW50
OwogICAgIERPTUVsZW1lbnQgKnZpZGVvID0gW2RvY3VtZW50IGNyZWF0ZUVsZW1lbnQ6QCJ2aWRl
byJdOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRE9NTm9kZS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9ET01Ob2RlLm1tCShyZXZp
c2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9ET01Ob2RlLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBET01O
b2RlQ29tcGFyZURvY3VtZW4KICAgICB3ZWJWaWV3LmdldCgpLmZyYW1lTG9hZERlbGVnYXRlID0g
dGVzdENvbnRyb2xsZXIuZ2V0KCk7CiAgICAgW1t3ZWJWaWV3LmdldCgpIG1haW5GcmFtZV0gbG9h
ZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAImFib3V0OmJsYW5rIl1dXTsKICAgICAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQp
OworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQgPSBmYWxz
ZTsKICAgICAKICAgICBET01Eb2N1bWVudCAqZG9jdW1lbnQgPSB3ZWJWaWV3LmdldCgpLm1haW5G
cmFtZURvY3VtZW50OwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRE9NUmFu
Z2VPZlN0cmluZy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9ET01SYW5nZU9mU3RyaW5nLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9ET01SYW5nZU9mU3RyaW5nLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01
NCw3ICs1NCw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBET01SYW5nZU9mU3RyaW5nKQogICAgIHdl
YlZpZXcuZ2V0KCkuZnJhbWVMb2FkRGVsZWdhdGUgPSBmcmFtZUxvYWREZWxlZ2F0ZS5nZXQoKTsK
ICAgICBbW3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJE
T01SYW5nZU9mU3RyaW5nIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2Fk
KTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKIAogICAgIERPTVJhbmdlICpyZXN1bHRS
YW5nZSA9IFt3ZWJWaWV3LmdldCgpIERPTVJhbmdlT2ZTdHJpbmc6QCJuZWVkbGVzIiByZWxhdGl2
ZVRvOm5pbCBvcHRpb25zOjBdOwogICAgIEVYUEVDVF9FUShuaWwsIHJlc3VsdFJhbmdlKTsKSW5k
ZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RldmljZVNjYWxlRmFjdG9ySW5EYXNo
Ym9hcmRSZWdpb25zLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0RldmljZVNjYWxlRmFjdG9ySW5EYXNoYm9hcmRSZWdpb25zLm1tCShyZXZpc2lvbiAyNDU1
MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EZXZpY2VTY2FsZUZhY3Rvcklu
RGFzaGJvYXJkUmVnaW9ucy5tbQkod29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCBURVNU
KFdlYktpdExlZ2FjeSwgRGV2aWNlU2NhbGVGYWN0b3JJbkRhCiAKICAgICBbd2ViVmlldy5nZXQo
KS5tYWluRnJhbWUgbG9hZEhUTUxTdHJpbmc6QCI8ZGl2IHN0eWxlPSdwb3NpdGlvbjogYWJzb2x1
dGU7IHRvcDogMTBweDsgbGVmdDogMTBweDsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsgLXdl
YmtpdC1kYXNoYm9hcmQtcmVnaW9uOiBkYXNoYm9hcmQtcmVnaW9uKGNvbnRyb2wgcmVjdGFuZ2xl
KTsnPjwvZGl2PiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl1d
OwogCi0gICAgVXRpbDo6cnVuKCZnb3REYXNoYm9hcmRSZWdpb25zKTsKKyAgICBydW5VbnRpbChn
b3REYXNoYm9hcmRSZWdpb25zKTsKIAogICAgIE5TUmVjdCBjb250cm9sUmVnaW9uUmVjdCA9IFtb
W3JlZ2lvbnMgb2JqZWN0Rm9yS2V5OkAiY29udHJvbCJdIG9iamVjdEF0SW5kZXg6MF0gZGFzaGJv
YXJkUmVnaW9uUmVjdF07CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Vs
ZW1lbnRBdFBvaW50SW5XZWJGcmFtZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9FbGVtZW50QXRQb2ludEluV2ViRnJhbWUubW0JKHJldmlzaW9uIDI0NTUx
NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0VsZW1lbnRBdFBvaW50SW5XZWJG
cmFtZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBAQCBURVNUKFdlYktpdExlZ2Fj
eSwgRWxlbWVudEF0UG9pbnQpCiAgICAgW21haW5GcmFtZSBsb2FkSFRNTFN0cmluZzpAIjxzdHls
ZT4gZGl2IHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjYwcHg7IGhlaWdodDoxMDBweDsgfSA8
L3N0eWxlPiA8ZGl2IG5hbWU9J2ZpcnN0Jz48L2Rpdj4gPGRpdiBuYW1lPSdzZWNvbmQnIHN0eWxl
PSdsZWZ0OjYwcHg7IHRvcDoxMDBweDsnPjwvZGl2PiIKICAgICAgICAgICAgICAgICAgICAgICBi
YXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6YmxhbmsiXV07CiAKLSAgICBVdGls
OjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAg
IAogICAgIE5TRGljdGlvbmFyeSAqZWxlbWVudERpY3Rpb25hcnkgPSBbbWFpbkZyYW1lIGVsZW1l
bnRBdFBvaW50Ok5TTWFrZVBvaW50KDMwLCA1MCldOwogICAgIERPTUVsZW1lbnQgKmRvbUVsZW1l
bnQgPSBbZWxlbWVudERpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5OldlYkVsZW1lbnRET01Ob2RlS2V5
XTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZpcnN0UmVzcG9uZGVyU2Ny
b2xsaW5nUG9zaXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvRmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpdGlvbi5tbQkocmV2aXNpb24gMjQ1NTE2
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRmlyc3RSZXNwb25kZXJTY3JvbGxp
bmdQb3NpdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksNyBAQCBURVNUKFdlYktp
dCwgRmlyc3RSZXNwb25kZXJTY3JvbGxpbmdQb3NpCiAKICAgICBXS1JldGFpblB0cjxXS1VSTFJl
Zj4gdXJsID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgic2ltcGxlLXRhbGwi
LCAiaHRtbCIpKTsKICAgICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkp
OwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNo
TG9hZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgRVhQRUNUX0pTX0VRKHdl
YlZpZXcucGFnZSgpLCAidmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQn
KTsiCkBAIC04OSw3ICs4OSw3IEBAIFRFU1QoV2ViS2l0LCBGaXJzdFJlc3BvbmRlclNjcm9sbGlu
Z1Bvc2kKICAgICBbd2luZG93LmdldCgpIG1ha2VGaXJzdFJlc3BvbmRlcjpuZXdXZWJWaWV3LnBs
YXRmb3JtVmlldygpXTsKIAogICAgIFdLUGFnZUxvYWRVUkwobmV3V2ViVmlldy5wYWdlKCksIHVy
bC5nZXQoKSk7Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChk
aWRGaW5pc2hMb2FkKTsKIAogICAgIEVYUEVDVF9KU19FUSh3ZWJWaWV3LnBhZ2UoKSwgIndpbmRv
dy5zY3JvbGxZIiwgIjQwIik7CiAgICAgRVhQRUNUX0pTX0VRKG5ld1dlYlZpZXcucGFnZSgpLCAi
d2luZG93LnNjcm9sbFkiLCAiMCIpOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvRmlyc3RSZXNwb25kZXJTdXBwcmVzc2lvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3BvbmRlclN1cHByZXNzaW9uLm1tCShyZXZpc2lv
biAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GaXJzdFJlc3BvbmRl
clN1cHByZXNzaW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIFRFU1QoV2Vi
S2l0LCBGaXJzdFJlc3BvbmRlclN1cHByZXNzaW9uKQogICAgIC8vIEVuc3VyZSBoYXZpbmcgYW4g
YXV0b2ZvY3VzZWQgaW5wdXQgZmllbGQgZG9lcyBub3Qgc3RlYWwgZm9jdXMuCiAgICAgTlNTdHJp
bmcgKnRlc3RIVE1MID0gQCI8IWRvY3R5cGUgaHRtbD48aHRtbD48Ym9keT48aW5wdXQgdHlwZT1c
InRleHRcIiBhdXRvZm9jdXMgLz48L2JvZHk+PC9odG1sPiI7CiAgICAgW3dlYlZpZXcgbG9hZEhU
TUxTdHJpbmc6dGVzdEhUTUwgYmFzZVVSTDpuaWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZmluaXNoZWRMb2FkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hl
ZExvYWQpOwogICAgIEVYUEVDVF9FUShbd2luZG93IGZpcnN0UmVzcG9uZGVyXSwgW3dpbmRvdyBj
b250ZW50Vmlld10pOwogICAgIGZpbmlzaGVkTG9hZCA9IGZhbHNlOwogCkBAIC03Miw3ICs3Miw3
IEBAIFRFU1QoV2ViS2l0LCBGaXJzdFJlc3BvbmRlclN1cHByZXNzaW9uKQogCiAgICAgLy8gRW5z
dXJlIGhhdmluZyBhbiBhdXRvZm9jdXNlZCBpbnB1dCBmaWVsZCBkb2VzIHN0ZWFsIGZvY3VzLgog
ICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOnRlc3RIVE1MIGJhc2VVUkw6bmlsXTsKLSAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTG9hZCk7CisgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZmluaXNoZWRMb2FkKTsKICAgICBFWFBFQ1RfTkUoW3dpbmRvdyBmaXJzdFJl
c3BvbmRlcl0sIFt3aW5kb3cgY29udGVudFZpZXddKTsKIH0KIApJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvRm9udE1hbmFnZXJUZXN0cy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Gb250TWFuYWdlclRlc3RzLm1tCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Gb250TWFuYWdlclRlc3Rz
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3MCw3IEBAIC0gKE5TRGljdGlvbmFyeTxOU1N0
cmluZyAqLCBpZD4gKil0eXBpbmcKICAgICAgICAgcmVzdWx0ID0gYXR0cmlidXRlczsKICAgICAg
ICAgZG9uZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChkb25lKTsKICAgICByZXR1cm4gcmVz
dWx0LmF1dG9yZWxlYXNlKCk7CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0ZyYWdtZW50TmF2aWdhdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9GcmFnbWVudE5hdmlnYXRpb24ubW0JKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZyYWdtZW50TmF2aWdhdGlvbi5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTIwLDcgKzEyMCw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBGcmFnbWVu
dE5hdmlnYXRpb24pCiAgICAgICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6W1dlYktpdDFGcmFn
bWVudE5hdmlnYXRpb25UZXN0RGVsZWdhdGUgc2hhcmVkXV07CiAgICAgICAgIFtbd2ViVmlldyBt
YWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkZyYWdtZW50TmF2aWdhdGlvbiIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il1dXTsKIAotICAgICAgICBVdGlsOjpydW4oJnRlc3RGaW5pc2hlZCk7CisgICAgICAgIHJ1blVu
dGlsKHRlc3RGaW5pc2hlZCk7CiAgICAgfQogfQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9GdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZS5t
bQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRnVs
bHNjcmVlblpvb21Jbml0aWFsRnJhbWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTE2NSw3ICsxNjUs
NyBAQCB2b2lkIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lOjpydW5UZXN0CiAgICAgaXNXYWl0
aW5nRm9yUGFnZVNpZ25hbFRvQ29udGludWUgPSB0cnVlOwogICAgIGRpZEdldFBhZ2VTaWduYWxU
b0NvbnRpbnVlID0gZmFsc2U7CiAgICAgc2VuZE1vdXNlRG93bkV2ZW50KHZpZXcsIGV2ZW50KTsK
LSAgICBVdGlsOjpydW4oJmRpZEdldFBhZ2VTaWduYWxUb0NvbnRpbnVlKTsKKyAgICBydW5VbnRp
bChkaWRHZXRQYWdlU2lnbmFsVG9Db250aW51ZSk7CiAKICAgICBpZCB3aW5kb3dDb250cm9sbGVy
ID0gW1t2aWV3IHdpbmRvd10gd2luZG93Q29udHJvbGxlcl07CiAgICAgRVhQRUNUX1RSVUUoW3dp
bmRvd0NvbnRyb2xsZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0aWFsRnJhbWUp
XSk7CkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBGdWxsc2NyZWVuWm9vbUluaXRpYWxGcmFtZTo6
cnVuVGVzdAogICAgIGlzV2FpdGluZ0ZvclBhZ2VTaWduYWxUb0NvbnRpbnVlID0gdHJ1ZTsKICAg
ICBkaWRHZXRQYWdlU2lnbmFsVG9Db250aW51ZSA9IGZhbHNlOwogICAgIHNlbmRNb3VzZURvd25F
dmVudCh2aWV3LCBldmVudCk7Ci0gICAgVXRpbDo6cnVuKCZkaWRHZXRQYWdlU2lnbmFsVG9Db250
aW51ZSk7CisgICAgcnVuVW50aWwoZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUpOwogfQogCiBU
RVNUX0YoRnVsbHNjcmVlblpvb21Jbml0aWFsRnJhbWUsIFdlYktpdCkKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hUTUxDb2xsZWN0aW9uTmFtZWRJ
dGVtLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9IVE1MQ29sbGVjdGlvbk5hbWVkSXRlbS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcs
NyBAQCBURVNUKFdlYktpdExlZ2FjeSwgSFRNTENvbGxlY3Rpb25OYW1lZEl0CiAgICAgW1t3ZWJW
aWV3LmdldCgpIG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdCiAgICAgICAgIFVSTEZvclJlc291cmNlOkAiSFRN
TENvbGxlY3Rpb25OYW1lZEl0ZW0iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6
QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CiAKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlz
aExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIGRpZEZpbmlzaExvYWQg
PSBmYWxzZTsKIAogICAgIERPTURvY3VtZW50ICpkb2N1bWVudCA9IHdlYlZpZXcuZ2V0KCkubWFp
bkZyYW1lRG9jdW1lbnQ7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9IVE1M
Rm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvSFRNTEZvcm1Db2xsZWN0aW9uTmFtZWRJdGVtLm1tCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9IVE1MRm9ybUNvbGxlY3Rp
b25OYW1lZEl0ZW0ubW0JKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgVEVTVChXZWJL
aXRMZWdhY3ksIEhUTUxGb3JtQ29sbGVjdGlvbk5hbQogICAgIFtbd2ViVmlldy5nZXQoKSBtYWlu
RnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRs
ZSBtYWluQnVuZGxlXQogICAgICAgICBVUkxGb3JSZXNvdXJjZTpAIkhUTUxGb3JtQ29sbGVjdGlv
bk5hbWVkSXRlbSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl1dXTsKIAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7Cisg
ICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwog
CiAgICAgRE9NRG9jdW1lbnQgKmRvY3VtZW50ID0gd2ViVmlldy5nZXQoKS5tYWluRnJhbWVEb2N1
bWVudDsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0luc3BlY3RvckJhci5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9JbnNwZWN0b3JC
YXIubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0luc3BlY3RvckJhci5tbQkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBURVNUKFdl
YktpdExlZ2FjeSwgSW5zcGVjdG9yQmFyVGVzdCkKICAgICB3ZWJWaWV3LmdldCgpLmZyYW1lTG9h
ZERlbGVnYXRlID0gaW5zcGVjdG9yQmFyQ29udHJvbGxlci5nZXQoKTsKICAgICBbd2ViVmlldy5n
ZXQoKS5tYWluRnJhbWUgbG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBjb250ZW50ZWRpdGFibGUgc3R5
bGU9XCJjb2xvcjogZ3JlZW5cIj48dT5Mb3JlbSBpcHN1bSBzaXQgYW1ldDwvdT48L2JvZHk+IiBi
YXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJvdXQ6YmxhbmsiXV07CiAKLSAgICBVdGls
OjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogCiAg
ICAgRE9NRG9jdW1lbnQgKmRvY3VtZW50ID0gd2ViVmlldy5nZXQoKS5tYWluRnJhbWVEb2N1bWVu
dDsKICAgICBbW2RvY3VtZW50IGJvZHldIGZvY3VzXTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0lzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5t
bQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSXNO
YXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbQkod29ya2luZyBjb3B5KQpAQCAtODcsNyArODcsNyBA
QCBURVNUKFdlYktpdCwgSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZCkKICAgICAgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAKICAgICAgICAgZGlkRmluaXNoVGVzdCA9IGZhbHNl
OwotICAgICAgICBVdGlsOjpydW4oJmRpZEZpbmlzaFRlc3QpOworICAgICAgICBydW5VbnRpbChk
aWRGaW5pc2hUZXN0KTsKICAgICB9CiB9CiAKQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKFdlYktp
dExlZ2FjeSwgSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1CiAgICAgICAgIFtbd2ViVmlldyBtYWluRnJh
bWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIklzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQiIHdp
dGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdXV07CiAKICAgICAgICAgZGlkRmluaXNoVGVzdCA9IGZhbHNlOwotICAgICAgICBVdGlsOjpy
dW4oJmRpZEZpbmlzaFRlc3QpOworICAgICAgICBydW5VbnRpbChkaWRGaW5pc2hUZXN0KTsKICAg
ICB9CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0pTV3JhcHBlckZv
ck5vZGVJbldlYkZyYW1lLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL0pTV3JhcHBlckZvck5vZGVJbldlYkZyYW1lLm1tCShyZXZpc2lvbiAyNDU1MTYpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9KU1dyYXBwZXJGb3JOb2RlSW5XZWJGcmFt
ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwg
SlNXcmFwcGVyRm9yTm9kZSkKICAgICB3ZWJWaWV3LmdldCgpLmZyYW1lTG9hZERlbGVnYXRlID0g
ZnJhbWVMb2FkRGVsZWdhdGUuZ2V0KCk7CiAgICAgV2ViRnJhbWUgKm1haW5GcmFtZSA9IHdlYlZp
ZXcuZ2V0KCkubWFpbkZyYW1lOwogICAgIFttYWluRnJhbWUgbG9hZEhUTUxTdHJpbmc6QCI8ZGl2
IGlkPVwidGFyZ2V0XCI8L2Rpdj4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91
dDpibGFuayJdXTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGls
KGRpZEZpbmlzaExvYWQpOwogICAgIERPTURvY3VtZW50ICpkb2N1bWVudCA9IHdlYlZpZXcuZ2V0
KCkubWFpbkZyYW1lRG9jdW1lbnQ7CiAgICAgRE9NTm9kZSAqdGFyZ2V0ID0gW2RvY3VtZW50IGdl
dEVsZW1lbnRCeUlkOkAidGFyZ2V0Il07IC8vIFRoaXMgc2NyaXB0IG9iamVjdCBpcyBpbiBzdGFu
ZGFyZCB3b3JsZC4KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTGVnYWN5
RHJhZ0FuZERyb3BUZXN0cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9MZWdhY3lEcmFnQW5kRHJvcFRlc3RzLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9MZWdhY3lEcmFnQW5kRHJvcFRlc3RzLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0yMzIsNyArMjMyLDcgQEAgc3RhdGljIFdlYlZpZXcgKndlYlZpZXdB
ZnRlclBlcmZvcm1pbmdEcgogICAgIH1dXTsKICAgICBbW2Rlc3RpbmF0aW9uIG1haW5GcmFtZV0g
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAiZnVsbC1wYWdlLWNvbnRlbnRlZGl0YWJsZSIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1d
XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAgIHJldHVybiBkZXN0aW5hdGlvbi5nZXQoKTsK
IH0KIApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTGltaXRUaXRsZVNpemUu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTGltaXRUaXRs
ZVNpemUubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0xpbWl0VGl0bGVTaXplLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIFRF
U1QoV2ViS2l0TGVnYWN5LCBMaW1pdFRpdGxlU2l6ZSkKICAgICBbW3dlYlZpZXcuZ2V0KCkgbWFp
bkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0KICAgICAgICAgVVJMRm9yUmVzb3VyY2U6QCJzZXQtbG9uZy10aXRsZSIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl1dXTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7
CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiB9CiAKIEBpbnRl
cmZhY2UgTGltaXRUaXRsZVNpemVUZXN0T2JzZXJ2ZXIgOiBOU09iamVjdApAQCAtOTEsNiArOTEs
NiBAQCBURVNUKFdlYktpdCwgTGltaXRUaXRsZVNpemUpCiAgICAgYXV0byBvYnNlcnZlciA9IGFk
b3B0TlMoW0xpbWl0VGl0bGVTaXplVGVzdE9ic2VydmVyIG5ld10pOwogICAgIFt3ZWJWaWV3IGFk
ZE9ic2VydmVyOm9ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJ0aXRsZSIgb3B0aW9uczpOU0tl
eVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6bmlsXTsKICAgICAKLSAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJndhaXRVbnRpbExvbmdUaXRsZVJlY2VpdmVkKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpydW5VbnRpbCh3YWl0VW50aWxMb25nVGl0bGVSZWNlaXZlZCk7CiAgICAgW3dl
YlZpZXcgcmVtb3ZlT2JzZXJ2ZXI6b2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAInRpdGxlIl07
CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Mb2FkSW52YWxpZFVSTFJl
cXVlc3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTG9h
ZEludmFsaWRVUkxSZXF1ZXN0Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9Mb2FkSW52YWxpZFVSTFJlcXVlc3QubW0JKHdvcmtpbmcgY29weSkK
QEAgLTc1LDcgKzc1LDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIExvYWRJbnZhbGlkVVJMUmVxdWVz
dAogCiAgICAgICAgIGRpZEZpbmlzaFRlc3QgPSBmYWxzZTsKICAgICAgICAgZGlkRmFpbFByb3Zp
c2lvbmFsTG9hZCA9IGZhbHNlOwotICAgICAgICBVdGlsOjpydW4oJmRpZEZpbmlzaFRlc3QpOwor
ICAgICAgICBydW5VbnRpbChkaWRGaW5pc2hUZXN0KTsKIAogICAgICAgICBFWFBFQ1RfRkFMU0Uo
ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk7CiAgICAgfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvTG9hZFdlYkFyY2hpdmUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvTG9hZFdlYkFyY2hpdmUubW0JKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0xvYWRXZWJBcmNoaXZlLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC04Miw3ICs4Miw3IEBAIFRFU1QoTG9hZFdlYkFyY2hpdmUsIEZhaWxOYXZpZ2F0
aW9uMSkKIAogICAgIG5hdmlnYXRpb25GYWlsID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07Ci0gICAg
VXRpbDo6cnVuKCZuYXZpZ2F0aW9uRmFpbCk7CisgICAgcnVuVW50aWwobmF2aWdhdGlvbkZhaWwp
OwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKGZpbmFsVVJMLCAiaGVsbG93b3JsZC53ZWJhcmNoaXZl
Iik7CiB9CkBAIC0xMDEsNyArMTAxLDcgQEAgVEVTVChMb2FkV2ViQXJjaGl2ZSwgRmFpbE5hdmln
YXRpb24yKQogCiAgICAgbmF2aWdhdGlvbkZhaWwgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKLSAg
ICBVdGlsOjpydW4oJm5hdmlnYXRpb25GYWlsKTsKKyAgICBydW5VbnRpbChuYXZpZ2F0aW9uRmFp
bCk7CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEoZmluYWxVUkwsICJoZWxsb3dvcmxkLndlYmFyY2hp
dmUiKTsKIH0KQEAgLTExNiw3ICsxMTYsNyBAQCBURVNUKExvYWRXZWJBcmNoaXZlLCBDbGllbnRO
YXZpZ2F0aW9uU3VjCiAKICAgICBuYXZpZ2F0aW9uQ29tcGxldGUgPSBmYWxzZTsKICAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0
KCldXTsKLSAgICBVdGlsOjpydW4oJm5hdmlnYXRpb25Db21wbGV0ZSk7CisgICAgcnVuVW50aWwo
bmF2aWdhdGlvbkNvbXBsZXRlKTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShmaW5hbFVSTCwgImhl
bGxvd29ybGQud2ViYXJjaGl2ZSIpOwogfQpAQCAtMTMxLDEyICsxMzEsMTIgQEAgVEVTVChMb2Fk
V2ViQXJjaGl2ZSwgQ2xpZW50TmF2aWdhdGlvblJlbAogCiAgICAgbmF2aWdhdGlvbkNvbXBsZXRl
ID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07Ci0gICAgVXRpbDo6cnVuKCZuYXZpZ2F0aW9uQ29tcGxl
dGUpOworICAgIHJ1blVudGlsKG5hdmlnYXRpb25Db21wbGV0ZSk7CiAgICAgRVhQRUNUX1dLX1NU
UkVRKGZpbmFsVVJMLCAiaGVsbG93b3JsZC53ZWJhcmNoaXZlIik7CiAKICAgICBuYXZpZ2F0aW9u
Q29tcGxldGUgPSBmYWxzZTsKICAgICBbd2ViVmlldyByZWxvYWRdOwotICAgIFV0aWw6OnJ1bigm
bmF2aWdhdGlvbkNvbXBsZXRlKTsKKyAgICBydW5VbnRpbChuYXZpZ2F0aW9uQ29tcGxldGUpOwog
ICAgIEVYUEVDVF9XS19TVFJFUShmaW5hbFVSTCwgIiIpOwogfQogCkBAIC0xNjAsMTIgKzE2MCwx
MiBAQCBURVNUKExvYWRXZWJBcmNoaXZlLCBEcmFnTmF2aWdhdGlvblN1Y2NlCiAKICAgICBuYXZp
Z2F0aW9uQ29tcGxldGUgPSBmYWxzZTsKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnNpbXBsZVVSTC5nZXQoKV1dOwotICAgIFV0aWw6OnJ1bigm
bmF2aWdhdGlvbkNvbXBsZXRlKTsKKyAgICBydW5VbnRpbChuYXZpZ2F0aW9uQ29tcGxldGUpOwog
ICAgIEVYUEVDVF9XS19TVFJFUShmaW5hbFVSTCwgInNpbXBsZS5odG1sIik7CiAKICAgICBuYXZp
Z2F0aW9uQ29tcGxldGUgPSBmYWxzZTsKICAgICBbc2ltdWxhdG9yIHJ1bkZyb206Q0dQb2ludE1h
a2UoMCwgMCkgdG86Q0dQb2ludE1ha2UoNTAsIDUwKV07Ci0gICAgVXRpbDo6cnVuKCZuYXZpZ2F0
aW9uQ29tcGxldGUpOworICAgIHJ1blVudGlsKG5hdmlnYXRpb25Db21wbGV0ZSk7CiAgICAgRVhQ
RUNUX1dLX1NUUkVRKGZpbmFsVVJMLCAiaGVsbG93b3JsZC53ZWJhcmNoaXZlIik7CiB9CiAKQEAg
LTE4OSwxNyArMTg5LDE3IEBAIFRFU1QoTG9hZFdlYkFyY2hpdmUsIERyYWdOYXZpZ2F0aW9uUmVs
b2EKIAogICAgIG5hdmlnYXRpb25Db21wbGV0ZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6c2ltcGxlVVJMLmdldCgpXV07Ci0g
ICAgVXRpbDo6cnVuKCZuYXZpZ2F0aW9uQ29tcGxldGUpOworICAgIHJ1blVudGlsKG5hdmlnYXRp
b25Db21wbGV0ZSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKGZpbmFsVVJMLCAic2ltcGxlLmh0bWwi
KTsKIAogICAgIG5hdmlnYXRpb25Db21wbGV0ZSA9IGZhbHNlOwogICAgIFtzaW11bGF0b3IgcnVu
RnJvbTpDR1BvaW50TWFrZSgwLCAwKSB0bzpDR1BvaW50TWFrZSg1MCwgNTApXTsKLSAgICBVdGls
OjpydW4oJm5hdmlnYXRpb25Db21wbGV0ZSk7CisgICAgcnVuVW50aWwobmF2aWdhdGlvbkNvbXBs
ZXRlKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoZmluYWxVUkwsICJoZWxsb3dvcmxkLndlYmFyY2hp
dmUiKTsKIAogICAgIG5hdmlnYXRpb25Db21wbGV0ZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IHJl
bG9hZF07Ci0gICAgVXRpbDo6cnVuKCZuYXZpZ2F0aW9uQ29tcGxldGUpOworICAgIHJ1blVudGls
KG5hdmlnYXRpb25Db21wbGV0ZSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKGZpbmFsVVJMLCAiIik7
CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL01lZGlhUGxheWJhY2tT
bGVlcEFzc2VydGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9NZWRpYVBsYXliYWNrU2xlZXBBc3NlcnRpb24ubW0JKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL01lZGlhUGxheWJhY2tTbGVlcEFzc2VydGlv
bi5tbQkod29ya2luZyBjb3B5KQpAQCAtMTY1LDI2ICsxNjUsMjYgQEAgVEVTVChXZWJLaXRMZWdh
Y3ksIE1lZGlhUGxheWJhY2tTbGVlcEFzcwogICAgICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3Qg
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJNZWRpYVBsYXliYWNrU2xlZXBBc3NlcnRpb24iIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKICAgICAg
ICAgW21haW5GcmFtZSBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKIAotICAgICAgICBVdGlsOjpydW4o
JmRpZEZpbmlzaExvYWQpOworICAgICAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICAg
ICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogCiAgICAgICAgIEVYUEVDVF9GQUxTRShoYXNBc3Nl
cnRpb25UeXBlKENGU1RSKCJQcmV2ZW50VXNlcklkbGVEaXNwbGF5U2xlZXAiKSkpOwogICAgICAg
ICBFWFBFQ1RfRkFMU0UoaGFzQXNzZXJ0aW9uVHlwZShDRlNUUigiUHJldmVudFVzZXJJZGxlU3lz
dGVtU2xlZXAiKSkpOwogCiAgICAgICAgIHNpbXVsYXRlS2V5RG93bih3aW5kb3cuZ2V0KCkpOwot
ICAgICAgICBVdGlsOjpydW4oJmRpZEJlZ2luUGxheWluZyk7CisgICAgICAgIHJ1blVudGlsKGRp
ZEJlZ2luUGxheWluZyk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUoaGFzQXNzZXJ0aW9uVHlwZShD
RlNUUigiUHJldmVudFVzZXJJZGxlRGlzcGxheVNsZWVwIikpKTsKICAgICAgICAgRVhQRUNUX0ZB
TFNFKGhhc0Fzc2VydGlvblR5cGUoQ0ZTVFIoIlByZXZlbnRVc2VySWRsZVN5c3RlbVNsZWVwIikp
KTsKIAogICAgICAgICBzaW11bGF0ZUtleURvd24od2luZG93LmdldCgpKTsKLSAgICAgICAgVXRp
bDo6cnVuKCZkaWRCZWdpblJlbW90ZVBsYXliYWNrKTsKKyAgICAgICAgcnVuVW50aWwoZGlkQmVn
aW5SZW1vdGVQbGF5YmFjayk7CiAKICAgICAgICAgRVhQRUNUX0ZBTFNFKGhhc0Fzc2VydGlvblR5
cGUoQ0ZTVFIoIlByZXZlbnRVc2VySWRsZURpc3BsYXlTbGVlcCIpKSk7CiAgICAgICAgIEVYUEVD
VF9UUlVFKGhhc0Fzc2VydGlvblR5cGUoQ0ZTVFIoIlByZXZlbnRVc2VySWRsZVN5c3RlbVNsZWVw
IikpKTsKIAogICAgICAgICBzaW11bGF0ZUtleURvd24od2luZG93LmdldCgpKTsKLSAgICAgICAg
VXRpbDo6cnVuKCZkaWRTdG9wUGxheWluZyk7CisgICAgICAgIHJ1blVudGlsKGRpZFN0b3BQbGF5
aW5nKTsKIAogICAgICAgICBFWFBFQ1RfRkFMU0UoaGFzQXNzZXJ0aW9uVHlwZShDRlNUUigiUHJl
dmVudFVzZXJJZGxlRGlzcGxheVNsZWVwIikpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKGhhc0Fz
c2VydGlvblR5cGUoQ0ZTVFIoIlByZXZlbnRVc2VySWRsZVN5c3RlbVNsZWVwIikpKTsKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL01lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJl
c291cmNlTG9hZERlbGVnYXRlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL01lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLm1t
CShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9NZW1v
cnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5
KQpAQCAtODEsNyArODEsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgTWVtb3J5Q2FjaGVEaXNhYmxl
V2l0CiAKICAgICBbW3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZSIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1d
XTsKIAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmlu
aXNoTG9hZCk7CiAgICAgCiAgICAgW3Bvb2wgZHJhaW5dOwogICAgIC8vIElmIHdlIGZpbmlzaGVk
IHdpdGhvdXQgY3Jhc2hpbmcsIHRoZSB0ZXN0IHBhc3NlZC4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL01lbW9yeUNhY2hlUHJ1bmVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9NZW1vcnlD
YWNoZVBydW5lV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0JKHJldmlzaW9uIDI0NTUxNikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL01lbW9yeUNhY2hlUHJ1bmVXaXRoaW5S
ZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtOTEsNyArOTEsNyBAQCBU
RVNUKFdlYktpdExlZ2FjeSwgRElTQUJMRURfTWVtb3J5Q2FjaGVQCiAKICAgICBbW3dlYlZpZXcx
LmdldCgpIG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiTWVtb3J5Q2FjaGVQcnVu
ZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwogCi0gICAgVXRpbDo6cnVuKCZk
aWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICAKICAgICBb
cG9vbCBkcmFpbl07CiAgICAgLy8gSWYgd2UgZmluaXNoZWQgd2l0aG91dCBjcmFzaGluZywgdGhl
IHRlc3QgcGFzc2VkLgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvTmF2aWdh
dG9yTGFuZ3VhZ2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvTmF2aWdhdG9yTGFuZ3VhZ2UubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL05hdmlnYXRvckxhbmd1YWdlLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC05OCw3ICs5OCw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBOYXZpZ2F0b3JMYW5ndWFnZSkKICAg
ICB3ZWJWaWV3LmdldCgpLmZyYW1lTG9hZERlbGVnYXRlID0gZnJhbWVMb2FkRGVsZWdhdGUuZ2V0
KCk7CiAgICAgW1t3ZWJWaWV3LmdldCgpIG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl1d
XTsKIAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmlu
aXNoTG9hZCk7CiAgICAgZm9yIChOU0FycmF5ICp0ZXN0IGluIHRlc3RzKQogICAgICAgICBFWFBF
Q1RfV0tfU1RSRVEoW3Rlc3Qgb2JqZWN0QXRJbmRleDoxXSwgbGFuZ3VhZ2VGb3JTeXN0ZW1MYW5n
dWFnZSh3ZWJWaWV3LmdldCgpLCBbdGVzdCBvYmplY3RBdEluZGV4OjBdKSk7CiB9CkBAIC0xMjUs
NyArMTI1LDcgQEAgVEVTVChXS1dlYlZpZXcsIE5hdmlnYXRvckxhbmd1YWdlKQogCiAgICAgcnVu
VGVzdCgwKTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Ob1BvbGljeURl
bGVnYXRlUmVzcG9uc2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvTm9Qb2xpY3lEZWxlZ2F0ZVJlc3BvbnNlLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Ob1BvbGljeURlbGVnYXRlUmVzcG9uc2UubW0J
KHdvcmtpbmcgY29weSkKQEAgLTgyLDcgKzgyLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIE5vRGVj
aWRlUG9saWN5Rm9yTUlNRQogICAgIHdlYlZpZXcuZ2V0KCkucG9saWN5RGVsZWdhdGUgPSBkZWxl
Z2F0ZS5nZXQoKTsKICAgICBbW3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJ2ZXJib3NlTWFya3VwIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwogCi0gICAgVXRpbDo6cnVuKCZkaWRG
aW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKIAogICAgIEVYUEVDVF9U
UlVFKGRpZE5hdmlnYXRpb25SZXNwb25zZUNoZWNrKTsKIH0KQEAgLTk2LDcgKzk2LDcgQEAgVEVT
VChXZWJLaXRMZWdhY3ksIE5vRGVjaWRlUG9saWN5Rm9yTmF2aQogICAgIHdlYlZpZXcuZ2V0KCku
cG9saWN5RGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKICAgICBbW3dlYlZpZXcuZ2V0KCkgbWFp
bkZyYW1lXSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ2ZXJib3NlTWFya3VwIiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwog
Ci0gICAgVXRpbDo6cnVuKCZkaWROYXZpZ2F0aW9uQWN0aW9uQ2hlY2spOworICAgIHJ1blVudGls
KGRpZE5hdmlnYXRpb25BY3Rpb25DaGVjayk7CiAKICAgICBFWFBFQ1RfRkFMU0UoZGlkU3RhcnRQ
cm92aXNpb25hbExvYWQpOwogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
UGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1BhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93
Q2hhbmdlcy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRv
d0NoYW5nZQogICAgIGRpZEdldFBhZ2VTaWduYWxUb0NvbnRpbnVlID0gZmFsc2U7CiAgICAgW3dp
bmRvdy5nZXQoKSBtYWtlS2V5QW5kT3JkZXJGcm9udDpuaWxdOwogICAgIEVYUEVDVF9UUlVFKFt3
aW5kb3cuZ2V0KCkgaXNWaXNpYmxlXSk7Ci0gICAgVXRpbDo6cnVuKCZkaWRHZXRQYWdlU2lnbmFs
VG9Db250aW51ZSk7CisgICAgcnVuVW50aWwoZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUpOwog
ICAgIEVYUEVDVF9KU19FUSh2aWV3LCAiZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlIiwgInZpc2li
bGUiKTsKICAgICBFWFBFQ1RfSlNfRVEodmlldywgImRvY3VtZW50LmhpZGRlbiIsICJmYWxzZSIp
OwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRv
d0NoYW5nZQogICAgIGlzV2FpdGluZ0ZvclBhZ2VTaWduYWxUb0NvbnRpbnVlID0gdHJ1ZTsKICAg
ICBkaWRHZXRQYWdlU2lnbmFsVG9Db250aW51ZSA9IGZhbHNlOwogICAgIFt3aW5kb3cuZ2V0KCkg
bWluaWF0dXJpemU6bmlsXTsKLSAgICBVdGlsOjpydW4oJmRpZEdldFBhZ2VTaWduYWxUb0NvbnRp
bnVlKTsKKyAgICBydW5VbnRpbChkaWRHZXRQYWdlU2lnbmFsVG9Db250aW51ZSk7CiAgICAgRVhQ
RUNUX0pTX0VRKHZpZXcsICJkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUiLCAiaGlkZGVuIik7CiAg
ICAgRVhQRUNUX0pTX0VRKHZpZXcsICJkb2N1bWVudC5oaWRkZW4iLCAidHJ1ZSIpOwogCkBAIC0x
NTMsNyArMTUzLDcgQEAgdm9pZCBQYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZQog
ICAgIGlzV2FpdGluZ0ZvclBhZ2VTaWduYWxUb0NvbnRpbnVlID0gdHJ1ZTsKICAgICBkaWRHZXRQ
YWdlU2lnbmFsVG9Db250aW51ZSA9IGZhbHNlOwogICAgIFt3aW5kb3cuZ2V0KCkgZGVtaW5pYXR1
cml6ZTpuaWxdOwotICAgIFV0aWw6OnJ1bigmZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUpOwor
ICAgIHJ1blVudGlsKGRpZEdldFBhZ2VTaWduYWxUb0NvbnRpbnVlKTsKICAgICBFWFBFQ1RfSlNf
RVEodmlldywgImRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSIsICJ2aXNpYmxlIik7CiAgICAgRVhQ
RUNUX0pTX0VRKHZpZXcsICJkb2N1bWVudC5oaWRkZW4iLCAiZmFsc2UiKTsKIApAQCAtMTY0LDcg
KzE2NCw3IEBAIHZvaWQgUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2UKICAgICBF
WFBFQ1RfTlVMTChbdmlldyB3aW5kb3ddKTsKICAgICBFWFBFQ1RfTlVMTChbdmlldyBzdXBlcnZp
ZXddKTsKICAgICBFWFBFQ1RfVFJVRShbd2luZG93LmdldCgpIGlzVmlzaWJsZV0pOwotICAgIFV0
aWw6OnJ1bigmZGlkR2V0UGFnZVNpZ25hbFRvQ29udGludWUpOworICAgIHJ1blVudGlsKGRpZEdl
dFBhZ2VTaWduYWxUb0NvbnRpbnVlKTsKICAgICBFWFBFQ1RfSlNfRVEodmlldywgImRvY3VtZW50
LnZpc2liaWxpdHlTdGF0ZSIsICJoaWRkZW4iKTsKICAgICBFWFBFQ1RfSlNfRVEodmlldywgImRv
Y3VtZW50LmhpZGRlbiIsICJ0cnVlIik7CiB9CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9SZW5kZXJlZEltYWdlRnJvbURPTU5vZGUubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvUmVuZGVyZWRJbWFnZUZyb21ET01Ob2RlLm1tCShyZXZp
c2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9SZW5kZXJlZElt
YWdlRnJvbURPTU5vZGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgVEVTVChX
ZWJLaXRMZWdhY3ksIFJlbmRlcmVkSW1hZ2VGcm9tRE9NTgogICAgIFt3ZWJWaWV3IHNldEZyYW1l
TG9hZERlbGVnYXRlOmZyYW1lTG9hZERlbGVnYXRlLmdldCgpXTsKICAgICBbW3dlYlZpZXcgbWFp
bkZyYW1lXSBsb2FkSFRNTFN0cmluZzpAIjxwPjxzcGFuIGlkPVwidDFcIiBzdHlsZT1cInZlcnRp
Y2FsLWFsaWduOiBib3R0b207XCI+U3Bhbjwvc3Bhbj48L3A+PHA+PHNwYW4gaWQ9XCJ0MlwiPlNw
YW48L3NwYW4+PC9wPiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5r
Il1dOwogCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRG
aW5pc2hMb2FkKTsKIAogICAgIERPTURvY3VtZW50ICpkb2N1bWVudCA9IFt3ZWJWaWV3IG1haW5G
cmFtZURvY3VtZW50XTsKICAgICBOU0ltYWdlICppbWFnZTEgPSBbW2RvY3VtZW50IGdldEVsZW1l
bnRCeUlkOkAidDEiXSByZW5kZXJlZEltYWdlXTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1JlbmRlcmVkSW1hZ2VGcm9tRE9NUmFuZ2UubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvUmVuZGVyZWRJbWFnZUZyb21ET01SYW5nZS5tbQko
cmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvUmVuZGVy
ZWRJbWFnZUZyb21ET01SYW5nZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBU
RVNUKFdlYktpdExlZ2FjeSwgUmVuZGVyZWRJbWFnZUZyb21ET01SCiAgICAgd2ViVmlldy5nZXQo
KS5mcmFtZUxvYWREZWxlZ2F0ZSA9IGZyYW1lTG9hZERlbGVnYXRlLmdldCgpOwogICAgIFt3ZWJW
aWV3LmdldCgpLm1haW5GcmFtZSBsb2FkSFRNTFN0cmluZzpAIjxkaXYgc3R5bGU9XCJ3aWR0aDog
MTAwcHg7XCI+TG9yZW0gPHNwYW4gaWQ9XCJ0YXJnZXRcIj5pcHN1bSBkb2xvcjwvc3Bhbj4gc2l0
IGFtZXQ8L2Rpdj4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJd
XTsKIAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmlu
aXNoTG9hZCk7CiAKICAgICBET01Eb2N1bWVudCAqZG9jdW1lbnQgPSB3ZWJWaWV3LmdldCgpLm1h
aW5GcmFtZURvY3VtZW50OwogICAgIERPTVJhbmdlICpyYW5nZSA9IFtkb2N1bWVudCBjcmVhdGVS
YW5nZV07CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TZXREb2N1bWVudFVS
SS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TZXREb2N1
bWVudFVSSS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvU2V0RG9jdW1lbnRVUkkubW0JKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAg
VEVTVChXZWJLaXRMZWdhY3ksIFNldERvY3VtZW50VVJJVGVzdEZpbAogICAgIFJldGFpblB0cjxT
ZXREb2N1bWVudFVSSVRlc3Q+IHRlc3RDb250cm9sbGVyID0gYWRvcHROUyhbU2V0RG9jdW1lbnRV
UklUZXN0IG5ld10pOwogICAgIHdlYlZpZXcuZ2V0KCkuZnJhbWVMb2FkRGVsZWdhdGUgPSB0ZXN0
Q29udHJvbGxlci5nZXQoKTsKICAgICBbW3dlYlZpZXcuZ2V0KCkgbWFpbkZyYW1lXSBsb2FkUmVx
dWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJTZXREb2N1bWVudFVSSSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKLSAgICBVdGlsOjpydW4o
JmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIGRpZEZp
bmlzaExvYWQgPSBmYWxzZTsKICAgICBET01Eb2N1bWVudCAqZG9jdW1lbnQgPSB3ZWJWaWV3Lmdl
dCgpLm1haW5GcmFtZURvY3VtZW50OwogCkBAIC03MCw3ICs3MCw3IEBAIFRFU1QoV2ViS2l0TGVn
YWN5LCBTZXREb2N1bWVudFVSSVRlc3RVUkwKICAgICBSZXRhaW5QdHI8U2V0RG9jdW1lbnRVUklU
ZXN0PiB0ZXN0Q29udHJvbGxlciA9IGFkb3B0TlMoW1NldERvY3VtZW50VVJJVGVzdCBuZXddKTsK
ICAgICB3ZWJWaWV3LmdldCgpLmZyYW1lTG9hZERlbGVnYXRlID0gdGVzdENvbnRyb2xsZXIuZ2V0
KCk7CiAgICAgW1t3ZWJWaWV3LmdldCgpIG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAiU2V0RG9jdW1lbnRVUkkiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJU
ZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2Fk
KTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKICAgICBkaWRGaW5pc2hMb2FkID0gZmFs
c2U7CiAgICAgRE9NRG9jdW1lbnQgKmRvY3VtZW50ID0gd2ViVmlldy5nZXQoKS5tYWluRnJhbWVE
b2N1bWVudDsKIApAQCAtOTAsNyArOTAsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgU2V0RG9jdW1l
bnRVUklUZXN0U3RyCiAgICAgUmV0YWluUHRyPFNldERvY3VtZW50VVJJVGVzdD4gdGVzdENvbnRy
b2xsZXIgPSBhZG9wdE5TKFtTZXREb2N1bWVudFVSSVRlc3QgbmV3XSk7CiAgICAgd2ViVmlldy5n
ZXQoKS5mcmFtZUxvYWREZWxlZ2F0ZSA9IHRlc3RDb250cm9sbGVyLmdldCgpOwogICAgIFtbd2Vi
Vmlldy5nZXQoKSBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIlNldERvY3VtZW50
VVJJIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXV1dOwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50
aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogICAgIERPTURv
Y3VtZW50ICpkb2N1bWVudCA9IHdlYlZpZXcuZ2V0KCkubWFpbkZyYW1lRG9jdW1lbnQ7CiAKQEAg
LTEwNiw3ICsxMDYsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgU2V0RG9jdW1lbnRVUklUZXN0TnVs
CiAgICAgUmV0YWluUHRyPFNldERvY3VtZW50VVJJVGVzdD4gdGVzdENvbnRyb2xsZXIgPSBhZG9w
dE5TKFtTZXREb2N1bWVudFVSSVRlc3QgbmV3XSk7CiAgICAgd2ViVmlldy5nZXQoKS5mcmFtZUxv
YWREZWxlZ2F0ZSA9IHRlc3RDb250cm9sbGVyLmdldCgpOwogICAgIFtbd2ViVmlldy5nZXQoKSBt
YWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIlNldERvY3VtZW50VVJJIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1d
OwotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNo
TG9hZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogICAgIERPTURvY3VtZW50ICpkb2N1
bWVudCA9IHdlYlZpZXcuZ2V0KCkubWFpbkZyYW1lRG9jdW1lbnQ7CiAKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL1NpbXBsaWZ5TWFya3VwLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1NpbXBsaWZ5TWFya3VwLm1tCShyZXZpc2lvbiAy
NDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TaW1wbGlmeU1hcmt1cC5t
bQkod29ya2luZyBjb3B5KQpAQCAtNTYsMTMgKzU2LDEzIEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBT
aW1wbGlmeU1hcmt1cFRlc3QpCiAgICAgd2ViVmlldzEuZ2V0KCkuZnJhbWVMb2FkRGVsZWdhdGUg
PSB0ZXN0Q29udHJvbGxlci5nZXQoKTsKICAgICBbW3dlYlZpZXcxLmdldCgpIG1haW5GcmFtZV0g
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAidmVyYm9zZU1hcmt1cCIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKICAgICAKLSAg
ICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQp
OwogICAgIGRpZEZpbmlzaExvYWQgPSBmYWxzZTsKIAogICAgIHdlYlZpZXcyLmdldCgpLmZyYW1l
TG9hZERlbGVnYXRlID0gdGVzdENvbnRyb2xsZXIuZ2V0KCk7CiAgICAgW1t3ZWJWaWV3Mi5nZXQo
KSBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInZlcmJvc2VNYXJrdXAiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
XV07CiAgICAgCi0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChk
aWRGaW5pc2hMb2FkKTsKICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CiAgICAgd2hpbGUgKCFb
W1tbd2ViVmlldzEgbWFpbkZyYW1lRG9jdW1lbnRdIGJvZHldIGlubmVySFRNTF0gaXNFcXVhbFRv
U3RyaW5nOltbW3dlYlZpZXcyIG1haW5GcmFtZURvY3VtZW50XSBib2R5XSBpbm5lckhUTUxdXSkK
ICAgICAgICAgVXRpbDo6c3BpblJ1bkxvb3AoMSk7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9TdGFydExvYWRJbkRpZEZhaWxQcm92aXNpb25hbExvYWQubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3RhcnRMb2FkSW5EaWRGYWlsUHJv
dmlzaW9uYWxMb2FkLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9TdGFydExvYWRJbkRpZEZhaWxQcm92aXNpb25hbExvYWQubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTYzLDcgKzYzLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIFN0YXJ0TG9hZEluRGlk
RmFpbFBybwogCiAgICAgLy8gU3RhcnQgYW5vdGhlciBsb2FkIGJlZm9yZSB0aGUgZmlyc3Qgb25l
IGhhcyBhIGNoYW5jZSB0byBjb21wbGV0ZS4gVGhpcyBzaG91bGQgY2FuY2VsIHRoZSBwcmV2aW91
cyBsb2FkIGFuZCBjYWxsIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3IuCiAgICAgW1t3
ZWJWaWV3IG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlMiIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1d
XTsKLSAgICBVdGlsOjpydW4oJmZpbmlzaGVkKTsKKyAgICBydW5VbnRpbChmaW5pc2hlZCk7CiAg
ICAgRVhQRUNUX1RSVUUoZGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk7CiAKICAgICBFWFBFQ1RfV0tf
U1RSRVEoW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUyIiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXSBhYnNvbHV0ZVN0cmluZ10sIHdlYlZpZXcuZ2V0KCkubWFpbkZyYW1lVVJMKTsKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1N0b3BMb2FkaW5nRnJvbURpZEZpbmlzaExv
YWRpbmcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3Rv
cExvYWRpbmdGcm9tRGlkRmluaXNoTG9hZGluZy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3RvcExvYWRpbmdGcm9tRGlkRmluaXNoTG9hZGlu
Zy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwg
U3RvcExvYWRpbmdGcm9tRGlkRmluCiAgICAgICAgIGF1dG8gcmVzb3VyY2VMb2FkRGVsZWdhdGUg
PSBhZG9wdE5TKFtbU3RvcExvYWRpbmdGcm9tRGlkRmluaXNoTG9hZGluZ0RlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CiAgICAgICAgIHdlYlZpZXcuZ2V0KCkucmVzb3VyY2VMb2FkRGVsZWdhdGUgPSBy
ZXNvdXJjZUxvYWREZWxlZ2F0ZS5nZXQoKTsKICAgICAgICAgW3dlYlZpZXcuZ2V0KCkubWFpbkZy
YW1lIGxvYWRIVE1MU3RyaW5nOkAiSGVsbG8sIFdvcmxkISIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAIiJdXTsKLSAgICAgICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgICAgIHJ1
blVudGlsKGZpbmlzaGVkKTsKICAgICB9CiAgICAgLy8gTm8gY3Jhc2ggbWVhbnMgdGhlIHRlc3Qg
cGFzc2VkLgogfQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3RvcExvYWRp
bmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL1N0b3BMb2FkaW5nRnJvbURpZFJlY2VpdmVSZXNwb25zZS5tbQkocmV2
aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU3RvcExvYWRp
bmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3
IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBTdG9wTG9hZGluZ0Zyb21EaWRSZWMKIAogICAgIFtbd2Vi
Vmlldy5nZXQoKSBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIlN0b3BMb2FkaW5n
RnJvbURpZFJlY2VpdmVSZXNwb25zZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dXTsKIAotICAgIFV0aWw6OnJ1bigmZGlkRmlu
aXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgCiAgICAgW3Bvb2wg
ZHJhaW5dOwogICAgIC8vIElmIHdlIGZpbmlzaGVkIHdpdGhvdXQgY3Jhc2hpbmcsIHRoZSB0ZXN0
IHBhc3NlZC4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dLV2ViVmlld01h
Y0VkaXRpbmdUZXN0cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9XS1dlYlZpZXdNYWNFZGl0aW5nVGVzdHMubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dLV2ViVmlld01hY0VkaXRpbmdUZXN0cy5tbQko
d29ya2luZyBjb3B5KQpAQCAtOTIsNyArOTIsNyBAQCBURVNUKFdLV2ViVmlld01hY0VkaXRpbmdU
ZXN0cywgRG91YmxlQ2xpCiAgICAgICAgIGZpbmlzaGVkU2VsZWN0aW5nVGV4dCA9IHRydWU7CiAg
ICAgfV07CiAgICAgW3dlYlZpZXcgc2VuZENsaWNrc0F0UG9pbnQ6TlNNYWtlUG9pbnQoMjAwLCAy
MDApIG51bWJlck9mQ2xpY2tzOjJdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmlu
aXNoZWRTZWxlY3RpbmdUZXh0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChmaW5pc2hl
ZFNlbGVjdGluZ1RleHQpOwogCiAgICAgTlNTdHJpbmcgKnNlbGVjdGVkVGV4dCA9IFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0
KDApLnRvU3RyaW5nKCkiXTsKICAgICBFWFBFQ1RfU1RSRVEoIkhlbGxvIiwgc2VsZWN0ZWRUZXh0
LlVURjhTdHJpbmcpOwpAQCAtMTMzLDcgKzEzMyw3IEBAIFRFU1QoV0tXZWJWaWV3TWFjRWRpdGlu
Z1Rlc3RzLCBEb05vdENyYXMKICAgICAgICAgfTsKICAgICB9CiAKLSAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoaXNEb25l
KTsKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dlYlNjcmlwdE9iamVjdERlc2NyaXB0aW9uLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dlYlNjcmlwdE9iamVjdERlc2NyaXB0aW9u
Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9X
ZWJTY3JpcHRPYmplY3REZXNjcmlwdGlvbi5tbQkod29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgs
NyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV2ViU2NyaXB0T2JqZWN0RGVzY3JpCiAgICAgW1t3ZWJW
aWV3LmdldCgpIG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdCiAgICAgICAgIFVSTEZvclJlc291cmNlOkAiV2Vi
U2NyaXB0T2JqZWN0RGVzY3JpcHRpb24iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rv
cnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CiAKLSAgICBVdGlsOjpydW4oJmRpZEZp
bmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIGRpZEZpbmlzaExv
YWQgPSBmYWxzZTsKICAgICBmYWlsZWRPYmpDRGVzY3JpcHRpb24gPSBmYWxzZTsKIApJbmRleDog
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0Nsb3NlSW5zaWRlRGlkRmluaXNo
TG9hZEZvckZyYW1lLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL1dlYlZpZXdDbG9zZUluc2lkZURpZEZpbmlzaExvYWRGb3JGcmFtZS5tbQkocmV2aXNpb24g
MjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0Nsb3NlSW5z
aWRlRGlkRmluaXNoTG9hZEZvckZyYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3
IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBXZWJWaWV3Q2xvc2VJbnNpZGVEaWQKICAgICAgICAgd2Vi
Vmlldy5nZXQoKS5mcmFtZUxvYWREZWxlZ2F0ZSA9IGZyYW1lTG9hZERlbGVnYXRlLmdldCgpOwog
ICAgICAgICBbd2ViVmlldy5nZXQoKS5tYWluRnJhbWUgbG9hZEhUTUxTdHJpbmc6QCI8aHRtbD48
L2h0bWw+IiBiYXNlVVJMOm5pbF07CiAKLSAgICAgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2Fk
KTsKKyAgICAgICAgcnVuVW50aWwoZGlkRmluaXNoTG9hZCk7CiAgICAgfQogfQogCkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3RGlkQ3JlYXRlSmF2YVNjcmlwdENv
bnRleHQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2Vi
Vmlld0RpZENyZWF0ZUphdmFTY3JpcHRDb250ZXh0Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3RGlkQ3JlYXRlSmF2YVNjcmlwdENv
bnRleHQubW0JKHdvcmtpbmcgY29weSkKQEAgLTE1OCw3ICsxNTgsNyBAQCBURVNUKFdlYktpdExl
Z2FjeSwgRGlkQ3JlYXRlSmF2YVNjcmlwdENvCiAgICAgICAgIE5TVVJMICphYm91dEJsYW5rVVJM
ID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJdOwogCiAgICAgICAgIFttYWlu
RnJhbWUgbG9hZEhUTUxTdHJpbmc6Ym9keVN0cmluZyBiYXNlVVJMOmFib3V0QmxhbmtVUkxdOwot
ICAgICAgICBVdGlsOjpydW4oJmRpZENvbXBsZXRlVGVzdFN1Y2Nlc3NmdWxseSk7CisgICAgICAg
IHJ1blVudGlsKGRpZENvbXBsZXRlVGVzdFN1Y2Nlc3NmdWxseSk7CiAgICAgfQogfQogCkBAIC0x
ODEsNyArMTgxLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIERpZENyZWF0ZUphdmFTY3JpcHRDbwog
ICAgICAgICBOU1VSTCAqYWJvdXRCbGFua1VSTCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAiYWJv
dXQ6YmxhbmsiXTsKIAogICAgICAgICBbbWFpbkZyYW1lIGxvYWRIVE1MU3RyaW5nOmJvZHlTdHJp
bmcgYmFzZVVSTDphYm91dEJsYW5rVVJMXTsKLSAgICAgICAgVXRpbDo6cnVuKCZkaWRDYWxsV2lu
ZG93Q2FsbGJhY2spOworICAgICAgICBydW5VbnRpbChkaWRDYWxsV2luZG93Q2FsbGJhY2spOwog
ICAgIH0KIH0KIApAQCAtMjA1LDcgKzIwNSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBEaWRDcmVh
dGVKYXZhU2NyaXB0Q28KICAgICAgICAgTlNVUkwgKmFib3V0QmxhbmtVUkwgPSBbTlNVUkwgVVJM
V2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl07CiAKICAgICAgICAgW21haW5GcmFtZSBsb2FkSFRN
TFN0cmluZzpib2R5U3RyaW5nIGJhc2VVUkw6YWJvdXRCbGFua1VSTF07Ci0gICAgICAgIFV0aWw6
OnJ1bigmZGlkQ29tcGxldGVUZXN0U3VjY2Vzc2Z1bGx5KTsKKyAgICAgICAgcnVuVW50aWwoZGlk
Q29tcGxldGVUZXN0U3VjY2Vzc2Z1bGx5KTsKICAgICB9CiB9CiAKQEAgLTIzMSw3ICsyMzEsNyBA
QCBURVNUKFdlYktpdExlZ2FjeSwgRGlkQ3JlYXRlSmF2YVNjcmlwdENvCiAgICAgICAgIE5TVVJM
ICphYm91dEJsYW5rVVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJdOwog
CiAgICAgICAgIFttYWluRnJhbWUgbG9hZEhUTUxTdHJpbmc6Ym9keVN0cmluZyBiYXNlVVJMOmFi
b3V0QmxhbmtVUkxdOwotICAgICAgICBVdGlsOjpydW4oJmRpZEZpbmRNeUN1c3RvbVByb3BlcnR5
KTsKKyAgICAgICAgcnVuVW50aWwoZGlkRmluZE15Q3VzdG9tUHJvcGVydHkpOwogICAgIH0KIH0K
IApAQCAtMjU5LDcgKzI1OSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBEaWRDcmVhdGVKYXZhU2Ny
aXB0Q28KICAgICAgICAgTlNVUkwgKmFib3V0QmxhbmtVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAImFib3V0OmJsYW5rIl07CiAKICAgICAgICAgW21haW5GcmFtZSBsb2FkSFRNTFN0cmluZzpi
b2R5U3RyaW5nIGJhc2VVUkw6YWJvdXRCbGFua1VSTF07Ci0gICAgICAgIFV0aWw6OnJ1bigmZGlk
RmluZE15Q3VzdG9tUHJvcGVydHkpOworICAgICAgICBydW5VbnRpbChkaWRGaW5kTXlDdXN0b21Q
cm9wZXJ0eSk7CiAgICAgfQogfQogCkBAIC0yODAsMTMgKzI4MCwxMyBAQCBURVNUKFdlYktpdExl
Z2FjeSwgRGlkQ3JlYXRlSmF2YVNjcmlwdENvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2l0aEV4dGVuc2lvbjpAImh0bWwiIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOwogICAgICAgICBbbWFpbkZyYW1lIGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6dXJsMV1dOwotICAgICAgICBVdGlsOjpydW4oJmRpZEluc2Vy
dE15Q3VzdG9tUHJvcGVydHkpOworICAgICAgICBydW5VbnRpbChkaWRJbnNlcnRNeUN1c3RvbVBy
b3BlcnR5KTsKIAogICAgICAgICBOU1VSTCAqdXJsMiA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJKU0NvbnRleHRCYWNrRm9yd2FyZENhY2hlMiIgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogICAgICAgICBbbWFpbkZyYW1lIGxv
YWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dXJsMl1dOwotICAgICAgICBV
dGlsOjpydW4oJmRpZENvbXBsZXRlVGVzdFN1Y2Nlc3NmdWxseSk7CisgICAgICAgIHJ1blVudGls
KGRpZENvbXBsZXRlVGVzdFN1Y2Nlc3NmdWxseSk7CiAKICAgICAgICAgZGlkQ29tcGxldGVUZXN0
U3VjY2Vzc2Z1bGx5ID0gZmFsc2U7CiAgICAgICAgIFtbbWFpbkZyYW1lIGphdmFTY3JpcHRDb250
ZXh0XSBldmFsdWF0ZVNjcmlwdDoKQEAgLTMyNSw3ICszMjUsNyBAQCBURVNUKFdlYktpdExlZ2Fj
eSwgUmVwb3J0RXhjZXB0aW9uVGVzdCkKICAgICAgICAgTlNVUkwgKmFib3V0QmxhbmtVUkwgPSBb
TlNVUkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl07CiAgICAgICAgIAogICAgICAgICBb
bWFpbkZyYW1lIGxvYWRIVE1MU3RyaW5nOmJvZHlTdHJpbmcgYmFzZVVSTDphYm91dEJsYW5rVVJM
XTsKLSAgICAgICAgVXRpbDo6cnVuKCZkaWRSZXBvcnRFeGNlcHRpb24pOworICAgICAgICBydW5V
bnRpbChkaWRSZXBvcnRFeGNlcHRpb24pOwogICAgIH0KIH0KIApJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3RGlkUmVt
b3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1t
CSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBEaWRS
ZW1vdmVGcmFtZUZyb21IaWUKICAgICBOU1VSTCAqYWJvdXRCbGFua1VSTCA9IFtOU1VSTCBVUkxX
aXRoU3RyaW5nOkAiYWJvdXQ6YmxhbmsiXTsKIAogICAgIFttYWluRnJhbWUgbG9hZEhUTUxTdHJp
bmc6Ym9keVdpdGhJRnJhbWVTdHJpbmcgYmFzZVVSTDphYm91dEJsYW5rVVJMXTsKLSAgICBVdGls
OjpydW4oJmRpZEZpbmlzaExvYWQpOworICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAg
IAogICAgIEVYUEVDVF9GQUxTRShkaWRSZW1vdmVGcmFtZSk7CiAgICAgW3dlYlZpZXcuZ2V0KCkg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEZyb21TdHJpbmc6QCJkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUnKSkiXTsKQEAgLTcyLDcg
KzcyLDcgQEAgVEVTVChXZWJLaXRMZWdhY3ksIERpZFJlbW92ZUZyYW1lRnJvbUhpZQogICAgIGRp
ZFJlbW92ZUZyYW1lID0gZmFsc2U7CiAKICAgICBbbWFpbkZyYW1lIGxvYWRIVE1MU3RyaW5nOmJv
ZHlXaXRoSUZyYW1lU3RyaW5nIGJhc2VVUkw6YWJvdXRCbGFua1VSTF07Ci0gICAgVXRpbDo6cnVu
KCZkaWRGaW5pc2hMb2FkKTsKKyAgICBydW5VbnRpbChkaWRGaW5pc2hMb2FkKTsKIAogICAgIC8v
IFRoZSBkZWxlZ2F0ZSBtZXRob2QgaXMgbm90IGNhbGxlZCB3aGVuIHRoZSBmcmFtZSBpcyByZW1v
dmVkIGR1ZSB0byBuYXZpZ2F0aW9uIGluIGFuIGFuY2VzdG9yIGZyYW1lLgogICAgIEVYUEVDVF9G
QUxTRShkaWRSZW1vdmVGcmFtZSk7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9XZWJWaWV3SWNvbkxvYWRpbmcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvV2ViVmlld0ljb25Mb2FkaW5nLm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XZWJWaWV3SWNvbkxvYWRpbmcubW0JKHdvcmtp
bmcgY29weSkKQEAgLTE3Miw3ICsxNzIsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgSWNvbkxvYWRp
bmdEZWxlZ2F0ZURlCiAgICAgICAgIHdlYlZpZXcuZ2V0KCkuZnJhbWVMb2FkRGVsZWdhdGUgPSBm
cmFtZUxvYWREZWxlZ2F0ZS5nZXQoKTsKICAgICAgICAgW3dlYlZpZXcuZ2V0KCkubWFpbkZyYW1l
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJodHRwOi8vdGVzdHNlcnZlci8xL21haW4iXV1dOwogCi0gICAgICAgIFV0aWw6OnJ1
bigmbWVzc2FnZVJlY2VpdmVkKTsKKyAgICAgICAgcnVuVW50aWwobWVzc2FnZVJlY2VpdmVkKTsK
IAogICAgICAgICBFWFBFQ1RfVFJVRShbW2ZyYW1lTG9hZERlbGVnYXRlLT5yZWNlaXZlZEljb24u
Z2V0KCkgVElGRlJlcHJlc2VudGF0aW9uXSBpc0VxdWFsOltpbWFnZUZyb21EYXRhKGRlZmF1bHRG
YXZpY29uRGF0YSgpKSBUSUZGUmVwcmVzZW50YXRpb25dXSk7CiAgICAgICAgIEVYUEVDVF9UUlVF
KFtbd2ViVmlldy5nZXQoKS5tYWluRnJhbWVJY29uIFRJRkZSZXByZXNlbnRhdGlvbl0gaXNFcXVh
bDpbaW1hZ2VGcm9tRGF0YShkZWZhdWx0RmF2aWNvbkRhdGEoKSkgVElGRlJlcHJlc2VudGF0aW9u
XV0pOwpAQCAtMTg1LDcgKzE4NSw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBJY29uTG9hZGluZ0Rl
bGVnYXRlRGUKICAgICAgICAgY3VycmVudE1haW5IVE1MID0gY3VzdG9tRmF2aWNvbkhUTUw7CiAg
ICAgICAgIFt3ZWJWaWV3LmdldCgpLm1haW5GcmFtZSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL3Rlc3RzZXJ2ZXIv
Mi9tYWluIl1dXTsKIAotICAgICAgICBVdGlsOjpydW4oJm1lc3NhZ2VSZWNlaXZlZCk7CisgICAg
ICAgIHJ1blVudGlsKG1lc3NhZ2VSZWNlaXZlZCk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUoW1tm
cmFtZUxvYWREZWxlZ2F0ZS0+cmVjZWl2ZWRJY29uLmdldCgpIFRJRkZSZXByZXNlbnRhdGlvbl0g
aXNFcXVhbDpbaW1hZ2VGcm9tRGF0YShjdXN0b21GYXZpY29uRGF0YSgpKSBUSUZGUmVwcmVzZW50
YXRpb25dXSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKFtbd2ViVmlldy5nZXQoKS5tYWluRnJhbWVJ
Y29uIFRJRkZSZXByZXNlbnRhdGlvbl0gaXNFcXVhbDpbaW1hZ2VGcm9tRGF0YShjdXN0b21GYXZp
Y29uRGF0YSgpKSBUSUZGUmVwcmVzZW50YXRpb25dXSk7CkBAIC0yMTMsNyArMjEzLDcgQEAgVEVT
VChXZWJLaXRMZWdhY3ksIEljb25Mb2FkaW5nRGVsZWdhdGVDdQogICAgICAgICB3ZWJWaWV3Lmdl
dCgpLmZyYW1lTG9hZERlbGVnYXRlID0gZnJhbWVMb2FkRGVsZWdhdGUuZ2V0KCk7CiAgICAgICAg
IFt3ZWJWaWV3LmdldCgpLm1haW5GcmFtZSBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL3Rlc3RzZXJ2ZXIvMS9tYWlu
Il1dXTsKIAotICAgICAgICBVdGlsOjpydW4oJm1lc3NhZ2VSZWNlaXZlZCk7CisgICAgICAgIHJ1
blVudGlsKG1lc3NhZ2VSZWNlaXZlZCk7CiAKICAgICAgICAgRVhQRUNUX1RSVUUoW1tmcmFtZUxv
YWREZWxlZ2F0ZS0+cmVjZWl2ZWRJY29uLmdldCgpIFRJRkZSZXByZXNlbnRhdGlvbl0gaXNFcXVh
bDpbaW1hZ2VGcm9tRGF0YShjdXN0b21GYXZpY29uRGF0YSgpKSBUSUZGUmVwcmVzZW50YXRpb25d
XSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKFtbd2ViVmlldy5nZXQoKS5tYWluRnJhbWVJY29uIFRJ
RkZSZXByZXNlbnRhdGlvbl0gaXNFcXVhbDpbaW1hZ2VGcm9tRGF0YShjdXN0b21GYXZpY29uRGF0
YSgpKSBUSUZGUmVwcmVzZW50YXRpb25dXSk7CkBAIC0yMjYsNyArMjI2LDcgQEAgVEVTVChXZWJL
aXRMZWdhY3ksIEljb25Mb2FkaW5nRGVsZWdhdGVDdQogICAgICAgICBjdXJyZW50TWFpbkhUTUwg
PSBkZWZhdWx0RmF2aWNvbkhUTUw7CiAgICAgICAgIFt3ZWJWaWV3LmdldCgpLm1haW5GcmFtZSBs
b2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOkAiaHR0cDovL3Rlc3RzZXJ2ZXIvMi9tYWluIl1dXTsKIAotICAgICAgICBVdGlsOjpydW4o
Jm1lc3NhZ2VSZWNlaXZlZCk7CisgICAgICAgIHJ1blVudGlsKG1lc3NhZ2VSZWNlaXZlZCk7CiAK
ICAgICAgICAgRVhQRUNUX1RSVUUoW1tmcmFtZUxvYWREZWxlZ2F0ZS0+cmVjZWl2ZWRJY29uLmdl
dCgpIFRJRkZSZXByZXNlbnRhdGlvbl0gaXNFcXVhbDpbaW1hZ2VGcm9tRGF0YShkZWZhdWx0RmF2
aWNvbkRhdGEoKSkgVElGRlJlcHJlc2VudGF0aW9uXV0pOwogICAgICAgICBFWFBFQ1RfVFJVRShb
W3dlYlZpZXcuZ2V0KCkubWFpbkZyYW1lSWNvbiBUSUZGUmVwcmVzZW50YXRpb25dIGlzRXF1YWw6
W2ltYWdlRnJvbURhdGEoZGVmYXVsdEZhdmljb25EYXRhKCkpIFRJRkZSZXByZXNlbnRhdGlvbl1d
KTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RUb1VSTENyYXNoLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1tCShyZXZpc2lv
biAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsUGVyZm9ybUNs
aWVudFJlZGlyZWN0VG9VUkxDcmFzaC5tbQkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBA
QCBURVNUKFdlYktpdExlZ2FjeSwgV2lsbFBlcmZvcm1DbGllbnRSZWRpCiAgICAgICAgIFt3ZWJW
aWV3IHNldEZyYW1lTG9hZERlbGVnYXRlOiBbV2ViS2l0MVRlc3REZWxlZ2F0ZSBzaGFyZWRdXTsK
ICAgICAgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpbV2ViS2l0MVRlc3REZWxlZ2F0ZSBzaGFy
ZWRdXTsKICAgICAgICAgW1t3ZWJWaWV3IG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMKCldXTsKLSAgICAgICAgVXRpbDo6cnVuKCZ0ZXN0
RmluaXNoZWQpOworICAgICAgICBydW5VbnRpbCh0ZXN0RmluaXNoZWQpOwogICAgIH0KIH0KIApJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2lsbFNlbmRTdWJtaXRFdmVudC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9XaWxsU2VuZFN1
Ym1pdEV2ZW50Lm1tCShyZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9XaWxsU2VuZFN1Ym1pdEV2ZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2
Nyw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBXaWxsU2VuZFN1Ym1pdEV2ZW50KQogCiAgICAgICAg
IFtbd2ViVmlldy5nZXQoKSBtYWluRnJhbWVdIGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAImF1dG8t
c3VibWl0dGluZy1mb3JtIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOwogCi0gICAgICAgIFV0aWw6OnJ1bigmZGlkRmluaXNo
TG9hZCk7CisgICAgICAgIHJ1blVudGlsKGRpZEZpbmlzaExvYWQpOwogICAgIH0KIH0KIApJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2luZG93bGVzc1dlYlZpZXdXaXRoTWVk
aWEubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2luZG93
bGVzc1dlYlZpZXdXaXRoTWVkaWEubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL1dpbmRvd2xlc3NXZWJWaWV3V2l0aE1lZGlhLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC03Miw3ICs3Miw3IEBAIFRFU1QoV2ViS2l0TGVnYWN5LCBXaW5kb3dsZXNzV2Vi
Vmlld1dpdGgKIAogICAgIEVYUEVDVF9FUShuaWwsIFt3ZWJWaWV3LmdldCgpIHdpbmRvd10pOwog
Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsgICAgCisgICAgcnVuVW50aWwoZGlkRmlu
aXNoTG9hZCk7ICAgIAogCiAgICAgc3Bpbkxvb3AoMC4yNSwgXnsKICAgICAgICAgcmV0dXJuIFtb
d2ViVmlldy5nZXQoKSBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0RnJvbVN0cmluZzpAIndp
bmRvdy5kaWRUcmlnZ2VyTG9hZCJdIGlzRXF1YWxUb1N0cmluZzpAInRydWUiXTsKSW5kZXg6IFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1dvcmRCb3VuZGFyeVR5cGluZ0F0dHJpYnV0ZXMu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV29yZEJvdW5k
YXJ5VHlwaW5nQXR0cmlidXRlcy5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvV29yZEJvdW5kYXJ5VHlwaW5nQXR0cmlidXRlcy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBURVNUKFdlYktpdExlZ2FjeSwgV29yZEJvdW5kYXJ5
VHlwaW5nQXR0CiAgICAgd2ViVmlldy5nZXQoKS5mcmFtZUxvYWREZWxlZ2F0ZSA9IGNvbnRyb2xs
ZXIuZ2V0KCk7CiAgICAgW3dlYlZpZXcuZ2V0KCkubWFpbkZyYW1lIGxvYWRIVE1MU3RyaW5nOnRl
c3RDb250ZW50IGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91dDpibGFuayJdXTsK
IAotICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNo
TG9hZCk7CiAKICAgICBOU0RpY3Rpb25hcnkgKmF0dHJpYnV0ZXMgPSBbKGlkKXdlYlZpZXcuZ2V0
KCkgdHlwaW5nQXR0cmlidXRlc107CiAgICAgRVhQRUNUX1RSVUUoW2F0dHJpYnV0ZXNbTlNVbmRl
cmxpbmVTdHlsZUF0dHJpYnV0ZU5hbWVdIGludFZhbHVlXSAhPSAwKTsKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0JKHJl
dmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRp
b25EZWxlZ2F0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCAtICh2b2lkKXdh
aXRGb3JEaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhCiAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsK
ICAgICB9OwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWQpOwogCiAgICAgc2VsZi5kaWRTdGFydFBy
b3Zpc2lvbmFsTmF2aWdhdGlvbiA9IG5pbDsKIH0KQEAgLTk4LDcgKzk4LDcgQEAgLSAodm9pZCl3
YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbgogICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAg
fTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKGZpbmlzaGVkKTsKIAogICAgIHNlbGYuZGlkRmluaXNoTmF2aWdh
dGlvbiA9IG5pbDsKIH0KQEAgLTEzMyw3ICsxMzMsNyBAQCAtICh2b2lkKV90ZXN0X3dhaXRGb3JE
aWRGaW5pc2hOYXZpZ2F0aW9uCiAgICAgW3NlbGYgX2RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBk
YXRlV2l0aG91dFdhaXRpbmdGb3JBbmltYXRlZFJlc2l6ZUZvclRlc3Rpbmc6XnsKICAgICAgICAg
cHJlc2VudGF0aW9uVXBkYXRlSGFwcGVuZWQgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcHJlc2VudGF0aW9uVXBkYXRlSGFwcGVuZWQpOworICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKHByZXNlbnRhdGlvblVwZGF0ZUhhcHBlbmVkKTsKICNlbmRpZgog
fQogCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCShy
ZXZpc2lvbiAyNDU1MTYpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZp
ZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDcgQEAgLSAoQk9PTClfc3luY2hyb25v
dXNseUV4ZWN1dGVFZGl0Q29tbWFuZAogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICAgICAgc3Vj
Y2VzcyA9IGNvbXBsZXRpb25TdWNjZXNzOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZSk7CiAgICAg
cmV0dXJuIHN1Y2Nlc3M7CiB9CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCAtIChpZClvYmplY3RCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OihOU1N0CiAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAg
IE5TTG9nKEAiRW5jb3VudGVyZWQgZXJyb3I6ICVAIHdoaWxlIGV2YWx1YXRpbmcgc2NyaXB0OiAl
QCIsIGVycm9yLCBzY3JpcHQpOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCk7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
aXNXYWl0aW5nRm9ySmF2YVNjcmlwdCk7CiAgICAgcmV0dXJuIGV2YWxSZXN1bHQuYXV0b3JlbGVh
c2UoKTsKIH0KIApAQCAtMTU2LDcgKzE1Niw3IEBAIC0gKGlkKW9iamVjdEJ5RXZhbHVhdGluZ0ph
dmFTY3JpcHRXaXRoVXMKICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgTlNMb2coQCJF
bmNvdW50ZXJlZCBlcnJvcjogJUAgd2hpbGUgZXZhbHVhdGluZyBzY3JpcHQ6ICVAIiwgZXJyb3Is
IHNjcmlwdCk7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc1dhaXRp
bmdGb3JKYXZhU2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc1dhaXRpbmdG
b3JKYXZhU2NyaXB0KTsKICAgICByZXR1cm4gZXZhbFJlc3VsdC5hdXRvcmVsZWFzZSgpOwogfQog
CkBAIC0zODIsNyArMzgyLDcgQEAgLSAodm9pZCl3YWl0Rm9yTWVzc2FnZTooTlNTdHJpbmcgKilt
ZXNzYQogICAgIHsKICAgICAgICAgaXNEb25lV2FpdGluZyA9IHRydWU7CiAgICAgfV07Ci0gICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmVXYWl0aW5nKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpydW5VbnRpbChpc0RvbmVXYWl0aW5nKTsKIH0KIAogLSAodm9pZClwZXJmb3JtQWZ0ZXJM
b2FkaW5nOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbnMgewpAQCAtNDA0LDcgKzQwNCw3IEBAIC0g
KHZvaWQpd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGUKICAgICAgICAgZG9uZSA9IHRydWU7
CiAgICAgfV07CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIFRl
c3RXZWJLaXRBUEk6OnJ1blVudGlsKGRvbmUpOwogfQogCiAtIChOU1N0cmluZyAqKXN0eWxlUHJv
cGVydHlBdFNlbGVjdGlvblN0YXJ0OihOU1N0cmluZyAqKXByb3BlcnR5TmFtZQpAQCAtNDg1LDcg
KzQ4NSw3IEBAIC0gKFJldGFpblB0cjxOU0FycmF5PilzZWxlY3Rpb25SZWN0c0FmdGUKICAgICAg
ICAgaXNEb25lID0gdHJ1ZTsKICAgICB9XTsKIAotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmaXNEb25lKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChpc0RvbmUpOwogICAgIHJl
dHVybiBzZWxlY3Rpb25SZWN0czsKIH0KIApAQCAtNTE0LDcgKzUxNCw3IEBAIC0gKF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopYWN0aXZhdGVkRWwKICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwog
ICAgIH1dOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZmluaXNoZWQpOwogICAgIHJldHVybiBpbmZvLmF1dG9y
ZWxlYXNlKCk7CiB9CiAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVXRpbGl0aWVz
Q29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9VdGlsaXRp
ZXNDb2NvYS5tbQkocmV2aXNpb24gMjQ1NTE2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9VdGlsaXRpZXNDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjcsMTQgKzI3LDE1IEBACiAj
aW5jbHVkZSAiVXRpbGl0aWVzLmgiCiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLW5hbWVz
cGFjZSBVdGlsIHsKIAotdm9pZCBydW4oYm9vbCogZG9uZSkKK3ZvaWQgcnVuVW50aWwoY29uc3Qg
Ym9vbCYgZG9uZSkKIHsKLSAgICB3aGlsZSAoISpkb25lKQorICAgIHdoaWxlICghZG9uZSkKICAg
ICAgICAgW1tOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdIHJ1bk1vZGU6TlNEZWZhdWx0UnVuTG9v
cE1vZGUgYmVmb3JlRGF0ZTpbTlNEYXRlIGRpc3RhbnRQYXN0XV07CiB9CiAKK25hbWVzcGFjZSBV
dGlsIHsKKwogdm9pZCBzcGluUnVuTG9vcCh1aW50NjRfdCBjb3VudCkKIHsKICAgICBmb3IgKHVp
bnQ2NF90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
Z2VuZXJpYy9VdGlsaXRpZXNHZW5lcmljLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL2dlbmVyaWMvVXRpbGl0aWVzR2VuZXJpYy5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvZ2VuZXJpYy9VdGlsaXRpZXNHZW5lcmljLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksMTQgKzI5LDE1IEBACiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAog
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotbmFtZXNwYWNlIFV0aWwgewogCi12b2lkIHJ1bihi
b29sKiBkb25lKQordm9pZCBydW5VbnRpbChjb25zdCBib29sJiBkb25lKQogewotICAgIHdoaWxl
ICghKmRvbmUpCisgICAgd2hpbGUgKCFkb25lKQogICAgICAgICBXVEY6OlJ1bkxvb3A6Oml0ZXJh
dGUoKTsKIH0KIAorbmFtZXNwYWNlIFV0aWwgeworCiB2b2lkIHNwaW5SdW5Mb29wKHVpbnQ2NF90
IGNvdW50KQogewogICAgIHdoaWxlIChjb3VudCA+IDApIHsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvZ2xpYi9VdGlsaXRpZXNHTGliLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL2dsaWIvVXRpbGl0aWVzR0xpYi5jcHAJKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvZ2xpYi9VdGlsaXRpZXNHTGliLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsOSArMzAsOCBAQAogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKLW5hbWVzcGFjZSBVdGlsIHsKIAotdm9pZCBydW4oYm9vbCogZG9uZSkKK3Zv
aWQgcnVuVW50aWwoY29uc3QgYm9vbCYgZG9uZSkKIHsKICAgICBnX2lkbGVfYWRkKFtdKGdwb2lu
dGVyIHVzZXJEYXRhKSAtPiBnYm9vbGVhbiB7CiAgICAgICAgIGJvb2wqIGRvbmUgPSBzdGF0aWNf
Y2FzdDxib29sKj4odXNlckRhdGEpOwpAQCAtNDAsMTAgKzM5LDEyIEBAIHZvaWQgcnVuKGJvb2wq
IGRvbmUpCiAgICAgICAgICAgICBSdW5Mb29wOjpjdXJyZW50KCkuc3RvcCgpOwogCiAgICAgICAg
IHJldHVybiAhKmRvbmU7Ci0gICAgfSwgZG9uZSk7CisgICAgfSwgJmNvbnN0X2Nhc3Q8Ym9vbCY+
KGRvbmUpKTsKICAgICBSdW5Mb29wOjpydW4oKTsKIH0KIAorbmFtZXNwYWNlIFV0aWwgeworCiB2
b2lkIHNwaW5SdW5Mb29wKHVpbnQ2NF90IGNvdW50KQogewogICAgIGdfaWRsZV9hZGQoW10oZ3Bv
aW50ZXIgdXNlckRhdGEpIC0+IGdib29sZWFuIHsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
aW9zL0RyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvaW9zL0RyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tCShyZXZpc2lvbiAyNDU1MTYp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL2lvcy9EcmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbQko
d29ya2luZyBjb3B5KQpAQCAtNDUzLDcgKzQ1Myw3IEBAIC0gKHZvaWQpcnVuRnJvbTooQ0dQb2lu
dClzdGFydExvY2F0aW9uIHQKICAgICAgICAgfV07CiAgICAgfQogCi0gICAgVXRpbDo6cnVuKCZf
aXNEb25lV2l0aEN1cnJlbnRSdW4pOworICAgIHJ1blVudGlsKF9pc0RvbmVXaXRoQ3VycmVudFJ1
bik7CiAgICAgW193ZWJWaWV3IGNsZWFyTWVzc2FnZUhhbmRsZXJzOmRyYWdBbmREcm9wRXZlbnRO
YW1lcygpXTsKICAgICBfZmluYWxTZWxlY3Rpb25SZWN0cyA9IFtfd2ViVmlldyBzZWxlY3Rpb25S
ZWN0c0FmdGVyUHJlc2VudGF0aW9uVXBkYXRlXTsKIApAQCAtNjUxLDcgKzY1MSw3IEBAIC0gKENH
UmVjdClsYXN0S25vd25EcmFnQ2FyZXRSZWN0CiAKIC0gKHZvaWQpZW5zdXJlSW5wdXRTZXNzaW9u
CiB7Ci0gICAgVXRpbDo6cnVuKCZfaGFzU3RhcnRlZElucHV0U2Vzc2lvbik7CisgICAgcnVuVW50
aWwoX2hhc1N0YXJ0ZWRJbnB1dFNlc3Npb24pOwogfQogCiAtIChOU0FycmF5PF9XS0F0dGFjaG1l
bnQgKj4gKilpbnNlcnRlZEF0dGFjaG1lbnRzCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL21h
Yy9EcmFnQW5kRHJvcFNpbXVsYXRvck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2Vi
S2l0QVBJL21hYy9EcmFnQW5kRHJvcFNpbXVsYXRvck1hYy5tbQkocmV2aXNpb24gMjQ1NTE2KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvRHJhZ0FuZERyb3BTaW11bGF0b3JNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgLSAodm9pZCl3YWl0Rm9yUGVuZGluZ01vdXNl
RXZlbnRzCiAgICAgW3NlbGYgX2RvQWZ0ZXJQcm9jZXNzaW5nQWxsUGVuZGluZ01vdXNlRXZlbnRz
Ol57CiAgICAgICAgIGRvbmVQcm9jZXNzTW91c2VFdmVudHMgPSB0cnVlOwogICAgIH1dOwotICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZVByb2Nlc3NNb3VzZUV2ZW50cyk7CisgICAg
VGVzdFdlYktpdEFQSTo6cnVuVW50aWwoZG9uZVByb2Nlc3NNb3VzZUV2ZW50cyk7CiB9CiAKIEBl
bmQKQEAgLTE3Miw3ICsxNzIsNyBAQCAtICh2b2lkKXJ1bkZyb206KENHUG9pbnQpZmxpcHBlZFN0
YXJ0TG9jCiAgICAgICAgIE5TUG9pbnQgc3RhcnRMb2NhdGlvbkluVmlldyA9IFtfd2ViVmlldyBj
b252ZXJ0UG9pbnQ6X3N0YXJ0TG9jYXRpb25JbldpbmRvdyBmcm9tVmlldzpuaWxdOwogICAgICAg
ICBOU0ltYWdlICpkcmFnSW1hZ2UgPSBzZWxmLmV4dGVybmFsRHJhZ0ltYWdlID86IGRlZmF1bHRF
eHRlcm5hbERyYWdJbWFnZSgpOwogICAgICAgICBbc2VsZiBwZXJmb3JtRHJhZ0luV2ViVmlldzpf
d2ViVmlldy5nZXQoKSBhdExvY2F0aW9uOnN0YXJ0TG9jYXRpb25JblZpZXcgd2l0aEltYWdlOmRy
YWdJbWFnZSBwYXN0ZWJvYXJkOnBhc3RlYm9hcmQgc291cmNlOm5pbF07Ci0gICAgICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmX2RvbmVXYWl0aW5nRm9yRHJvcCk7CisgICAgICAgIFRlc3RX
ZWJLaXRBUEk6OnJ1blVudGlsKF9kb25lV2FpdGluZ0ZvckRyb3ApOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC0xODgsMTIgKzE4OCwxMiBAQCAtICh2b2lkKXJ1bkZyb206KENHUG9pbnQp
ZmxpcHBlZFN0YXJ0TG9jCiAgICAgW193ZWJWaWV3IG1vdXNlRHJhZ1RvUG9pbnQ6W3NlbGYgbG9j
YXRpb25JblZpZXdGb3JDdXJyZW50UHJvZ3Jlc3NdXTsKICAgICBbX3dlYlZpZXcgd2FpdEZvclBl
bmRpbmdNb3VzZUV2ZW50c107CiAKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJl9kb25l
V2FpdGluZ0ZvckRyYWdnaW5nU2Vzc2lvbik7CisgICAgVGVzdFdlYktpdEFQSTo6cnVuVW50aWwo
X2RvbmVXYWl0aW5nRm9yRHJhZ2dpbmdTZXNzaW9uKTsKIAogICAgIFtfd2ViVmlldyBtb3VzZVVw
QXRQb2ludDpfZW5kTG9jYXRpb25JbldpbmRvd107CiAgICAgW193ZWJWaWV3IHdhaXRGb3JQZW5k
aW5nTW91c2VFdmVudHNdOwogCi0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZfZG9uZVdh
aXRpbmdGb3JEcm9wKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpydW5VbnRpbChfZG9uZVdhaXRpbmdG
b3JEcm9wKTsKIH0KIAogLSAodm9pZCliZWdpbkRyYWdnaW5nU2Vzc2lvbkluV2ViVmlldzooRHJh
Z0FuZERyb3BUZXN0V0tXZWJWaWV3ICopd2ViVmlldyB3aXRoSXRlbXM6KE5TQXJyYXk8TlNEcmFn
Z2luZ0l0ZW0gKj4gKilpdGVtcyBzb3VyY2U6KGlkPE5TRHJhZ2dpbmdTb3VyY2U+KXNvdXJjZQpA
QCAtNDQzLDcgKzQ0Myw3IEBAIC0gKE5TQXJyYXk8TlNVUkwgKj4gKilyZWNlaXZlUHJvbWlzZWRG
aWwKICAgICAgICAgW3Byb3ZpZGVyLmRlbGVnYXRlIGZpbGVQcm9taXNlUHJvdmlkZXI6cHJvdmlk
ZXIgd3JpdGVQcm9taXNlVG9VUkw6ZGVzdGluYXRpb25VUkwgY29tcGxldGlvbkhhbmRsZXI6XihO
U0Vycm9yICopIHsKICAgICAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgICAgICB9XTsKLSAgICAg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICAgICAgVGVzdFdlYktpdEFQ
STo6cnVuVW50aWwoZG9uZSk7CiAgICAgICAgIFtkZXN0aW5hdGlvblVSTHMgYWRkT2JqZWN0OmRl
c3RpbmF0aW9uVVJMXTsKICAgICAgICAgW19maWxlUHJvbWlzZURlc3RpbmF0aW9uVVJMcyBhZGRP
YmplY3Q6ZGVzdGluYXRpb25VUkxdOwogICAgIH0KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
bWFjL1dlYktpdEFnbm9zdGljVGVzdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL21hYy9XZWJLaXRBZ25vc3RpY1Rlc3QubW0JKHJldmlzaW9uIDI0NTUxNikKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvbWFjL1dlYktpdEFnbm9zdGljVGVzdC5tbQkod29ya2luZyBjb3B5KQpA
QCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQgV2ViS2l0QWdub3N0aWNUZXN0Ojpnb0JhY2soV0tWaWV3
ICoKIAogdm9pZCBXZWJLaXRBZ25vc3RpY1Rlc3Q6OndhaXRGb3JMb2FkVG9GaW5pc2goKQogewot
ICAgIFV0aWw6OnJ1bigmZGlkRmluaXNoTG9hZCk7CisgICAgcnVuVW50aWwoZGlkRmluaXNoTG9h
ZCk7CiAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOwogfQogCkBAIC0xNTMsNyArMTUzLDcgQEAg
dm9pZCBXZWJLaXRBZ25vc3RpY1Rlc3Q6OndhaXRGb3JOZXh0UHJlcwogICAgIGRpc3BhdGNoX2Fz
eW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF4oKSB7CiAgICAgICAgIGRvbmUgPSB0cnVl
OwogICAgIH0pOwotICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgcnVuVW50aWwoZG9uZSk7CiB9
CiAKIHZvaWQgV2ViS2l0QWdub3N0aWNUZXN0Ojp3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0
ZShXS1ZpZXcgKnZpZXcpCkBAIC0xNjIsNyArMTYyLDcgQEAgdm9pZCBXZWJLaXRBZ25vc3RpY1Rl
c3Q6OndhaXRGb3JOZXh0UHJlcwogICAgIFt2aWV3IF9kb0FmdGVyTmV4dFByZXNlbnRhdGlvblVw
ZGF0ZTpeKCkgewogICAgICAgICBkb25lID0gdHJ1ZTsKICAgICB9XTsKLSAgICBVdGlsOjpydW4o
JmRvbmUpOworICAgIHJ1blVudGlsKGRvbmUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL3dpbi9VdGlsaXRpZXNXaW4uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1V0aWxpdGllc1dpbi5jcHAJKHJl
dmlzaW9uIDI0NTUxNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1V0aWxpdGllc1dpbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDExICsyOSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9SdW5M
b29wLmg+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLW5hbWVzcGFjZSBVdGlsIHsKIAot
dm9pZCBydW4oYm9vbCogZG9uZSkKK3ZvaWQgcnVuVW50aWwoY29uc3QgYm9vbCYgZG9uZSkKIHsK
LSAgICB3aGlsZSAoISpkb25lKSB7CisgICAgd2hpbGUgKCFkb25lKSB7CiAgICAgICAgIE1TRyBt
ZXNzYWdlOwogICAgICAgICBCT09MIHJlc3VsdCA9IEdldE1lc3NhZ2UoJm1lc3NhZ2UsIDAsIDAs
IDApOwogICAgICAgICBpZiAoIXJlc3VsdCkKQEAgLTQzLDYgKzQyLDggQEAgdm9pZCBydW4oYm9v
bCogZG9uZSkKICAgICB9CiB9CiAKK25hbWVzcGFjZSBVdGlsIHsKKwogdm9pZCBzcGluUnVuTG9v
cCh1aW50NjRfdCBjb3VudCkKIHsKICAgICBmb3IgKHVpbnQ2NF90IGkgPSAwOyBpIDwgY291bnQ7
IGkrKykgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>