<?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>216509</bug_id>
          
          <creation_ts>2020-09-14 17:13:33 -0700</creation_ts>
          <short_desc>Remove testRunner.setAllowsAnySSLCertificate</short_desc>
          <delta_ts>2020-09-16 00:45:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</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>ap</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1688488</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-14 17:13:33 -0700</bug_when>
    <thetext>Remove testRunner.setAllowsAnySSLCertificate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688492</commentid>
    <comment_count>1</comment_count>
      <attachid>408769</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-14 17:19:26 -0700</bug_when>
    <thetext>Created attachment 408769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688536</commentid>
    <comment_count>2</comment_count>
      <attachid>408769</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-09-14 18:36:19 -0700</bug_when>
    <thetext>Comment on attachment 408769
Patch

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

&gt; Source/WebKit/ChangeLog:8
&gt; +        It used to be our only way to test TLS failures, but now that we have TCPServer and HTTPServer used in many tests with TLS, it is unnecessary.

Aren&apos;t TCPServer and HTTPServer only for API tests? Moving test from layout tests to API is super undesirable, because the latter are unscalable and difficult to work with.

Also, in this patch you are just invalidating a lot of tests without replacement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688582</commentid>
    <comment_count>3</comment_count>
      <attachid>408769</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-14 22:04:32 -0700</bug_when>
    <thetext>Comment on attachment 408769
Patch

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

&gt;&gt; Source/WebKit/ChangeLog:8
&gt;&gt; +        It used to be our only way to test TLS failures, but now that we have TCPServer and HTTPServer used in many tests with TLS, it is unnecessary.
&gt; 
&gt; Aren&apos;t TCPServer and HTTPServer only for API tests? Moving test from layout tests to API is super undesirable, because the latter are unscalable and difficult to work with.
&gt; 
&gt; Also, in this patch you are just invalidating a lot of tests without replacement.

I know you&apos;ve never been a big fan of TCPServer and HTTPServer, but they do test exactly this with greater resolution than we can in layout tests.  API tests are indeed scalable and most of them are parallelizable.  We simply need to do the work to figure out which small set of tests are not parallelizable and make infrastructure that recognizes them.

testRunner.setAllowsAnySSLCertificate is used in the web socket tests because without it we would be unable to connect using the old CFStream WebSocket implementation, and we needed some tests there.  We still have all that test coverage, because the default in WebKitTestRunner and DumpRenderTree is now to allow all certificates, allowing our test apache certificates to be accepted.

This invalidates exactly two tests.  One was in crossorigin-arraybufferview-no-preflight.html which tests that beacons are not sent to servers to which we cannot establish a secure connection.  The other is in server-trust-evaluation.https.html which verifies that service workers also cannot connect to servers to which we cannot establish a secure connection.  I assert that we continue to have many tests that verify behavior when attempting such insecure connections, and I re-request review.  If it is deemed that these two specific cases are important enough to add tests specific to these two situations, I will add them, but I think they would be redundant.  In any case, WebProcessPool should not be the place where we make this decision, and I will keep pushing until we find an agreeable solution that does not have it there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688605</commentid>
    <comment_count>4</comment_count>
      <attachid>408796</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-14 23:26:07 -0700</bug_when>
    <thetext>Created attachment 408796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688608</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-14 23:27:37 -0700</bug_when>
    <thetext>I attached a second approach that would work for me for https://bugs.webkit.org/show_bug.cgi?id=216041
I find it less elegant, but it may be less controversial to reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688610</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-14 23:48:10 -0700</bug_when>
    <thetext>I am not a big fan of API tests either.

I agree with the idea to move to WebsiteDataStore. We partially did that work with WebsiteDataStore delegate didReceiveAuthenticationChallenge:.
Maybe we can use it for the service worker test as well and remove the use of the setAllowsAnySSLCertificate test runner API without modifying what the test is doing.

For WebSocket, we could also do the transitioning to a WebsiteDataStore dedicated boolean value and send it to NetworkProcess, to remove entirely DeprecatedGlobalSettings::allowsAnySSLCertificate().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688611</commentid>
    <comment_count>7</comment_count>
      <attachid>408796</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-14 23:50:38 -0700</bug_when>
    <thetext>Comment on attachment 408796
Patch

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

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:2268
&gt; +            networkProcess-&gt;sendSync(Messages::NetworkProcess::SetAllowsAnySSLCertificateForWebSocket(allows), Messages::NetworkProcess::SetAllowsAnySSLCertificateForWebSocket::Reply(), 0);

Do we really need to have the IPC synchronous?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688713</commentid>
    <comment_count>8</comment_count>
      <attachid>408796</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-15 09:23:47 -0700</bug_when>
    <thetext>Comment on attachment 408796
Patch

Unfortunately it does need to be synchronous right now or it will introduce flakiness because TestController::resetStateToConsistentValues does not have a CompletionHandler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688717</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-15 09:28:38 -0700</bug_when>
    <thetext>Committed r267088: &lt;https://trac.webkit.org/changeset/267088&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408796.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688718</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-15 09:29:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/68926904&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688775</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-09-15 11:32:03 -0700</bug_when>
    <thetext>
Thank you for not reducing test coverage.

&gt; API tests are indeed scalable and most of them are parallelizable.  We simply need
&gt; to do the work to figure out which small set of tests are not parallelizable and
&gt; make infrastructure that recognizes them.

This argument is not new, and API tests are just not getting better - there is still no parallelism, no test expectations short of ifdefs, they can&apos;t be run in production builds, there is not even a nice presentation of results like results.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688778</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-09-15 11:33:43 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #11)
&gt; This argument is not new, and API tests are just not getting better - there
&gt; is still no parallelism, no test expectations short of ifdefs, they can&apos;t be
&gt; run in production builds, there is not even a nice presentation of results
&gt; like results.html.

This doesn&apos;t happen by itself.  It needs to have an engineer work on it.  It can be done, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688903</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-09-15 16:10:26 -0700</bug_when>
    <thetext>I think that&apos;s exactly what I&apos;m saying. Let&apos;s not rely on this argument until we have some hope of finding such an engineer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689033</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-16 00:45:02 -0700</bug_when>
    <thetext>Also, API tests have a larger tendency to be platform-specific which is annoying when testing platform-agnostic features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689034</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-09-16 00:45:43 -0700</bug_when>
    <thetext>And they cannot be shared with other browsers, so are in general not ideal for ensuring interoperability.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408769</attachid>
            <date>2020-09-14 17:19:26 -0700</date>
            <delta_ts>2020-09-15 09:21:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216509-20200914171925.patch</filename>
            <type>text/plain</type>
            <size>33460</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQyODVmMmI1MTFiM2ZjZDZm
ODFkZDRhZjJmYWVlMDE0NDZmZDJmODkuLmNjYjNkZTFhNDBlZDZlMjA1MDNmYTg0MDE5NTI2MzA4
ZDNlNDkwNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMDktMTQgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgdGVz
dFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQgdXNlZCB0byBiZSBvdXIgb25seSB3YXkgdG8g
dGVzdCBUTFMgZmFpbHVyZXMsIGJ1dCBub3cgdGhhdCB3ZSBoYXZlIFRDUFNlcnZlciBhbmQgSFRU
UFNlcnZlciB1c2VkIGluIG1hbnkgdGVzdHMgd2l0aCBUTFMsIGl0IGlzIHVubmVjZXNzYXJ5Lgor
ICAgICAgICBJIG5lZWQgdG8gY2hhbmdlIGl0IGJlY2F1c2UgaXQgaXMgY2F1c2luZyBwcm9ibGVt
cyB3aXRoIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTYwNDEgYmVj
YXVzZSBmcm9tIHRoZSBXZWJQcm9jZXNzUG9vbAorICAgICAgICB3ZSB3aWxsIHNvb24gYmUgdW5h
YmxlIHRvIHRlbGwgd2hpY2ggV2Vic2l0ZURhdGFTdG9yZSdzIG5ldHdvcmsgcHJvY2VzcyB0byBh
bGxvdy9kaXNhbGxvdyBhbnkgVExTIGNlcnRpZmljYXRlLgorICAgICAgICBGb3IgRHVtcFJlbmRl
clRyZWUgd2UgYWxyZWFkeSBoYWQgYSBjYWxsIHRvIFdlYkNvcmVUZXN0U3VwcG9ydDo6c2V0QWxs
b3dzQW55U1NMQ2VydGlmaWNhdGUgd2hpY2ggSSBqdXN0IG1hZGUgbW9yZSBkaXJlY3QuCisgICAg
ICAgIEZvciBXZWJLaXRUZXN0UnVubmVyLCBJIHBpZ2d5LWJhY2tlZCBvZmYgc2hvdWxkVXNlVGVz
dGluZ05ldHdvcmtTZXNzaW9uIHdoaWNoIGlzIHNldCBieSBXS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uU2V0VGVzdGluZ1Nlc3Npb25FbmFibGVkLgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6ZW5zdXJlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRB
bGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldCk6IERlbGV0ZWQuCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmNwcDoKKyAgICAgICAgKFdLQ29udGV4dFNldEFsbG93c0FueVNTTENlcnRpZmlj
YXRlRm9yV2ViU29ja2V0VGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX2FsbG93QW55VExTQ2Vy
dGlmaWNhdGVGb3JXZWJTb2NrZXRUZXN0aW5nXSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpz
ZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldCk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisKIDIwMjAtMDktMTQgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIGNvb2tpZSBm
bHVzaGluZyBTUEkgZnJvbSBXS1Byb2Nlc3NQb29sIHRvIFdLSFRUUENvb2tpZVN0b3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGM1
YmRhNGFmOTM2ZDkyNjIwNzc1NmY0NWUxYzg0Mzk3Yjk2ZjYyZWEuLmJjZDE3ZjZmMjNhOTE5ZWUw
YjcxODRmMGVlYjQwZTZmMGNlYjU5OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC01MTksNiArNTE5LDcgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6ZW5zdXJlU2Vzc2lvbihjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBi
b29sIHNob3VsZFUKIAogICAgIGlmIChzaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24pIHsK
ICAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IG5ld1Rlc3RpbmdTZXNzaW9uKHNl
c3Npb25JRCk7CisgICAgICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0QWxsb3dzQW55
U1NMQ2VydGlmaWNhdGUodHJ1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkBAIC0y
MjA3LDEyICsyMjA4LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0Q2FjaGVNb2RlbChDYWNo
ZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNl
dEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wgYWxsb3dzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgRGVwcmVjYXRl
ZEdsb2JhbFNldHRpbmdzOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShhbGxvd3MpOwotICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ0RpYWdu
b3N0aWNNZXNzYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgU2hvdWxkU2FtcGxl
IHNob3VsZFNhbXBsZSkKIHsKICAgICBpZiAoIURpYWdub3N0aWNMb2dnaW5nQ2xpZW50OjpzaG91
bGRMb2dBZnRlclNhbXBsaW5nKHNob3VsZFNhbXBsZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggYTg2ZDZlM2UwMzhmOTE4YTJkOWEwOTNh
OWJiNjMxZTJiOTk3MWY3Ni4uY2FmODA0NDlmNjM5ZTI3YWRjOTU3MjQ5ZWNiY2RjYmZjYjhkODA4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApA
QCAtNDQxLDcgKzQ0MSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKENhY2hl
TW9kZWwpOwogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5nKENh
Y2hlTW9kZWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBhbGxvd1Nw
ZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvJiwgY29uc3QgU3RyaW5nJiBob3N0KTsKLSAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRp
ZmljYXRlRm9yV2ViU29ja2V0KGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgCiAgICAgdm9pZCBmbHVzaENvb2tpZXMoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBkYjQwODg1MTgxYzYx
YzYyZDIxMGJhZjAzNjA2OWJmNTY1ZWM4ODNlLi5jNjdhOTgzNjVkNDEzMjkwNWIxNDUzZGYwODQ1
MDFlZTg0MWFjN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTY1LDggKzY1LDYgQEAgbWVzc2FnZXMg
LT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldFFPUyhpbnQgbGF0ZW5j
eVFPUywgaW50IHRocm91Z2hwdXRRT1MpCiAgICAgU2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQo
Ym9vbCBlbmFibGVkKQogI2VuZGlmCi0gICAgU2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JX
ZWJTb2NrZXQoYm9vbCBlbmFibGVkKSAtPiAoKSBTeW5jaHJvbm91cwotCiAgICAgRmx1c2hDb29r
aWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKIAogICAgIEFsbG93U3Bl
Y2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2Vy
dGlmaWNhdGUsIFN0cmluZyBob3N0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5jcHAKaW5kZXggZGYzMTNmZmI4NmZjMWVmN2U3MzFhNTQ0ZDU3Y2I3NGNkMzBkNGFj
ZC4uNmQzYjgyZDA5Njg3Nzc1MzY1MTg5ODkzMTBmZDYwZWZlNGRhMzI3NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC01NDMsMTEgKzU0Myw2IEBA
IHZvaWQgV0tDb250ZXh0U2V0SmF2YVNjcmlwdEdhcmJhZ2VDb2xsZWN0b3JUaW1lckVuYWJsZWQo
V0tDb250ZXh0UmVmIGNvbnRleHRSZWYsCiAgICAgV2ViS2l0Ojp0b0ltcGwoY29udGV4dFJlZikt
PnNldEphdmFTY3JpcHRHYXJiYWdlQ29sbGVjdG9yVGltZXJFbmFibGVkKGVuYWJsZSk7CiB9CiAK
LXZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXRUZXN0
aW5nKFdLQ29udGV4dFJlZiBjb250ZXh0LCBib29sIGFsbG93cykKLXsKLSAgICBXZWJLaXQ6OnRv
SW1wbChjb250ZXh0KS0+c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYWxs
b3dzKTsKLX0KLQogdm9pZCBXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNl
cnZpY2VXb3JrZXJUZXN0aW5nKFdLQ29udGV4dFJlZiBjb250ZXh0LCBib29sIGFsbG93cykKIHsK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKaW5kZXggN2MyNzEwZjMzOWZjZTc3ZDNhNTJhOGE1
NWU4YjFhZTZjZWI1NTdhNS4uODE1MzM5Y2Q5OTdkMTU3ZWE1ZjgxMWQwNjRiZTg5NzM3OWM2MmM4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZh
dGUuaApAQCAtODYsNyArODYsNiBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRVc2VzTmV0
d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVmLCBib29sKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4
dFRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKFdLQ29udGV4dFJlZik7CiBXS19FWFBPUlQgdm9pZCBX
S0NvbnRleHRUZXJtaW5hdGVTZXJ2aWNlV29ya2VycyhXS0NvbnRleHRSZWYpOwogCi1XS19FWFBP
UlQgdm9pZCBXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldFRl
c3RpbmcoV0tDb250ZXh0UmVmLCBib29sKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEFs
bG93c0FueVNTTENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlclRlc3RpbmcoV0tDb250ZXh0UmVm
LCBib29sKTsKIAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBydW5uaW5n
IGEgdGVzdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2wubW0KaW5kZXggM2JmMzk3ZDY3OWM3MTA2OWIyMjczN2FlNjUzNTE1MTZkNzg4YzU2
NS4uN2ZkY2E2NTgzNThhNGU1OTljY2MxMGZhMTQ1NjA4YTBiNTJmN2YxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTYy
NSwxMSArNjI1LDYgQEAgc3RhdGljIE5TRGljdGlvbmFyeSAqcG9saWNpZXNIYXNoTWFwVG9EaWN0
aW9uYXJ5KGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFMKICAgICBfcHJvY2Vzc1Bvb2wt
PmNsZWFyUGVybWFuZW50Q3JlZGVudGlhbHNGb3JQcm90ZWN0aW9uU3BhY2UoV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlKHByb3RlY3Rpb25TcGFjZSkpOwogfQogCi0tICh2b2lkKV9hbGxvd0FueVRM
U0NlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZwotewotICAgIF9wcm9jZXNzUG9vbC0+c2V0
QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQodHJ1ZSk7Ci19Ci0KIC0gKHZvaWQp
X3NlZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRm9yVGVzdGluZ1dpdGhGaXJzdFBhcnR5OihOU1VS
TCAqKWZpcnN0UGFydHlVUkwgdGhpcmRQYXJ0eTooTlNVUkwgKil0aGlyZFBhcnR5VVJMIHNob3Vs
ZFNjaGVkdWxlTm90aWZpY2F0aW9uOihCT09MKXNob3VsZFNjaGVkdWxlTm90aWZpY2F0aW9uIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAjaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggZWRk
MDg5YWVjYzI1MjVjNTcyMzBlMWRlNWFmZjU1MDY1OWEwMjBiNC4uMTVkYjYxZGFiZGFkNDBlZDAx
NWFhNTc5YjM0NjJkMGMxY2NiY2Q1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTEyNiw3ICsxMjYs
NiBAQAogLSAodm9pZClfZ2V0QWN0aXZlUGFnZXNPcmlnaW5zSW5XZWJQcm9jZXNzRm9yVGVzdGlu
ZzoocGlkX3QpcGlkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKE5TQXJyYXk8TlNTdHJpbmcg
Kj4gKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKIC0gKEJPT0wpX25ldHdvcmtQcm9jZXNzSGFzRW50aXRsZW1lbnRGb3JUZXN0
aW5nOihOU1N0cmluZyAqKWVudGl0bGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQu
NCksIGlvcygxMi4yKSk7CiAtICh2b2lkKV9jbGVhclBlcm1hbmVudENyZWRlbnRpYWxzRm9yUHJv
dGVjdGlvblNwYWNlOihOU1VSTFByb3RlY3Rpb25TcGFjZSAqKXByb3RlY3Rpb25TcGFjZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKLS0gKHZvaWQpX2FsbG93QW55
VExTQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXRUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBn
ZXR0ZXI9X2lzQ29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQsIHNldHRlcj1fc2V0Q29v
a2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQ6KSBCT09MIF9jb29raWVTdG9yYWdlUGFydGl0
aW9uaW5nRW5hYmxlZCBXS19BUElfREVQUkVDQVRFRCgiUGFydGl0aW9uZWQgY29va2llcyBhcmUg
bm8gbG9uZ2VyIHN1cHBvcnRlZCIsIG1hY29zKDEwLjEyLjMsIDEwLjE0LjQpLCBpb3MoMTAuMywg
MTIuMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNTdG9yYWdlQWNjZXNzQVBJ
RW5hYmxlZCwgc2V0dGVyPV9zZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZDopIEJPT0wgX3N0b3Jh
Z2VBY2Nlc3NBUElFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygx
MS4zKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXgg
NDhiOGEzMmE5NWIwZjgwYTdlMjZkZjkzMWQzYTk1NmI5YmNhZjMwMC4uOTQxMGU3MzA2NjI5YTcz
M2NmMzViNTU3YzkzYzg1MGI5Mjk2OWY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcApAQCAtMTc3NSwxMSArMTc3NSw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnNlbmRTeW5jVG9OZXR3b3JraW5nUHJvY2VzcyhUJiYgbWVzc2FnZSwgVSYmIHJlcGx5KQog
ICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kU3luYyhzdGQ6OmZvcndhcmQ8VD4obWVzc2Fn
ZSksIHN0ZDo6Zm9yd2FyZDxVPihyZXBseSksIDApOwogfQogCi12b2lkIFdlYlByb2Nlc3NQb29s
OjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChib29sIGFsbG93cykKLXsK
LSAgICBzZW5kU3luY1RvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldChhbGxvd3MpLCBNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OlNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0
OjpSZXBseSgpKTsKLX0KLQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6Y2xlYXJDYWNoZWRDcmVkZW50
aWFscygpCiB7CiAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA3MGUxZmM0NzFiNmVkNWFiYjg3NDNlNzhkMGE0YjE1
MjZhYjQyMWRiLi5jMDA1MTk5Zjg2YjdkYjFkODZiMzc0OThiOGMxYTllY2Y4NWI2NDQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTMxOCw4ICszMTgsNiBA
QCBwdWJsaWM6CiAgICAgfTsKICAgICBzdGF0aWMgU3RhdGlzdGljcyYgc3RhdGlzdGljcygpOyAg
ICAKIAotICAgIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYm9v
bCk7Ci0KICAgICB2b2lkIGNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKTsKICAgICB2b2lkIHRlcm1p
bmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVBbGxXZWJDb250ZW50UHJv
Y2Vzc2VzKCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggYjdkNjViZjA0YmQ3MDNkOWIxYjUzNWJjYWI3OWFhMTM4OGEyY2YyMy4uZWRlMDZjN2Q3
YmM5ZDYzNDVhOGIxNzQwNWZkOWJiMzM0M2RmM2U1YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA5LTE0ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVt
b3ZlIHRlc3RSdW5uZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjUwOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAg
ICAoc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAg
IChUZXN0UnVubmVyOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSk6IERlbGV0ZWQuCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lz
dGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGU6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUp
OiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZh
bHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRBbGxvd3NBbnlTU0xDZXJ0
aWZpY2F0ZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0QXV0aGVudGljYXRpb25Q
YXNzd29yZCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpz
ZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSk6IERlbGV0ZWQuCisKIDIwMjAtMDktMTQgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIGNv
b2tpZSBmbHVzaGluZyBTUEkgZnJvbSBXS1Byb2Nlc3NQb29sIHRvIFdLSFRUUENvb2tpZVN0b3Jl
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDVlNTM1YWYxZGVhZDg0MmQyZWY0
ZjVmNzY2MDJjODNhOTUwYjc2NTIuLmNjOWYwOWQ5YTBmMzZiNzM1MWU0ZDRmYmI3NmNhNDQ4YzE5
NWMxMGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xMTk5LDE2ICsxMTk5
LDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0UHJpbnRpbmdDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24KICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNldEFsbG93c0FueVNTTENl
cnRpZmljYXRlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmLCBKU09i
amVjdFJlZiwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRz
W10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICBib29sIGFsbG93QW55Q2VydGlmaWNh
dGUgPSBmYWxzZTsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAxKQotICAgICAgICBhbGxvd0Fu
eUNlcnRpZmljYXRlID0gSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pOwot
ICAgIAotICAgIFRlc3RSdW5uZXI6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGFsbG93QW55
Q2VydGlmaWNhdGUpOwotICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsK
LX0KLQogc3RhdGljIEpTVmFsdWVSZWYgc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVS
THNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIG1h
YyAmIHdpbmRvd3MgaW1wbGVtZW50YXRpb24KQEAgLTIyMDQsNyArMjE5NCw2IEBAIEpTU3RhdGlj
RnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldEFs
bG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzIiwgc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NG
cm9tRmlsZVVSTHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRBbGxvd0ZpbGVBY2Nl
c3NGcm9tRmlsZVVSTHMiLCBzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJzZXROZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWly
ayIsIHNldE5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJrQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKLSAgICAgICAgeyAic2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUiLCBzZXRBbGxvd3NBbnlT
U0xDZXJ0aWZpY2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEFsd2F5c0FjY2Vw
dENvb2tpZXMiLCBzZXRBbHdheXNBY2NlcHRDb29raWVzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAic2V0T25seUFjY2VwdEZpcnN0UGFydHlDb29raWVzIiwgc2V0T25seUFjY2VwdEZpcnN0
UGFydHlDb29raWVzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0QXBwQ2FjaGVNYXhp
bXVtU2l6ZSIsIHNldEFwcENhY2hlTWF4aW11bVNpemVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApAQCAtMjQ5
OSwxMSArMjQ4OCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6dWlTY3JpcHREaWRDb21wbGV0ZShjb25z
dCBTdHJpbmcmIHJlc3VsdCwgdW5zaWduZWQgY2FsbGJhY2tJRCkKICAgICBjYWxsVUlTY3JpcHRD
YWxsYmFjayhjYWxsYmFja0lELCBzdHJpbmdSZWYuZ2V0KCkpOwogfQogCi12b2lkIFRlc3RSdW5u
ZXI6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wgYWxsb3dzQW55U1NMQ2VydGlmaWNh
dGUpCi17Ci0gICAgV2ViQ29yZVRlc3RTdXBwb3J0OjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0
ZShhbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0T3Bl
blBhbmVsRmlsZXMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgZmlsZXNWYWx1ZSkK
IHsKICAgICBpZiAoIUpTVmFsdWVJc0FycmF5KGNvbnRleHQsIGZpbGVzVmFsdWUpKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdFJ1bm5lci5oCmluZGV4IDY5NjMyNjdjYWZjZmNkYzk4YWU4N2ViZTNlZjg1NjRi
YzViZmFjZDcuLjRhOWJmZTZiYTFjNDcxMzQ0YjVjYTA5OGE3NjdmYzA2NTZkYmRiMTMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAgLTEzNyw4ICsxMzcsNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRQYWdlVmlzaWJpbGl0eShjb25zdCBjaGFyKik7CiAgICAgdm9pZCByZXNldFBhZ2VW
aXNpYmlsaXR5KCk7CiAKLSAgICBzdGF0aWMgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0
ZShib29sKTsKLQogICAgIHZvaWQgd2FpdEZvclBvbGljeURlbGVnYXRlKCk7CiAgICAgc2l6ZV90
IHdlYkhpc3RvcnlJdGVtQ291bnQoKTsKICAgICBpbnQgd2luZG93Q291bnQoKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA2ZjdkZjA2OWMxYWNjMTc3
ZWUzYjMwZDU4YzllNTYzM2E4NGQwZDdhLi43NDg5MDY2MDMxMDAyMzY4Mjg1NTMzMWY5ZmFmMTE4
N2E4NWQ5MDNhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CkBAIC0xODY5LDcgKzE4NjksNyBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3Rl
bnRTdGF0ZUJlZm9yZVRlc3RpbmcoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbgogI2VuZGlmCiAK
ICAgICBUZXN0UnVubmVyOjpzZXRTZXJpYWxpemVIVFRQTG9hZHMoZmFsc2UpOwotICAgIFRlc3RS
dW5uZXI6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKHRydWUpOworICAgIFdlYkNvcmVUZXN0
U3VwcG9ydDo6c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUodHJ1ZSk7CiAKICAgICBzZXRsb2Nh
bGUoTENfQUxMLCAiIik7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IGZiZWYzOTZm
NWY2ZjNiZmY0Zjk5YzhhNTZhNmU2MmFjMDE0MGZmYTQuLjliNThmOTcyMTQzZTA0ZDAwYmNmYTg4
YjI3ZDRhYjk3NGViMGY1OGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMjQ4LDgg
KzI0OCw2IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICB1bmRlZmluZWQgc2V0QXV0aGVu
dGljYXRpb25Vc2VybmFtZShET01TdHJpbmcgdXNlcm5hbWUpOwogICAgIHVuZGVmaW5lZCBzZXRB
dXRoZW50aWNhdGlvblBhc3N3b3JkKERPTVN0cmluZyBwYXNzd29yZCk7CiAKLSAgICB1bmRlZmlu
ZWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbGVhbiB2YWx1ZSk7Ci0KICAgICB1bmRl
ZmluZWQgc2V0U2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24oYm9v
bGVhbiB2YWx1ZSk7CiAgICAgdW5kZWZpbmVkIHNldFNob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9u
T25OZXh0TmF2aWdhdGlvbihib29sZWFuIHZhbHVlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA3
YWU4MWJiNGI1OTA5NmM1OGM4YjVhMTRjODhjNGMzM2Y4YzE0NTcxLi5lMjNlZTgyZjQwMmZlMDUx
NzZhNjM4ZDlkMGIyODZmNTU2YzhiN2YyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMTExOCwxMSAr
MTExOCw2IEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGU6OmlzQWxsb3dlZEhvc3QoV0tTdHJpbmdSZWYg
aG9zdCkKICAgICByZXR1cm4gbV9hbGxvd2VkSG9zdHMuY29udGFpbnModG9XVEZTdHJpbmcoaG9z
dCkpOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxlOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0
ZShib29sIGFsbG93c0FueVNTTENlcnRpZmljYXRlKQotewotICAgIFdlYkNvcmVUZXN0U3VwcG9y
dDo6c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYWxsb3dzQW55U1NMQ2VydGlmaWNhdGUpOwot
fQotCiBib29sIEluamVjdGVkQnVuZGxlOjpzdGF0aXN0aWNzTm90aWZ5T2JzZXJ2ZXIoKQogewog
ICAgIHJldHVybiBXS0J1bmRsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NOb3RpZnlPYnNlcnZlciht
X2J1bmRsZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmgKaW5kZXggYjc2MDE0MzZmMGM2NzI4NTYzM2EwOGUyNWY5NDJh
OGFhOThkOTcwYi4uNjg4ODUxMDNlNWY5MmQ0MmFmNTFiMDM3NzE1YjQ2ZjgwNzI5NzhkZiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuaApAQCAtMTMxLDggKzEzMSw2IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIGlt
YWdlQ291bnRJbkdlbmVyYWxQYXN0ZWJvYXJkKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldEFsbG93
c0FueVNTTENlcnRpZmljYXRlKGJvb2wpOwotCiAgICAgYm9vbCBzdGF0aXN0aWNzTm90aWZ5T2Jz
ZXJ2ZXIoKTsKIAogICAgIHZvaWQgdGV4dERpZENoYW5nZUluVGV4dEZpZWxkKCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApp
bmRleCBhNjI1NTg5NzI3YmM3MWI3NDFlY2YyNTY1MTUyMWVmYjRmNDk5N2YzLi41MTQ2MjQzZWQ1
MTNlZTc0ZTJmMDJkNjg1Yzg3MjhhMmIyNmJmYTliIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTUwNywxNiArNTA3
LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRHZW5lcmljQ3VlQVBJRW5hYmxlZChib29sIGVuYWJs
ZWQpCiAgICAgV0tCdW5kbGVPdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcihpbmpl
Y3RlZEJ1bmRsZS5idW5kbGUoKSwgaW5qZWN0ZWRCdW5kbGUucGFnZUdyb3VwKCksIGtleS5nZXQo
KSwgZW5hYmxlZCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGUoYm9vbCBlbmFibGVkKQotewotICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0
ZWRCdW5kbGU6OnNpbmdsZXRvbigpOwotICAgIGluamVjdGVkQnVuZGxlLnNldEFsbG93c0FueVNT
TENlcnRpZmljYXRlKGVuYWJsZWQpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1l
c3NhZ2VOYW1lID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2V0QWxs
b3dzQW55U1NMQ2VydGlmaWNhdGUiKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBt
ZXNzYWdlQm9keSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKGVuYWJsZWQpKTsKLSAgICBXS0J1
bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhpbmplY3RlZEJ1bmRsZS5w
YWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxs
cHRyKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNz
aW9uT25OZXh0TmF2aWdhdGlvbihib29sIHNob3VsZFN3YXApCiB7CiAgICAgYXV0byYgaW5qZWN0
ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IGMwYTE0MDkw
NWVkZjNkZGE0YTc2MWFiNjIwN2Q5N2I0MzYyMDg2YmIuLjlhNGVmMzU1YTQ1M2ZiNzIzOTdmZGNm
YWQwOGViNjA3ZTAzOTg0MzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0xMjYsNyArMTI2LDYgQEAgcHVibGljOgogICAg
IHZvaWQgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVlc3RzKCk7CiAgICAgdm9pZCBzZXRDYWNoZU1v
ZGVsKGludCk7CiAgICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChi
b29sKTsKLSAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wpOwogICAgIHZv
aWQgc2V0U2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24oYm9vbCk7
CiAgICAgdm9pZCBzZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24o
Ym9vbCk7CiAgICAgdm9pZCBzZXRFbmNyeXB0ZWRNZWRpYUFQSUVuYWJsZWQoYm9vbCk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGU4NTgzYjhjMTJhNDU5
Nzg5ZDQwOTRhODk2OTdlMGY3NjBiMGMxMDIuLjNmMWU5MTk1ZGRkZjdhZWYxNTQzYTc2MWY0NjEz
NWUwMjE3MmVjNzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CkBAIC0xMTU4LDggKzExNTgsNiBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9D
b25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zLCBSZQogICAgIG1fb3Bl
blBhbmVsRmlsZVVSTHNNZWRpYUljb24gPSBudWxscHRyOwogI2VuZGlmCiAKLSAgICBzZXRBbGxv
d3NBbnlTU0xDZXJ0aWZpY2F0ZSh0cnVlKTsKLQogICAgIHN0YXRpc3RpY3NSZXNldFRvQ29uc2lz
dGVudFN0YXRlKCk7CiAgICAgY2xlYXJMb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoKTsKICAgICBj
bGVhckFwcEJvdW5kU2Vzc2lvbigpOwpAQCAtMTMyNCwxNCArMTMyMiw2IEBAIGNvbnN0IGNoYXIq
IFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc05hbWUoKQogI2VuZGlmCiB9CiAKLSNpZiAh
UExBVEZPUk0oQ09DT0EpCi12b2lkIFRlc3RDb250cm9sbGVyOjpzZXRBbGxvd3NBbnlTU0xDZXJ0
aWZpY2F0ZShib29sIGFsbG93cykKLXsKLSAgICBtX2FsbG93c0FueVNTTENlcnRpZmljYXRlID0g
YWxsb3dzOwotICAgIFdLQ29udGV4dFNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29j
a2V0VGVzdGluZyhwbGF0Zm9ybUNvbnRleHQoKSwgYWxsb3dzKTsKLX0KLSNlbmRpZgotCiBzdGF0
aWMgc3RkOjpzdHJpbmcgdGVzdFBhdGgoV0tVUkxSZWYgdXJsKQogewogICAgIGF1dG8gc2NoZW1l
ID0gYWRvcHRXSyhXS1VSTENvcHlTY2hlbWUodXJsKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKaW5kZXggZjk0ZDU3YzE0N2IzMTZmMDc4ZmE4NWYyMjBmNDA3NjA5NDEx
M2M4Yy4uMzI4MzVkMjUyYjhjYjRkNzc0YjY2MzkxMDE3ODRlNDBjNzI4YWJlYyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTkyLDcgKzE5Miw2IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMoYm9vbCB2YWx1
ZSkgeyBtX2hhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMgPSB2YWx1ZTsgfQogICAgIHZv
aWQgc2V0QXV0aGVudGljYXRpb25Vc2VybmFtZShTdHJpbmcgdXNlcm5hbWUpIHsgbV9hdXRoZW50
aWNhdGlvblVzZXJuYW1lID0gdXNlcm5hbWU7IH0KICAgICB2b2lkIHNldEF1dGhlbnRpY2F0aW9u
UGFzc3dvcmQoU3RyaW5nIHBhc3N3b3JkKSB7IG1fYXV0aGVudGljYXRpb25QYXNzd29yZCA9IHBh
c3N3b3JkOyB9Ci0gICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sKTsKICAg
ICB2b2lkIHNldFNob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKGJv
b2wgdmFsdWUpIHsgbV9zaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlv
biA9IHZhbHVlOyB9CiAgICAgdm9pZCBzZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4
dE5hdmlnYXRpb24oYm9vbCB2YWx1ZSkgeyBtX3Nob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25O
ZXh0TmF2aWdhdGlvbiA9IHZhbHVlOyB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAKaW5kZXggYTViNmRkMDU1ODBhZTBjMmQ5NTcwNzdkZmU0NTBhNDg2ZTZkMDFl
Yy4uYzQzYWRhMzgxOTY1NmI2N2ZiMmM1MWU1NTE1ZmU0MWNlOGQ5YTE0NSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTExNjMsMTEgKzExNjMsNiBAQCBX
S1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25v
dXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICBXS1BhZ2VTZXRDdXN0b21Vc2VyQWdlbnQo
VGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBhZ2UoKSwgdXNlckFn
ZW50KTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotCi0gICAgaWYgKFdLU3RyaW5n
SXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRBbGxvd3NBbnlTU0xDZXJ0aWZp
Y2F0ZSIpKSB7Ci0gICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRBbGxvd3NB
bnlTU0xDZXJ0aWZpY2F0ZShXS0Jvb2xlYW5HZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0Jvb2xlYW5S
ZWY+KG1lc3NhZ2VCb2R5KSkpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9CiAgICAg
CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRT
aG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbiIpKSB7CiAgICAgICAg
IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNz
aW9uT25OZXh0TmF2aWdhdGlvbihXS0Jvb2xlYW5HZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0Jvb2xl
YW5SZWY+KG1lc3NhZ2VCb2R5KSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCmluZGV4IDNlNTFmMjk2ZWRhMTNmZmFlNWM2Zjgx
NjU1ZDEyY2JiYTkzNWZjODIuLjIxOTM2YThmZmQwYWI1ZWYxYjcwMTJmMmY2OTM4OTA0NjE5ODg5
ZjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xs
ZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9s
bGVyQ29jb2EubW0KQEAgLTQ0OCwxMyArNDQ4LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0
QWxsb3dTdG9yYWdlUXVvdGFJbmNyZWFzZShib29sIHZhbHVlKQogICAgIFtnbG9iYWxXZWJzaXRl
RGF0YVN0b3JlRGVsZWdhdGVDbGllbnQgc2V0QWxsb3dSYWlzaW5nUXVvdGE6IHZhbHVlXTsKIH0K
IAotdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCBh
bGxvd3MpCi17Ci0gICAgbV9hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSA9IGFsbG93czsKLSAgICBX
S0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldFRlc3RpbmcocGxh
dGZvcm1Db250ZXh0KCksIGFsbG93cyk7Ci0gICAgW2dsb2JhbFdlYnNpdGVEYXRhU3RvcmVEZWxl
Z2F0ZUNsaWVudCBzZXRBbGxvd0FueVNTTENlcnRpZmljYXRlOiBhbGxvd3NdOwotfQotCiB2b2lk
IFRlc3RDb250cm9sbGVyOjppbnN0YWxsQ3VzdG9tTWVudUFjdGlvbihjb25zdCBTdHJpbmcmIG5h
bWUsIGJvb2wgZGlzbWlzc2VzQXV0b21hdGljYWxseSkKIHsKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDBmYWI3NDNiN2YwMmUzMDM2MWEwOTkxZjA4MjhmMTJiYjJhNzQyZmUuLjBl
Njc1NDRiZTFjNGUzYmMyMjBhZTExN2ZiOGQyYmM4YTQ1ZGVlODYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MiBAQAorMjAyMC0wOS0xNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJlbW92ZSB0ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmlj
YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY1
MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0
dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy91dGlsLmpzOgorICAgICAgICAo
cHJlcGFyZVRlc3QpOgorICAgICAgICAodGVhckRvd25BbmRGaW5pc2gpOgorICAgICAgICAqIGh0
dHAvdGVzdHMvc3NsL2N1cmwvY2VydGlmaWNhdGUtYW5kLWF1dGhlbnRpY2F0aW9uLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9zc2wvdXBncmFkZS1vcmlnaW4tdXNhZ2UuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlY3VyZS1jb29raWUtc2VjdXJl
LWNvbm5lY3Rpb24ucGw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9zaW1wbGUtd3NzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS91cGdyYWRlLXNpbXBsZS13cy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29j
a2V0L3dlYi1zb2NrZXQtbG9hZHMtY2FwdHVyZWQtaW4tcGVyLXBhZ2UtZG9tYWlucy5odG1sOgor
ICAgICAgICAqIGh0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmll
dy1uby1wcmVmbGlnaHQuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
c2VydmVyLXRydXN0LWV2YWx1YXRpb24uaHR0cHMuaHRtbDoKKwogMjAyMC0wOS0xNCAgSGVjdG9y
IExvcGV6ICA8aGVjdG9yX2lfbG9wZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFsgbWFjT1MgaU9T
IERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZWxlY3Rpb24vKjogNCB0
ZXN0cyBhcmUgZmxha3kgdGltZW91dHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3V0aWwuanMKaW5kZXggMmI2MjU0
NTNkMGMwM2ExNmRhYjZmMjg0ZjNiZDI1NDAwYzhkNzk2YS4uMzMzNzFkMWE4NzEzODljODYzNzBm
YzY5ZjY2ZDY2MzE4NjlkOGFjNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
ZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3V0aWwuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3V0aWwuanMKQEAgLTMsMTMgKzMs
MTEgQEAgZnVuY3Rpb24gcHJlcGFyZVRlc3QoKSB7CiAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwog
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRB
bGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSh0cnVlKTsKICAgICB9CiB9CiAKIGZ1bmN0aW9uIHRlYXJE
b3duQW5kRmluaXNoKCkgewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0
ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGZhbHNlKTsKICAgICAgICAgdGVz
dFJ1bm5lci5zZXRBZENsaWNrQXR0cmlidXRpb25PdmVycmlkZVRpbWVyRm9yVGVzdGluZyhmYWxz
ZSk7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0QWRDbGlja0F0dHJpYnV0aW9uQ29udmVyc2lvblVS
TEZvclRlc3RpbmcoIiIpOwogICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2N1cmwvY2VydGlmaWNhdGUtYW5kLWF1
dGhlbnRpY2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9jdXJsL2NlcnRp
ZmljYXRlLWFuZC1hdXRoZW50aWNhdGlvbi5odG1sCmluZGV4IDNkNjkwODhjNWM4YzIxMmY1MGI2
NDE1OTMyZWU5ZDk1ZGRhODA3YjEuLmIwMWU4NWJiMjc1OGFiZGVmMGE5NzVlZjJmNTZiZTg4Yzgz
ZGE4YjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2N1cmwvY2VydGlm
aWNhdGUtYW5kLWF1dGhlbnRpY2F0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zc2wvY3VybC9jZXJ0aWZpY2F0ZS1hbmQtYXV0aGVudGljYXRpb24uaHRtbApAQCAtMjIsNyAr
MjIsNiBAQCBhc3luYyBmdW5jdGlvbiBkb1Rlc3QoKQogewogICAgIGFzc2VydF90cnVlKCEhd2lu
ZG93LnRlc3RSdW5uZXIsICJUZXN0IHJlcXVpcmVzIHRlc3RSdW5uZXIiKTsKIAotICAgIHdpbmRv
dy50ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKHRydWUpOwogICAgIHdpbmRv
dy50ZXN0UnVubmVyLnNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXModHJ1ZSk7CiAg
ICAgd2luZG93LnRlc3RSdW5uZXIuc2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSgidXNlciIpOwog
ICAgIHdpbmRvdy50ZXN0UnVubmVyLnNldEF1dGhlbnRpY2F0aW9uUGFzc3dvcmQoIiIpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvdXBncmFkZS1vcmlnaW4tdXNhZ2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL3VwZ3JhZGUtb3JpZ2luLXVzYWdlLmh0
bWwKaW5kZXggNWMyZDFiODg5ZDJjZWUxOGQ1ZjY4YWQzNDRlODY1OTM3ZmVkOWJiNS4uMTdmZDRi
NWQyNTMwMjU4YjU0ZDAwZTA1ZGFiMGRmNThiOTFmZWJhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zc2wvdXBncmFkZS1vcmlnaW4tdXNhZ2UuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NzbC91cGdyYWRlLW9yaWdpbi11c2FnZS5odG1sCkBAIC0xNSw3ICsx
NSw2IEBAIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7CiAKIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsK
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRBbGxv
d3NBbnlTU0xDZXJ0aWZpY2F0ZSh0cnVlKTsKICAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFsbEFw
cGxpY2F0aW9uQ2FjaGVzKCk7CiAgICAgICAgIGxvZygiQ2xlYXJlZCBhcHBsaWNhdGlvbiBjYWNo
ZSIpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdhdGVDYWxs
YmFja3MoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5Ymkvc2VjdXJlLWNvb2tpZS1zZWN1cmUtY29ubmVjdGlvbi5wbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VjdXJlLWNvb2tpZS1zZWN1cmUtY29u
bmVjdGlvbi5wbAppbmRleCAxZTk0NTRhYjI5ODQ5NzY2OGMwMzdiODk3YThlMWQzNGVlZWU4Zjkz
Li4xMzk2YzQzZWEzMmNlN2EzMWQ1M2RhMjczZjU4ZDE3OWI2NDk1ZmQ0IDEwMDc1NQotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlY3VyZS1jb29raWUt
c2VjdXJlLWNvbm5lY3Rpb24ucGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9zZWN1cmUtY29va2llLXNlY3VyZS1jb25uZWN0aW9uLnBsCkBAIC0yOCw5
ICsyOCw2IEBAIHByaW50IDw8SFRNTAogPHNjcmlwdD4KIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuc2V0QWxsb3dz
QW55U1NMQ2VydGlmaWNhdGUodHJ1ZSk7Ci0KIHZhciBjb29raWU7CiAKIC8vIE5vcm1hbGl6ZSBh
IGNvb2tpZSBzdHJpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5Ymkvc2ltcGxlLXdzcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9zaW1wbGUtd3NzLmh0bWwKaW5kZXggNTVkMzk4MTA3OTljYzY3
MTY0NDQ3YTQ3NjBjYmQ0YWMxNjNiZGQyMy4uMGJmMTJlMGFkNjc3MjdmM2JjZmQ0NTUwNDVlOTMy
NmU3ZjM4ZmFjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9zaW1wbGUtd3NzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9zaW1wbGUtd3NzLmh0bWwKQEAgLTExLDkgKzExLDYgQEAgZGVz
Y3JpcHRpb24oIlNpbXBsZSBzZWN1cmUgV2ViIFNvY2tldCB0ZXN0Iik7CiAKIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIuc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUodHJ1ZSk7Ci0KIGZ1bmN0aW9uIGVuZFRlc3Qo
KQogewogICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SUQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91cGdyYWRlLXNpbXBsZS13cy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91cGdyYWRlLXNp
bXBsZS13cy5odG1sCmluZGV4IDU5YmViMzQxODI3ZGM3OGZmYzk2NmIzNjZhNDZjOTZmZDU2OGUx
NjAuLjkxYmMxMjE3ZTAyNmM0OGI3MTMxYzdkMTRjNDU5MDFiODZhMjY3MGUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvdXBncmFkZS1zaW1w
bGUtd3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL3VwZ3JhZGUtc2ltcGxlLXdzLmh0bWwKQEAgLTEyLDkgKzEyLDYgQEAgZGVzY3JpcHRpb24o
IlNpbXBsZSB1cGdyYWRlIGluc2VjdXJlIFdlYiBTb2NrZXQgdGVzdCIpOwogCiB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVu
bmVyLnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKHRydWUpOwotCiBmdW5jdGlvbiBlbmRUZXN0
KCkKIHsKICAgICBjbGVhclRpbWVvdXQodGltZW91dElEKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3dlYi1zb2NrZXQtbG9hZHMtY2FwdHVyZWQtaW4tcGVy
LXBhZ2UtZG9tYWlucy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvd2Vi
LXNvY2tldC1sb2Fkcy1jYXB0dXJlZC1pbi1wZXItcGFnZS1kb21haW5zLmh0bWwKaW5kZXggOTk4
OWNmMDFhMzBlYWIzMGMyNjJhMGRiOTdlYjQ3MGNhZDE3N2JjMS4uNGQ4NTE5ZTY5OWU3ZjE5ODRl
NGMxMzUzYzk1MDBiNDYzNDNkZDZmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvd2ViLXNvY2tldC1sb2Fkcy1jYXB0dXJlZC1pbi1wZXItcGFnZS1kb21haW5z
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvd2ViLXNvY2tldC1s
b2Fkcy1jYXB0dXJlZC1pbi1wZXItcGFnZS1kb21haW5zLmh0bWwKQEAgLTksOSArOSw2IEBACiAK
ICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgCi0gICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLnNldEFsbG93c0FueVNTTENlcnRpZmljYXRl
KHRydWUpOwotCiAgICAgZnVuY3Rpb24gYXNrRm9yTG9hZGVkU3VicmVzb3VyY2VEb21haW5zKCkg
ewogICAgICAgICB0ZXN0UnVubmVyLmxvYWRlZFN1YnJlc291cmNlRG9tYWlucyhmdW5jdGlvbiAo
YXJyYXlPZkRvbWFpbnMpIHsKICAgICAgICAgICAgIGlmIChhcnJheU9mRG9tYWlucy5sZW5ndGgg
PT0gMCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jv
c3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdpbi1hcnJheWJ1ZmZlcnZpZXct
bm8tcHJlZmxpZ2h0LWV4cGVjdGVkLnR4dAppbmRleCBlMzk3MGVmNDY1ZmRlYzAwOWYyMjYxN2Nk
NDczN2EwYWFmZTlmYjhiLi4xODk1ZmM2NTI5NWYzNzNjMzQxNWQwZWMxNTBiNzVjMDBhMzRiYjE1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdp
bi1hcnJheWJ1ZmZlcnZpZXctbm8tcHJlZmxpZ2h0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdpbi1hcnJheWJ1ZmZlcnZpZXctbm8t
cHJlZmxpZ2h0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDMgQEAKIAotUEFTUyBCZWFjb24gbG9h
ZCBzaG91bGQgbm90IGJlIHNlbnQgaWYgc2VydmVyIGlzIG5vdCB0cnVzdGVkLiAKIFBBU1MgU2hv
dWxkIHNlbmQgYmVhY29uIHdpdGggbm8gQ09SUyBwcmVmbGlnaHQgCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmll
dy1uby1wcmVmbGlnaHQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2Ny
b3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1uby1wcmVmbGlnaHQuaHRtbAppbmRleCBmZTRiYzY1
NWNjNmZjYWQ4YTQ1NmFhY2FiNGIwNjVmYjA4NTVhMmM1Li42ZDUyYWE0ZjUwYTdjZTc3MGM4OTZj
NzQ0ZjkwNDAwMmE3MTU4NWZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFj
b24vY29ycy9jcm9zc29yaWdpbi1hcnJheWJ1ZmZlcnZpZXctbm8tcHJlZmxpZ2h0Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZm
ZXJ2aWV3LW5vLXByZWZsaWdodC5odG1sCkBAIC0yOSwyNiArMjksMTAgQEAgZnVuY3Rpb24gcG9s
bFJlc3VsdCh0ZXN0LCBpZCkgewogZnVuY3Rpb24gdGVzdENPUlNQcmVmbGlnaHQod2hhdCkgewog
ICB2YXIgdGVzdEJhc2UgPSBnZXRfaG9zdF9pbmZvKCkuSFRUUFNfUkVNT1RFX09SSUdJTiArIFJF
U09VUkNFU19ESVI7CiAKLSAgcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uKHRlc3QpIHsKLSAg
ICB2YXIgaWQgPSAiY2EzM2MwNzMtMWNmMC00MWU1LWJiZDQtNTU5NjlmYjFhNmM3IjsKLSAgICB2
YXIgdGVzdFVybCA9IHRlc3RCYXNlICsgImJlYWNvbi1wcmVmbGlnaHQucHk/dGVzdDEmYWxsb3dD
b3JzPTEmY21kPXB1dCZpZD0iICsgaWQ7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0g
ICAgICB3aW5kb3cudGVzdFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShmYWxzZSk7
Ci0gICAgICB3aW5kb3cudGVzdFJ1bm5lci50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwotICAg
ICAgYXdhaXQgZmV0Y2goIiIpLnRoZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOwotICAgIH0KLQot
ICAgIGFzc2VydF90cnVlKG5hdmlnYXRvci5zZW5kQmVhY29uKHRlc3RVcmwsIHdoYXQpLCAic2Vu
ZEJlYWNvbiBzdWNjZWVkZWQiKTsKLSAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwb2xsUmVzdWx0
KHRlc3QsIGlkKTsKLSAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdFsncHJlZmxpZ2h0J10sIDAsICJE
aWQgbm90IHJlY2VpdmUgQ09SUyBwcmVmbGlnaHQiKQotICAgIGFzc2VydF9lcXVhbHMocmVzdWx0
WydiZWFjb24nXSwgMCwgIkRpZCBub3QgcmVjZWl2ZSBiZWFjb24iKQotICB9LCAiQmVhY29uIGxv
YWQgc2hvdWxkIG5vdCBiZSBzZW50IGlmIHNlcnZlciBpcyBub3QgdHJ1c3RlZC4iKTsKLQogICBw
cm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24odGVzdCkgewogICAgIHZhciBpZCA9IHNlbGYudG9r
ZW4oKTsKICAgICB2YXIgdGVzdFVybCA9IHRlc3RCYXNlICsgImJlYWNvbi1wcmVmbGlnaHQucHk/
dGVzdDImYWxsb3dDb3JzPTEmY21kPXB1dCZpZD0iICsgaWQ7CiAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICB3aW5kb3cudGVzdFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZp
Y2F0ZSh0cnVlKTsKICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLnRlcm1pbmF0ZU5ldHdvcmtQcm9j
ZXNzKCk7CiAgICAgICBhd2FpdCBmZXRjaCgiIikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L3NlcnZlci10cnVzdC1ldmFsdWF0aW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0LWV2YWx1YXRpb24uaHR0cHMuaHRtbAppbmRl
eCBhNzEzODM5YmNmOGQxNTc4NDZlMzcyNjM5YWY5YWFhOWIyODQyYTY3Li45Y2Q4NjNhMWU4YWRk
OWQxYjk2NDViZWM4MTkwN2NhNzZjYzJjYzFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0LWV2YWx1YXRpb24uaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmVyLXRydXN0LWV2
YWx1YXRpb24uaHR0cHMuaHRtbApAQCAtMzQsMTIgKzM0LDExIEBAIHByb21pc2VfdGVzdChhc3lu
YyAodGVzdCkgPT4gewogcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAgbGV0IGNv
dW50OwogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLnNl
dEFsbG93c0FueVNTTENlcnRpZmljYXRlKGZhbHNlKTsKICAgICAgICAgY291bnQgPSB0ZXN0UnVu
bmVyLnNlcnZlclRydXN0RXZhbHVhdGlvbkNhbGxiYWNrQ2FsbHNDb3VudDsKICAgICB9CiAKICAg
ICBpZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZSgicmVzb3VyY2VzL2lmcmFtZTEuaHRtbCIpOwot
ICAgIGFzc2VydF90cnVlKGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkuaW5uZXJI
VE1MLnRyaW0oKS5pbmRleE9mKCJMb2FkIGZhaWxlZDogIikgIT09IC0xKTsKKyAgICBhc3NlcnRf
dHJ1ZShpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5LmlubmVySFRNTC50cmltKCku
aW5kZXhPZigiTG9hZCBmYWlsZWQ6ICIpID09IC0xKTsKICAgICBpZnJhbWUucmVtb3ZlKCk7CiAK
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCkBAIC01MCw3ICs0OSw2IEBAIHByb21pc2VfdGVz
dChhc3luYyAodGVzdCkgPT4gewogcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAg
bGV0IGNvdW50OwogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB3aW5kb3cu
dGVzdFJ1bm5lci5zZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSh0cnVlKTsKICAgICAgICAgY291
bnQgPSB0ZXN0UnVubmVyLnNlcnZlclRydXN0RXZhbHVhdGlvbkNhbGxiYWNrQ2FsbHNDb3VudDsK
ICAgICB9CiAKQEAgLTU5LDcgKzU3LDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7
CiAgICAgaWZyYW1lLnJlbW92ZSgpOwogCiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICBhc3NlcnRfZXF1YWxzKHRlc3RSdW5uZXIuc2VydmVyVHJ1c3RFdmFsdWF0aW9uQ2FsbGJh
Y2tDYWxsc0NvdW50LCBjb3VudCArIDEpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHRlc3RSdW5u
ZXIuc2VydmVyVHJ1c3RFdmFsdWF0aW9uQ2FsbGJhY2tDYWxsc0NvdW50LCBjb3VudCk7CiB9LCAi
U2VydmljZSB3b3JrZXIgbG9hZCBzaG91bGQgc3VjY2VlZCIpOwogPC9zY3JpcHQ+CiA8L2JvZHk+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408796</attachid>
            <date>2020-09-14 23:26:07 -0700</date>
            <delta_ts>2020-09-15 09:28:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216509-20200914232606.patch</filename>
            <type>text/plain</type>
            <size>12952</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQyODVmMmI1MTFiM2ZjZDZm
ODFkZDRhZjJmYWVlMDE0NDZmZDJmODkuLmJiNzBhNzQ5NDdlMWI4NWQ2ODk5NjNiYmE5M2E5YTZj
ZjcwOGY2Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjAtMDktMTQgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIFdlYlNv
Y2tldCBUTFMgYnlwYXNzIFNQSSBmcm9tIFdlYlByb2Nlc3NQb29sIHRvIFdlYnNpdGVEYXRhU3Rv
cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjUw
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFmdGVy
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTYwNDEgd2Ugd2lsbCBi
ZSB1bmFibGUgdG8gZGV0ZXJtaW5lIHdoaWNoIFdlYnNpdGVEYXRhU3RvcmUncworICAgICAgICBO
ZXR3b3JrUHJvY2VzcyB0byBhZGQgdGhlIFRMUyBieXBhc3MgdG8sIHNvIHdlIG5lZWQgdG8gbW92
ZSB0aGUgU1BJIHRvIHRoZSBXZWJzaXRlRGF0YVN0b3JlIG9iamVjdC4gIFRoaXMgYnJlYWtzCisg
ICAgICAgIG9mZiBhIHBpZWNlIG9mIHRoYXQgbGFyZ2UgY2hhbmdlIGludG8gYSBzbWFsbCwgZWFz
eS10by1yZXZpZXcgY2hhbmdlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldl
YlNvY2tldFRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFT
dG9yZVJlZi5jcHA6CisgICAgICAgIChXS1dlYnNpdGVEYXRhU3RvcmVTZXRBbGxvd3NBbnlTU0xD
ZXJ0aWZpY2F0ZUZvcldlYlNvY2tldFRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX2FsbG93QW55VExT
Q2VydGlmaWNhdGVGb3JXZWJTb2NrZXRUZXN0aW5nXSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldCk6IERlbGV0ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldCk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKwogMjAyMC0w
OS0xNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIE1vdmUgY29va2llIGZsdXNoaW5nIFNQSSBmcm9tIFdLUHJvY2Vzc1Bvb2wgdG8gV0tIVFRQ
Q29va2llU3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
CmluZGV4IGRmMzEzZmZiODZmYzFlZjdlNzMxYTU0NGQ1N2NiNzRjZDMwZDRhY2QuLjZkM2I4MmQw
OTY4Nzc3NTM2NTE4OTg5MzEwZmQ2MGVmZTRkYTMyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNTQzLDExICs1NDMsNiBAQCB2b2lkIFdLQ29u
dGV4dFNldEphdmFTY3JpcHRHYXJiYWdlQ29sbGVjdG9yVGltZXJFbmFibGVkKFdLQ29udGV4dFJl
ZiBjb250ZXh0UmVmLAogICAgIFdlYktpdDo6dG9JbXBsKGNvbnRleHRSZWYpLT5zZXRKYXZhU2Ny
aXB0R2FyYmFnZUNvbGxlY3RvclRpbWVyRW5hYmxlZChlbmFibGUpOwogfQogCi12b2lkIFdLQ29u
dGV4dFNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0VGVzdGluZyhXS0NvbnRl
eHRSZWYgY29udGV4dCwgYm9vbCBhbGxvd3MpCi17Ci0gICAgV2ViS2l0Ojp0b0ltcGwoY29udGV4
dCktPnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGFsbG93cyk7Ci19Ci0K
IHZvaWQgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2Vy
VGVzdGluZyhXS0NvbnRleHRSZWYgY29udGV4dCwgYm9vbCBhbGxvd3MpCiB7CiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0UHJpdmF0ZS5oCmluZGV4IDdjMjcxMGYzMzlmY2U3N2QzYTUyYThhNTVlOGIxYWU2Y2Vi
NTU3YTUuLjgxNTMzOWNkOTk3ZDE1N2VhNWY4MTFkMDY0YmU4OTczNzljNjJjOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKQEAgLTg2
LDcgKzg2LDYgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0VXNlc05ldHdvcmtQcm9jZXNz
KFdLQ29udGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVO
ZXR3b3JrUHJvY2VzcyhXS0NvbnRleHRSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0VGVy
bWluYXRlU2VydmljZVdvcmtlcnMoV0tDb250ZXh0UmVmKTsKIAotV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXRUZXN0aW5nKFdLQ29u
dGV4dFJlZiwgYm9vbCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRBbGxvd3NBbnlTU0xD
ZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXJUZXN0aW5nKFdLQ29udGV4dFJlZiwgYm9vbCk7CiAK
IC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgcnVubmluZyBhIHRlc3QuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0
b3JlUmVmLmNwcAppbmRleCA2M2ZhMjg0YTZlYzdlYTJkZTBhODFkMjE3MDVlMDlmMTg4OGU3Yjc4
Li44YWY3Nzc5M2IyMDAyOTcwNWZjZDBhOGVmMTY4NzBjOGNiY2YyZTA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5j
cHAKQEAgLTEzMiw2ICsxMzIsMTEgQEAgV0tIVFRQQ29va2llU3RvcmVSZWYgV0tXZWJzaXRlRGF0
YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZgogICAgIHJldHVy
biBXZWJLaXQ6OnRvQVBJKCZXZWJLaXQ6OnRvSW1wbChkYXRhU3RvcmVSZWYpLT5jb29raWVTdG9y
ZSgpKTsKIH0KIAordm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRBbGxvd3NBbnlTU0xDZXJ0aWZp
Y2F0ZUZvcldlYlNvY2tldFRlc3RpbmcoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZSwg
Ym9vbCBhbGxvd3MpCit7CisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlKS0+c2V0QWxsb3dz
QW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYWxsb3dzKTsKK30KKwogdm9pZCBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlV2l0aENvbXBsZXRp
b25IYW5kbGVyKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgZW5hYmxl
LCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzRGVidWdNb2RlRnVu
Y3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vi
c2l0ZURhdGFTdG9yZVJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJz
aXRlRGF0YVN0b3JlUmVmLmgKaW5kZXggZWI4MmZhZDQ0NjhmNmYzNDdiMGJkOGQ0NjI0ZmM1YWQ2
NWQ3OTk5Ny4uZmMyMTUyZjVhOTU0MjIxZGU0NGY3NTQzNGNmMGFkMTIxYTVhYmVmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVm
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmLmgKQEAgLTQzLDYgKzQzLDggQEAgV0tfRVhQT1JUIFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBX
S1dlYnNpdGVEYXRhU3RvcmVDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihXS1dlYnMKIAogV0tfRVhQ
T1JUIFdLSFRUUENvb2tpZVN0b3JlUmVmIFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBDb29raWVT
dG9yZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmKTsKIAorV0tfRVhQT1JUIHZv
aWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2Nr
ZXRUZXN0aW5nKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmUsIGJvb2wgYWxsb3dzKTsK
KwogV0tfRVhQT1JUIGJvb2wgV0tXZWJzaXRlRGF0YVN0b3JlR2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZik7CiBXS19FWFBP
UlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIGVuYWJsZSk7CiB0eXBl
ZGVmIHZvaWQgKCpXS1dlYnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzRXBoZW1lcmFsRnVuY3Rpb24p
KGJvb2wgaXNFcGhlbWVyYWwsIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDNiZjM5
N2Q2NzljNzEwNjliMjI3MzdhZTY1MzUxNTE2ZDc4OGM1NjUuLjdmZGNhNjU4MzU4YTRlNTk5Y2Nj
MTBmYTE0NTYwOGEwYjUyZjdmMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC02MjUsMTEgKzYyNSw2IEBAIHN0YXRpYyBO
U0RpY3Rpb25hcnkgKnBvbGljaWVzSGFzaE1hcFRvRGljdGlvbmFyeShjb25zdCBIYXNoTWFwPFN0
cmluZywgSGFzaE1hcDxTCiAgICAgX3Byb2Nlc3NQb29sLT5jbGVhclBlcm1hbmVudENyZWRlbnRp
YWxzRm9yUHJvdGVjdGlvblNwYWNlKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZShwcm90ZWN0aW9u
U3BhY2UpKTsKIH0KIAotLSAodm9pZClfYWxsb3dBbnlUTFNDZXJ0aWZpY2F0ZUZvcldlYlNvY2tl
dFRlc3RpbmcKLXsKLSAgICBfcHJvY2Vzc1Bvb2wtPnNldEFsbG93c0FueVNTTENlcnRpZmljYXRl
Rm9yV2ViU29ja2V0KHRydWUpOwotfQotCiAtICh2b2lkKV9zZWVkUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0ZvclRlc3RpbmdXaXRoRmlyc3RQYXJ0eTooTlNVUkwgKilmaXJzdFBhcnR5VVJMIHRoaXJk
UGFydHk6KE5TVVJMICopdGhpcmRQYXJ0eVVSTCBzaG91bGRTY2hlZHVsZU5vdGlmaWNhdGlvbjoo
Qk9PTClzaG91bGRTY2hlZHVsZU5vdGlmaWNhdGlvbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZChe
KSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogewogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IGVkZDA4OWFlY2MyNTI1YzU3MjMwZTFkZTVh
ZmY1NTA2NTlhMDIwYjQuLjE1ZGI2MWRhYmRhZDQwZWQwMTVhYTU3OWIzNDYyZDBjMWNjYmNkNTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC0xMjYsNyArMTI2LDYgQEAKIC0gKHZvaWQpX2dldEFjdGl2
ZVBhZ2VzT3JpZ2luc0luV2ViUHJvY2Vzc0ZvclRlc3Rpbmc6KHBpZF90KXBpZCBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCheKShOU0FycmF5PE5TU3RyaW5nICo+ICopKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAtIChCT09MKV9u
ZXR3b3JrUHJvY2Vzc0hhc0VudGl0bGVtZW50Rm9yVGVzdGluZzooTlNTdHJpbmcgKillbnRpdGxl
bWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogLSAodm9p
ZClfY2xlYXJQZXJtYW5lbnRDcmVkZW50aWFsc0ZvclByb3RlY3Rpb25TcGFjZTooTlNVUkxQcm90
ZWN0aW9uU3BhY2UgKilwcm90ZWN0aW9uU3BhY2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NSksIGlvcygxMy4wKSk7Ci0tICh2b2lkKV9hbGxvd0FueVRMU0NlcnRpZmljYXRlRm9yV2ViU29j
a2V0VGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0Nvb2tpZVN0b3JhZ2VQ
YXJ0aXRpb25pbmdFbmFibGVkLCBzZXR0ZXI9X3NldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdF
bmFibGVkOikgQk9PTCBfY29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQgV0tfQVBJX0RF
UFJFQ0FURUQoIlBhcnRpdGlvbmVkIGNvb2tpZXMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQiLCBt
YWNvcygxMC4xMi4zLCAxMC4xNC40KSwgaW9zKDEwLjMsIDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBnZXR0ZXI9X2lzU3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQsIHNldHRlcj1fc2V0U3Rv
cmFnZUFjY2Vzc0FQSUVuYWJsZWQ6KSBCT09MIF9zdG9yYWdlQWNjZXNzQVBJRW5hYmxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDQ4YjhhMzJhOTViMGY4MGE3ZTI2ZGY5
MzFkM2E5NTZiOWJjYWYzMDAuLjk0MTBlNzMwNjYyOWE3MzNjZjM1YjU1N2M5M2M4NTBiOTI5Njlm
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTE3
NzUsMTEgKzE3NzUsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kU3luY1RvTmV0d29ya2lu
Z1Byb2Nlc3MoVCYmIG1lc3NhZ2UsIFUmJiByZXBseSkKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+c2VuZFN5bmMoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCBzdGQ6OmZvcndhcmQ8VT4ocmVw
bHkpLCAwKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGVGb3JXZWJTb2NrZXQoYm9vbCBhbGxvd3MpCi17Ci0gICAgc2VuZFN5bmNUb05ldHdvcmtp
bmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0QWxsb3dzQW55U1NMQ2VydGlm
aWNhdGVGb3JXZWJTb2NrZXQoYWxsb3dzKSwgTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRB
bGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldDo6UmVwbHkoKSk7Ci19Ci0KIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OmNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKQogewogICAgIGlmIChtX25l
dHdvcmtQcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5k
ZXggNzBlMWZjNDcxYjZlZDVhYmI4NzQzZTc4ZDBhNGIxNTI2YWI0MjFkYi4uYzAwNTE5OWY4NmI3
ZGIxZDg2YjM3NDk4YjhjMWE5ZWNmODViNjQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCkBAIC0zMTgsOCArMzE4LDYgQEAgcHVibGljOgogICAgIH07CiAgICAg
c3RhdGljIFN0YXRpc3RpY3MmIHN0YXRpc3RpY3MoKTsgICAgCiAKLSAgICB2b2lkIHNldEFsbG93
c0FueVNTTENlcnRpZmljYXRlRm9yV2ViU29ja2V0KGJvb2wpOwotCiAgICAgdm9pZCBjbGVhckNh
Y2hlZENyZWRlbnRpYWxzKCk7CiAgICAgdm9pZCB0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwog
ICAgIHZvaWQgdGVybWluYXRlQWxsV2ViQ29udGVudFByb2Nlc3NlcygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cAppbmRleCA2NzExYmY0ZWExMTMzNmZhZWUxOThiZGFkNjA3NjcyOWQyNzQ2NzlhLi5mODdkNzgx
NDYwYTkwZDRjMDk0MzhhYjdhZTcxZWU5OGMwZDdkNmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAt
MjI2MSw2ICsyMjYxLDE0IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Zmx1c2hDb29raWVzKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlCiAgICAgICAgIHByb2Nl
c3NQb29sLT5mbHVzaENvb2tpZXMoc2Vzc2lvbklEKCksIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsg
fSk7CiB9CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNh
dGVGb3JXZWJTb2NrZXQoYm9vbCBhbGxvd3MpCit7CisgICAgZm9yIChhdXRvIHByb2Nlc3NQb29s
IDogV2ViUHJvY2Vzc1Bvb2w6OmFsbFByb2Nlc3NQb29scygpKSB7CisgICAgICAgIGlmIChhdXRv
KiBuZXR3b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2VzcygpKQorICAgICAg
ICAgICAgbmV0d29ya1Byb2Nlc3MtPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
U2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYWxsb3dzKSwgTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldDo6
UmVwbHkoKSwgMCk7CisgICAgfQorfQorCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmRpc3BhdGNo
T25RdWV1ZShGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCiB7CiAgICAgbV9xdWV1ZS0+ZGlz
cGF0Y2goV1RGTW92ZShmdW5jdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGZjMjRhNTYyZGRjZGQ1
OTE5ZjZhODMyYTA4MWZhMGZmOWU1NTZiMDUuLjhiMWUzZWFmMTBmMDE2MTM4YzQ2ZWQxMjg1ZmUw
NGYwNDg4OGNlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTI0MCw2ICsyNDAsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjbGVhclBlbmRpbmdDb29raWVzKCk7CiAgICAgdm9pZCBmbHVzaENvb2tpZXMoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAorICAgIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2Vy
dGlmaWNhdGVGb3JXZWJTb2NrZXQoYm9vbCk7CisKICAgICB2b2lkIGRpc3BhdGNoT25RdWV1ZShG
dW5jdGlvbjx2b2lkKCk+JiYpOwogCiAjaWYgVVNFKENVUkwpCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjdkNjViZjA0YmQ3MDNkOWIxYjUzNWJj
YWI3OWFhMTM4OGEyY2YyMy4uNGM3ZDNkMzM4Njk1MDJkNjE4ODdjZDgwNTE2ZTEwODExYjU5YjIz
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDIwLTA5LTE0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBXZWJTb2NrZXQgVExTIGJ5cGFzcyBTUEkgZnJv
bSBXZWJQcm9jZXNzUG9vbCB0byBXZWJzaXRlRGF0YVN0b3JlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY1MDkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dzQW55U1NM
Q2VydGlmaWNhdGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRy
b2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldEFsbG93c0Fu
eVNTTENlcnRpZmljYXRlKToKKwogMjAyMC0wOS0xNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vdmUgY29va2llIGZsdXNoaW5nIFNQSSBm
cm9tIFdLUHJvY2Vzc1Bvb2wgdG8gV0tIVFRQQ29va2llU3RvcmUKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZTg1ODNiOGMxMmE0NTk3ODlkNDA5NGE4OTY5
N2UwZjc2MGIwYzEwMi4uOWVjYTMwMGU4MGU0NmNlZTA5NTI0ZGI0N2Y4YmI0MjA4ZGNkYWExNSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTEzMjgsNyAr
MTMyOCw3IEBAIGNvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vzc05hbWUo
KQogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCBh
bGxvd3MpCiB7CiAgICAgbV9hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSA9IGFsbG93czsKLSAgICBX
S0NvbnRleHRTZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvcldlYlNvY2tldFRlc3RpbmcocGxh
dGZvcm1Db250ZXh0KCksIGFsbG93cyk7CisgICAgV0tXZWJzaXRlRGF0YVN0b3JlU2V0QWxsb3dz
QW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXRUZXN0aW5nKHdlYnNpdGVEYXRhU3RvcmUoKSwg
YWxsb3dzKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2Nv
Y29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KaW5kZXggM2U1MWYyOTZlZGExM2ZmYWU1YzZmODE2
NTVkMTJjYmJhOTM1ZmM4Mi4uMzY1MzM3YWRmOTlmMGI5Y2RkNmFmMDk3ZmMwMmJlODdhNjcxNjY1
NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxl
ckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xs
ZXJDb2NvYS5tbQpAQCAtNDUxLDcgKzQ1MSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFs
bG93U3RvcmFnZVF1b3RhSW5jcmVhc2UoYm9vbCB2YWx1ZSkKIHZvaWQgVGVzdENvbnRyb2xsZXI6
OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wgYWxsb3dzKQogewogICAgIG1fYWxsb3dz
QW55U1NMQ2VydGlmaWNhdGUgPSBhbGxvd3M7Ci0gICAgV0tDb250ZXh0U2V0QWxsb3dzQW55U1NM
Q2VydGlmaWNhdGVGb3JXZWJTb2NrZXRUZXN0aW5nKHBsYXRmb3JtQ29udGV4dCgpLCBhbGxvd3Mp
OworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yV2Vi
U29ja2V0VGVzdGluZyh3ZWJzaXRlRGF0YVN0b3JlKCksIGFsbG93cyk7CiAgICAgW2dsb2JhbFdl
YnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZUNsaWVudCBzZXRBbGxvd0FueVNTTENlcnRpZmljYXRlOiBh
bGxvd3NdOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>